Skip to content

Commit

Permalink
ports: add functions for looking up user config directory
Browse files Browse the repository at this point in the history
These will be used by the CLI for loading custom user presets.


git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7105 b64f7644-9d1e-0410-96f1-a4d463321fa5
  • Loading branch information
jstebbins committed Apr 19, 2015
1 parent 2b0b918 commit 76308dc
Show file tree
Hide file tree
Showing 9 changed files with 99 additions and 12 deletions.
2 changes: 1 addition & 1 deletion gtk/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ case $host in
else
HB_LIBS+=" -lpthreadGC2"
fi
HB_LIBS+=" -lregex"
HB_LIBS+=" -lregex -luuid"
;;
*)
HB_LIBS+=" -ldl -lpthread"
Expand Down
5 changes: 4 additions & 1 deletion libhb/module.defs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ LIBHB.m4.out = $(patsubst $(LIBHB.src/)%.m4,$(LIBHB.build/)%,$(LIBHB.m4.in))

LIBHB.c = $(wildcard $(LIBHB.src/)*.c)
LIBHB.c.o = $(patsubst $(SRC/)%.c,$(BUILD/)%.o,$(LIBHB.c))
LIBHB.m.o = $(patsubst $(SRC/)%.m,$(BUILD/)%.o,$(LIBHB.m))
LIBHB.d = $(LIBHB.m4.out) $(LIBHB.h.out) \
$(foreach n,$(LIBHB.prerequisites),$($n.INSTALL.target) )

Expand All @@ -30,6 +31,7 @@ LIBHB.a = $(LIBHB.build/)$(call TARGET.archive,handbrake)

LIBHB.out += $(LIBHB.m4.out)
LIBHB.out += $(LIBHB.c.o)
LIBHB.out += $(LIBHB.m.o)
LIBHB.out += $(LIBHB.h.out)
LIBHB.out += $(LIBHB.a)

Expand All @@ -50,6 +52,7 @@ ifeq ($(BUILD.system),cygwin)
else ifeq ($(BUILD.system),darwin)
LIBHB.GCC.D += SYS_DARWIN
LIBHB.c += $(wildcard $(LIBHB.src/)platform/macosx/*.c)
LIBHB.m += $(wildcard $(LIBHB.src/)platform/macosx/*.m)
else ifeq ($(BUILD.system),linux)
LIBHB.GCC.D += SYS_LINUX _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64
else ifeq ($(BUILD.system),mingw)
Expand Down Expand Up @@ -168,7 +171,7 @@ else
endif

LIBHB.GCC.args.extra.dylib++ += -Wl,--out-implib,$(LIBHB.lib)
LIBHB.GCC.l += ws2_32
LIBHB.GCC.l += ws2_32 uuid
ifeq ($(HAS.dlfcn),1)
LIBHB.GCC.l += dl
endif
Expand Down
5 changes: 4 additions & 1 deletion libhb/module.rules
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ $(eval $(call import.MODULE.rules,LIBHB))
libhb.build: $(LIBHB.a)

$(LIBHB.a): | $(dir $(LIBHB.a))
$(LIBHB.a): $(LIBHB.c.o) $(LIBHB.yasm.o)
$(LIBHB.a): $(LIBHB.c.o) $(LIBHB.m.o) $(LIBHB.yasm.o)
$(AR.exe) rsu $@ $^

$(LIBHB.c.o): $(LIBHB.d)
$(LIBHB.c.o): | $(dir $(LIBHB.c.o))
$(LIBHB.c.o): $(BUILD/)%.o: $(SRC/)%.c
$(call LIBHB.GCC.C_O,$@,$<)
$(LIBHB.m.o): | $(dir $(LIBHB.m.o))
$(LIBHB.m.o): $(BUILD/)%.o: $(SRC/)%.m
$(call LIBHB.GCC.C_O,$@,$<)

$(LIBHB.m4.out): $(BUILD/)project/handbrake.m4
$(LIBHB.m4.out): | $(dir $(LIBHB.m4.out))
Expand Down
14 changes: 14 additions & 0 deletions libhb/platform/macosx/config.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#import <Foundation/Foundation.h>
/* #import <Cocoa/Cocoa.h> */

void osx_get_user_config_directory(char path[512])
{
@autoreleasepool {
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *dir = paths[0];
strncpy(path, dir.UTF8String, 512);
path[511] = 0;
}
}

61 changes: 61 additions & 0 deletions libhb/ports.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
*/

#ifdef SYS_MINGW
#define _WIN32_WINNT 0x600
#endif

#ifdef USE_PTHREAD
#ifdef SYS_LINUX
#define _GNU_SOURCE
Expand Down Expand Up @@ -50,6 +54,7 @@
#include <wchar.h>
#include <mbctype.h>
#include <locale.h>
#include <shlobj.h>
#endif

#ifdef SYS_SunOS
Expand Down Expand Up @@ -492,6 +497,62 @@ int hb_platform_init()
return result;
}

