Rewrite has_set.libretro

This commit is contained in:
twinaphex 2016-08-01 20:47:19 +02:00
parent 6fb39e4f7f
commit ba32586d1a
4 changed files with 17 additions and 9 deletions

View File

@ -712,7 +712,6 @@ static void retroarch_parse_input(int argc, char *argv[])
global->has_set.save_path = false; global->has_set.save_path = false;
global->has_set.state_path = false; global->has_set.state_path = false;
global->has_set.libretro = false;
global->has_set.libretro_directory = false; global->has_set.libretro_directory = false;
global->has_set.verbosity = false; global->has_set.verbosity = false;
@ -863,7 +862,8 @@ static void retroarch_parse_input(int argc, char *argv[])
config_clear_active_core_path(); config_clear_active_core_path();
strlcpy(settings->directory.libretro, optarg, strlcpy(settings->directory.libretro, optarg,
sizeof(settings->directory.libretro)); sizeof(settings->directory.libretro));
global->has_set.libretro = true;
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO);
global->has_set.libretro_directory = true; global->has_set.libretro_directory = true;
RARCH_WARN("Using old --libretro behavior. " RARCH_WARN("Using old --libretro behavior. "
"Setting libretro_directory to \"%s\" instead.\n", "Setting libretro_directory to \"%s\" instead.\n",
@ -872,7 +872,7 @@ static void retroarch_parse_input(int argc, char *argv[])
else if (path_file_exists(optarg)) else if (path_file_exists(optarg))
{ {
runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, optarg); runloop_ctl(RUNLOOP_CTL_SET_LIBRETRO_PATH, optarg);
global->has_set.libretro = true; retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO);
/* We requested explicit core, so use PLAIN core type. */ /* We requested explicit core, so use PLAIN core type. */
retroarch_set_current_core_type(CORE_TYPE_PLAIN, false); retroarch_set_current_core_type(CORE_TYPE_PLAIN, false);
@ -1339,8 +1339,7 @@ bool retroarch_main_init(int argc, char *argv[])
if (settings->multimedia.builtin_mediaplayer_enable) if (settings->multimedia.builtin_mediaplayer_enable)
{ {
#ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG
global_t *global = global_get_ptr(); retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO);
global->has_set.libretro = false;
retroarch_set_current_core_type(CORE_TYPE_FFMPEG, false); retroarch_set_current_core_type(CORE_TYPE_FFMPEG, false);
#endif #endif
} }
@ -1349,8 +1348,7 @@ bool retroarch_main_init(int argc, char *argv[])
case RARCH_CONTENT_IMAGE: case RARCH_CONTENT_IMAGE:
if (settings->multimedia.builtin_imageviewer_enable) if (settings->multimedia.builtin_imageviewer_enable)
{ {
global_t *global = global_get_ptr(); retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO);
global->has_set.libretro = false;
retroarch_set_current_core_type(CORE_TYPE_IMAGEVIEWER, false); retroarch_set_current_core_type(CORE_TYPE_IMAGEVIEWER, false);
} }
break; break;
@ -1630,10 +1628,14 @@ void retroarch_fill_pathnames(void)
sizeof(global->name.ips)); sizeof(global->name.ips));
} }
static bool has_set_libretro = false;
bool retroarch_override_setting_is_set(enum rarch_override_setting enum_idx) bool retroarch_override_setting_is_set(enum rarch_override_setting enum_idx)
{ {
switch (enum_idx) switch (enum_idx)
{ {
case RARCH_OVERRIDE_SETTING_LIBRETRO:
return has_set_libretro;
case RARCH_OVERRIDE_SETTING_NONE: case RARCH_OVERRIDE_SETTING_NONE:
default: default:
break; break;
@ -1646,6 +1648,9 @@ void retroarch_override_setting_set(enum rarch_override_setting enum_idx)
{ {
switch (enum_idx) switch (enum_idx)
{ {
case RARCH_OVERRIDE_SETTING_LIBRETRO:
has_set_libretro = true;
break;
case RARCH_OVERRIDE_SETTING_NONE: case RARCH_OVERRIDE_SETTING_NONE:
default: default:
break; break;
@ -1656,6 +1661,9 @@ void retroarch_override_setting_unset(enum rarch_override_setting enum_idx)
{ {
switch (enum_idx) switch (enum_idx)
{ {
case RARCH_OVERRIDE_SETTING_LIBRETRO:
has_set_libretro = false;
break;
case RARCH_OVERRIDE_SETTING_NONE: case RARCH_OVERRIDE_SETTING_NONE:
default: default:
break; break;

View File

@ -101,6 +101,7 @@ enum rarch_capabilities
enum rarch_override_setting enum rarch_override_setting
{ {
RARCH_OVERRIDE_SETTING_NONE = 0, RARCH_OVERRIDE_SETTING_NONE = 0,
RARCH_OVERRIDE_SETTING_LIBRETRO,
RARCH_OVERRIDE_SETTING_LAST RARCH_OVERRIDE_SETTING_LAST
}; };

View File

@ -184,7 +184,6 @@ typedef struct global
bool verbosity; bool verbosity;
bool libretro_device[MAX_USERS]; bool libretro_device[MAX_USERS];
bool libretro;
bool libretro_directory; bool libretro_directory;
bool netplay_mode; bool netplay_mode;

View File

@ -1571,7 +1571,7 @@ static void menu_content_environment_get(int *argc, char *argv[],
wrap_args->state_path = global->dir.savestate; wrap_args->state_path = global->dir.savestate;
if (fullpath && *fullpath) if (fullpath && *fullpath)
wrap_args->content_path = fullpath; wrap_args->content_path = fullpath;
if (!global->has_set.libretro) if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_LIBRETRO))
wrap_args->libretro_path = string_is_empty(config_get_active_core_path()) ? NULL : wrap_args->libretro_path = string_is_empty(config_get_active_core_path()) ? NULL :
config_get_active_core_path(); config_get_active_core_path();