(iOS) Hook up temporary dir for extraction directory

This commit is contained in:
Twinaphex 2015-03-13 00:54:44 +01:00
parent ae62c8a477
commit c9175bbf81
3 changed files with 25 additions and 1 deletions

View File

@ -63,4 +63,6 @@ typedef enum
void CFSearchPathForDirectoriesInDomains(unsigned flags,
unsigned domain_mask, unsigned expand_tilde, char *buf, size_t sizeof_buf);
void CFTemporaryDirectory(char *buf, size_t sizeof_buf);
#endif

View File

@ -41,6 +41,15 @@ NS_INLINE CF_RETURNS_RETAINED CFTypeRef CFBridgingRetainCompat(id X)
#endif
}
NS_INLINE CF_RETURNS_RETAINED CFStringRef CFBridgingRetainStringRefCompat(id X)
{
#if __has_feature(objc_arc)
return (__bridge_retained CFStringRef)X;
#else
return X;
#endif
}
static NSSearchPathDirectory NSConvertFlagsCF(unsigned flags)
{
switch (flags)
@ -63,6 +72,14 @@ static NSSearchPathDomainMask NSConvertDomainFlagsCF(unsigned flags)
return 0;
}
void CFTemporaryDirectory(char *buf, size_t sizeof_buf)
{
CFStringRef path = (CFStringRef)(CFBridgingRetainStringRefCompat(NSTemporaryDirectory()));
CFStringGetCString(path, buf, sizeof_buf, kCFStringEncodingUTF8);
CFRelease(path);
}
void CFSearchPathForDirectoriesInDomains(unsigned flags,
unsigned domain_mask, unsigned expand_tilde,
char *buf, size_t sizeof_buf)

View File

@ -30,6 +30,7 @@
static void frontend_apple_get_environment_settings(int *argc, char *argv[],
void *args, void *params_data)
{
char temp_dir[PATH_MAX_LENGTH];
char bundle_path_buf[PATH_MAX_LENGTH], home_dir_buf[PATH_MAX_LENGTH],
support_path_buf[PATH_MAX_LENGTH];
CFURLRef bundle_url;
@ -37,6 +38,7 @@ static void frontend_apple_get_environment_settings(int *argc, char *argv[],
CFBundleRef bundle = CFBundleGetMainBundle();
(void)support_path_buf;
(void)temp_dir;
if (!bundle)
return;
@ -48,7 +50,10 @@ static void frontend_apple_get_environment_settings(int *argc, char *argv[],
(void)home_dir_buf;
#ifdef IOS
CFSearchPathForDirectoriesInDomains(CFDocumentDirectory, CFUserDomainMask, 1, home_dir_buf, sizeof(home_dir_buf));
CFSearchPathForDirectoriesInDomains(CFDocumentDirectory, CFUserDomainMask, 1, home_dir_buf, sizeof(home_dir_buf));
CFTemporaryDirectory(temp_dir, sizeof(temp_dir));
strlcpy(g_defaults.extraction_dir, temp_dir, sizeof(g_defaults.extraction_dir));
fill_pathname_join(g_defaults.system_dir, home_dir_buf, ".RetroArch", sizeof(g_defaults.system_dir));
fill_pathname_join(g_defaults.database_dir, home_dir_buf, "rdb", sizeof(g_defaults.database_dir));