/************************************************************************
* Get app data config directory
***********************************************************************/
void hb_get_user_config_directory( char path[512] )
{
/* Create the base */
#if defined( SYS_CYGWIN ) || defined( SYS_MINGW )
WCHAR *wide_path;
SHGetKnownFolderPath(&FOLDERID_RoamingAppData, 0, NULL, &wide_path);
WideCharToMultiByte(CP_UTF8, 0, wide_path, -1, path, 512, NULL, NULL );
path[511] = 0;
#elif defined( SYS_LINUX )
char *p;

if ((p = getenv("XDG_CONFIG_HOME")) != NULL)
{
strncpy(path, p, 511);
path[511] = 0;
}
else if ((p = getenv("HOME")) != NULL)
{
strncpy(path, p, 511);
path[511] = 0;
int len = strlen(path);
strncpy(path + len, "/.config", 511 - len - 1);
path[511] = 0;
}
else
{
hb_error("Failed to lookup user config directory!");
path[0] = 0;
}
#elif defined( __APPLE__ )
osx_get_user_config_directory(path);
#endif
}

/************************************************************************
* Get a user config filename for HB
***********************************************************************/
void hb_get_user_config_filename( char name[1024], char *fmt, ... )
{
va_list args;

hb_get_user_config_directory( name );
#if defined( SYS_CYGWIN ) || defined( SYS_MINGW )
strcat( name, "\\" );
#else
strcat( name, "/" );
#endif

va_start( args, fmt );
vsnprintf( &name[strlen(name)], 1024 - strlen(name), fmt, args );
va_end( args );
}

/************************************************************************
* Get a temporary directory for HB
***********************************************************************/
Expand Down
5 changes: 5 additions & 0 deletions libhb/ports.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ void hb_get_temporary_directory( char path[512] );
void hb_get_tempory_filename( hb_handle_t *, char name[1024],
char * fmt, ... );

#if defined( SYS_DARWIN )
void osx_get_user_config_directory( char path[512] );
#endif
void hb_get_user_config_directory( char path[512] );
void hb_get_user_config_filename( char name[1024], char *fmt, ... );
/************************************************************************
* Threads
***********************************************************************/
Expand Down
2 changes: 2 additions & 0 deletions macosx/HandBrake.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
27D6C77314B102DA00B785E4 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C74014B102DA00B785E4 /* libxml2.a */; };
3490BCB41614CF8D002A5AD7 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 3490BCB31614CF8D002A5AD7 /* HandBrake.icns */; };
46AB433515F98A2B009C0961 /* DockTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 46AB433415F98A2B009C0961 /* DockTextField.m */; };
6F0D69A91AD0683100A39DCA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F204014ADBC210021BE6D /* Foundation.framework */; };
A90A0CAF1988D57200DA65CE /* HBAudioTrackPreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A90A0CAE1988D57200DA65CE /* HBAudioTrackPreset.m */; };
A91017B41A64440A00039BFB /* HBSubtitles.m in Sources */ = {isa = PBXBuildFile; fileRef = A91017B31A64440A00039BFB /* HBSubtitles.m */; };
A91726E7197291BC00D1AFEF /* HBChapterTitlesController.m in Sources */ = {isa = PBXBuildFile; fileRef = A91726E6197291BC00D1AFEF /* HBChapterTitlesController.m */; };
Expand Down Expand Up @@ -548,6 +549,7 @@
27D6C76B14B102DA00B785E4 /* libtheora.a in Frameworks */,
27D6C76D14B102DA00B785E4 /* libvorbis.a in Frameworks */,
27D6C76F14B102DA00B785E4 /* libvorbisenc.a in Frameworks */,
6F0D69A91AD0683100A39DCA /* Foundation.framework in Frameworks */,
22DD2C4B177B95DA00EF50D3 /* libvpx.a in Frameworks */,
27D6C77114B102DA00B785E4 /* libx264.a in Frameworks */,
27D6C77314B102DA00B785E4 /* libxml2.a in Frameworks */,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0630"
version = "1.3">
version = "1.8">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
Expand Down Expand Up @@ -38,7 +38,7 @@
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "debug">
<Testables>
Expand All @@ -62,13 +62,12 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "273F203814ADBC200021BE6D"
BuildableName = "HandBrake.app"
BlueprintName = "HandBrake"
BlueprintIdentifier = "273F1FFE14ADAE950021BE6D"
BuildableName = "HandBrakeCLI"
BlueprintName = "HandBrakeCLI"
ReferencedContainer = "container:HandBrake.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
Expand Down
4 changes: 2 additions & 2 deletions test/module.defs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ BUILD.out += $(TEST.install.exe)
TEST.GCC.I += $(LIBHB.GCC.I)

ifeq ($(BUILD.system),darwin)
TEST.GCC.f += IOKit CoreServices AudioToolbox
TEST.GCC.f += IOKit CoreServices AudioToolbox Foundation
TEST.GCC.l += iconv
else ifeq ($(BUILD.system),linux)
TEST.GCC.l += pthread dl m
Expand All @@ -65,7 +65,7 @@ ifeq (1,$(HAS.pthread))
else
TEST.GCC.l += pthreadGC2
endif
TEST.GCC.l += iconv ws2_32 regex
TEST.GCC.l += iconv ws2_32 regex uuid
TEST.GCC.D += PTW32_STATIC_LIB
TEST.GCC.args.extra.exe++ += -static
endif # (1-mingw,$(BUILD.cross)-$(BUILD.system))

0 comments on commit 76308dc

Please sign in to comment.