(OSX) Use more sane default config path.
This commit is contained in:
parent
79cd808e81
commit
b5ea9b4eb9
|
@ -73,6 +73,9 @@ static void* const associated_core_key = (void*)&associated_core_key;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
static int waiting_argc;
|
||||||
|
static char** waiting_argv;
|
||||||
|
|
||||||
@interface RetroArch_OSX()
|
@interface RetroArch_OSX()
|
||||||
@property (nonatomic, retain) NSWindowController* settingsWindow;
|
@property (nonatomic, retain) NSWindowController* settingsWindow;
|
||||||
@property (nonatomic, retain) NSWindow IBOutlet* coreSelectSheet;
|
@property (nonatomic, retain) NSWindow IBOutlet* coreSelectSheet;
|
||||||
|
@ -146,14 +149,21 @@ static void* const associated_core_key = (void*)&associated_core_key;
|
||||||
else
|
else
|
||||||
apple_display_alert(@"No libretro cores were found.\nSelect \"Go->Cores Directory\" from the menu and place libretro dylib files there.", @"RetroArch");
|
apple_display_alert(@"No libretro cores were found.\nSelect \"Go->Cores Directory\" from the menu and place libretro dylib files there.", @"RetroArch");
|
||||||
|
|
||||||
// Run RGUI if needed
|
if (waiting_argc)
|
||||||
if (!_wantReload)//TODO || apple_argv)
|
{
|
||||||
|
apple_is_running = true;
|
||||||
|
apple_rarch_load_content(waiting_argc, waiting_argv);
|
||||||
|
}
|
||||||
|
else if (!_wantReload)
|
||||||
apple_run_core(nil, 0);
|
apple_run_core(nil, 0);
|
||||||
else
|
else
|
||||||
[self chooseCore];
|
[self chooseCore];
|
||||||
|
|
||||||
|
waiting_argc = 0;
|
||||||
_wantReload = false;
|
_wantReload = false;
|
||||||
|
|
||||||
|
apple_start_iteration();
|
||||||
|
|
||||||
extern void osx_pad_init();
|
extern void osx_pad_init();
|
||||||
osx_pad_init();
|
osx_pad_init();
|
||||||
}
|
}
|
||||||
|
@ -247,14 +257,10 @@ static void* const associated_core_key = (void*)&associated_core_key;
|
||||||
{
|
{
|
||||||
if (file)
|
if (file)
|
||||||
[[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:BOXSTRING(file)]];
|
[[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:BOXSTRING(file)]];
|
||||||
|
|
||||||
apple_start_iteration();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)unloadingCore:(const NSString*)core
|
- (void)unloadingCore:(const NSString*)core
|
||||||
{
|
{
|
||||||
apple_stop_iteration();
|
|
||||||
|
|
||||||
if (_isTerminating)
|
if (_isTerminating)
|
||||||
[[NSApplication sharedApplication] terminate:nil];
|
[[NSApplication sharedApplication] terminate:nil];
|
||||||
|
|
||||||
|
@ -294,24 +300,13 @@ static void* const associated_core_key = (void*)&associated_core_key;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
/* TODO
|
|
||||||
uint32_t current_argc = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i != argc; i ++)
|
for (int i = 0; i != argc; i ++)
|
||||||
{
|
|
||||||
if (strcmp(argv[i], "--") == 0)
|
if (strcmp(argv[i], "--") == 0)
|
||||||
{
|
{
|
||||||
current_argc = 1;
|
waiting_argc = argc - i;
|
||||||
apple_argv = malloc(sizeof(char*) * (argc + 1));
|
waiting_argv = argv + i;
|
||||||
memset(apple_argv, 0, sizeof(char*) * (argc + 1));
|
break;
|
||||||
apple_argv[0] = argv[0];
|
|
||||||
}
|
}
|
||||||
else if (current_argc)
|
|
||||||
{
|
|
||||||
apple_argv[current_argc ++] = argv[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return NSApplicationMain(argc, (const char **) argv);
|
return NSApplicationMain(argc, (const char **) argv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,11 +96,19 @@ void apple_run_core(NSString* core, const char* file)
|
||||||
|
|
||||||
apple_core = core;
|
apple_core = core;
|
||||||
apple_is_running = true;
|
apple_is_running = true;
|
||||||
|
|
||||||
|
static char core_path[PATH_MAX];
|
||||||
|
static char file_path[PATH_MAX];
|
||||||
|
|
||||||
|
if (file && core)
|
||||||
|
{
|
||||||
|
strlcpy(core_path, apple_core.UTF8String, sizeof(core_path));
|
||||||
|
strlcpy(file_path, file, sizeof(file_path));
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef IOS
|
||||||
static char config_path[PATH_MAX];
|
static char config_path[PATH_MAX];
|
||||||
static char core_path[PATH_MAX];
|
|
||||||
static char file_path[PATH_MAX];
|
|
||||||
|
|
||||||
if (apple_core_info_has_custom_config(apple_core.UTF8String))
|
if (apple_core_info_has_custom_config(apple_core.UTF8String))
|
||||||
apple_core_info_get_custom_config(apple_core.UTF8String, config_path, sizeof(config_path));
|
apple_core_info_get_custom_config(apple_core.UTF8String, config_path, sizeof(config_path));
|
||||||
else
|
else
|
||||||
|
@ -109,15 +117,16 @@ void apple_run_core(NSString* core, const char* file)
|
||||||
static const char* const argv_game[] = { "retroarch", "-c", config_path, "-L", core_path, file_path, 0 };
|
static const char* const argv_game[] = { "retroarch", "-c", config_path, "-L", core_path, file_path, 0 };
|
||||||
static const char* const argv_menu[] = { "retroarch", "-c", config_path, "--menu", 0 };
|
static const char* const argv_menu[] = { "retroarch", "-c", config_path, "--menu", 0 };
|
||||||
|
|
||||||
if (file && core)
|
|
||||||
{
|
|
||||||
strlcpy(core_path, apple_core.UTF8String, sizeof(core_path));
|
|
||||||
strlcpy(file_path, file, sizeof(file_path));
|
|
||||||
}
|
|
||||||
|
|
||||||
int argc = (file && core) ? 6 : 4;
|
int argc = (file && core) ? 6 : 4;
|
||||||
char** argv = (char**)((file && core) ? argv_game : argv_menu);
|
char** argv = (char**)((file && core) ? argv_game : argv_menu);
|
||||||
|
#else
|
||||||
|
static const char* const argv_game[] = { "retroarch", "-L", core_path, file_path, 0 };
|
||||||
|
static const char* const argv_menu[] = { "retroarch", "--menu", 0 };
|
||||||
|
|
||||||
|
int argc = (file && core) ? 4 : 2;
|
||||||
|
char** argv = (char**)((file && core) ? argv_game : argv_menu);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (apple_rarch_load_content(argc, argv))
|
if (apple_rarch_load_content(argc, argv))
|
||||||
{
|
{
|
||||||
char basedir[256];
|
char basedir[256];
|
||||||
|
|
36
settings.c
36
settings.c
|
@ -540,6 +540,42 @@ static config_file_t *open_default_config_file(void)
|
||||||
|
|
||||||
if (conf)
|
if (conf)
|
||||||
strlcpy(g_extern.config_path, conf_path, sizeof(g_extern.config_path));
|
strlcpy(g_extern.config_path, conf_path, sizeof(g_extern.config_path));
|
||||||
|
#elif defined(OSX)
|
||||||
|
char conf_path[PATH_MAX];
|
||||||
|
const char *home = getenv("HOME");
|
||||||
|
|
||||||
|
if (!home)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
fill_pathname_join(conf_path, home, "Library/Application Support/RetroArch", sizeof(conf_path));
|
||||||
|
path_mkdir(conf_path);
|
||||||
|
|
||||||
|
fill_pathname_join(conf_path, conf_path, "retroarch.cfg", sizeof(conf_path));
|
||||||
|
conf = config_file_new(conf_path);
|
||||||
|
|
||||||
|
if (!conf)
|
||||||
|
{
|
||||||
|
conf = config_file_new(NULL);
|
||||||
|
bool saved = false;
|
||||||
|
if (conf)
|
||||||
|
{
|
||||||
|
config_set_bool(conf, "config_save_on_exit", true);
|
||||||
|
saved = config_file_write(conf, conf_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved)
|
||||||
|
RARCH_WARN("Created new config file in: \"%s\".\n", conf_path); // WARN here to make sure user has a good chance of seeing it.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RARCH_ERR("Failed to create new config file in: \"%s\".\n", conf_path);
|
||||||
|
config_file_free(conf);
|
||||||
|
conf = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conf)
|
||||||
|
strlcpy(g_extern.config_path, conf_path, sizeof(g_extern.config_path));
|
||||||
|
|
||||||
#elif !defined(__CELLOS_LV2__) && !defined(_XBOX)
|
#elif !defined(__CELLOS_LV2__) && !defined(_XBOX)
|
||||||
char conf_path[PATH_MAX];
|
char conf_path[PATH_MAX];
|
||||||
const char *xdg = getenv("XDG_CONFIG_HOME");
|
const char *xdg = getenv("XDG_CONFIG_HOME");
|
||||||
|
|
Loading…
Reference in New Issue