Add LIBRETRO_DEVICE to unset/set/is functions for override settings

This commit is contained in:
twinaphex 2016-10-01 06:14:30 +02:00
parent edc3fa9024
commit 2dcc5b8e43
5 changed files with 35 additions and 11 deletions

View File

@ -2307,8 +2307,8 @@ bool config_load_override(void)
strlcpy(buf, path_get(RARCH_PATH_CORE), sizeof(buf));
/* Toggle has_save_path to false so it resets */
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_STATE_PATH);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_STATE_PATH, NULL);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL);
if (!config_load_file(path_get(RARCH_PATH_CONFIG), false, config_get_ptr()))
return false;
@ -2340,8 +2340,8 @@ bool config_unload_override(void)
path_clear(RARCH_PATH_CONFIG_APPEND);
/* Toggle has_save_path to false so it resets */
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_STATE_PATH);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_STATE_PATH, NULL);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL);
if (config_load_file(path_get(RARCH_PATH_CONFIG), false, config_get_ptr()))
{

View File

@ -1601,7 +1601,7 @@ void general_write_handler(void *data)
if (setting && *setting->value.target.boolean)
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_VERBOSITY, NULL);
else
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_VERBOSITY);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_VERBOSITY, NULL);
}
break;
case MENU_ENUM_LABEL_VIDEO_SMOOTH:
@ -1650,7 +1650,7 @@ void general_write_handler(void *data)
if (val)
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS, NULL);
else
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS, NULL);
}
#endif
break;
@ -1675,7 +1675,7 @@ void general_write_handler(void *data)
if (val)
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_NETPLAY_DELAY_FRAMES, NULL);
else
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_DELAY_FRAMES);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_DELAY_FRAMES, NULL);
}
#endif
break;
@ -1687,7 +1687,7 @@ void general_write_handler(void *data)
if (val)
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_NETPLAY_CHECK_FRAMES, NULL);
else
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_CHECK_FRAMES);
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_NETPLAY_CHECK_FRAMES, NULL);
}
#endif
default:

View File

@ -1400,10 +1400,20 @@ void retroarch_override_setting_set(enum rarch_override_setting enum_idx, void *
}
}
void retroarch_override_setting_unset(enum rarch_override_setting enum_idx)
void retroarch_override_setting_unset(enum rarch_override_setting enum_idx, void *data)
{
switch (enum_idx)
{
case RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE:
{
unsigned *val = (unsigned*)data;
if (val)
{
unsigned bit = *val;
BIT128_CLEAR(has_set_libretro_device, bit);
}
}
break;
case RARCH_OVERRIDE_SETTING_VERBOSITY:
has_set_verbosity = false;
break;
@ -1453,7 +1463,16 @@ void retroarch_override_setting_free_state(void)
{
unsigned i;
for (i = 0; i < RARCH_OVERRIDE_SETTING_LAST; i++)
retroarch_override_setting_unset((enum rarch_override_setting)(i));
{
if (i == RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE)
{
unsigned j;
for (j = 0; j < MAX_USERS; j++)
retroarch_override_setting_unset((enum rarch_override_setting)(i), &j);
}
else
retroarch_override_setting_unset((enum rarch_override_setting)(i), NULL);
}
}
int retroarch_get_capabilities(enum rarch_capabilities type,

View File

@ -160,7 +160,7 @@ int retroarch_get_capabilities(enum rarch_capabilities type,
void retroarch_override_setting_set(enum rarch_override_setting enum_idx, void *data);
void retroarch_override_setting_unset(enum rarch_override_setting enum_idx);
void retroarch_override_setting_unset(enum rarch_override_setting enum_idx, void *data);
void retroarch_override_setting_free_state(void);

View File

@ -762,6 +762,11 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
dir_clear(RARCH_DIR_RECORD_OUTPUT);
dir_clear_all();
recording_driver_free_state();
{
unsigned j;
for (j = 0; j < MAX_USERS; j++)
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE, &j);
}
{
global_t *global = global_get_ptr();