mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Create menu_settings_apply_deferred
This commit is contained in:
parent
fa177cb291
commit
0218a2755d
@ -43,7 +43,7 @@ int menu_entry_go_back(void)
|
||||
if (!menu_list)
|
||||
return -1;
|
||||
|
||||
menu_setting_apply_deferred();
|
||||
menu_settings_apply_deferred();
|
||||
menu_list_pop_stack(menu_list);
|
||||
|
||||
if (menu_entries_needs_refresh())
|
||||
|
@ -363,7 +363,62 @@ int menu_setting_set(unsigned type, const char *label,
|
||||
return ret;
|
||||
}
|
||||
|
||||
void menu_setting_apply_deferred(void)
|
||||
int menu_setting_apply_deferred(rarch_setting_t *setting)
|
||||
{
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
if (setting->type >= ST_GROUP)
|
||||
return -1;
|
||||
|
||||
if (!(setting->flags & SD_FLAG_IS_DEFERRED))
|
||||
return -1;
|
||||
|
||||
switch (setting->type)
|
||||
{
|
||||
case ST_BOOL:
|
||||
if (*setting->value.boolean != setting->original_value.boolean)
|
||||
{
|
||||
setting->original_value.boolean = *setting->value.boolean;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_INT:
|
||||
if (*setting->value.integer != setting->original_value.integer)
|
||||
{
|
||||
setting->original_value.integer = *setting->value.integer;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_UINT:
|
||||
if (*setting->value.unsigned_integer != setting->original_value.unsigned_integer)
|
||||
{
|
||||
setting->original_value.unsigned_integer = *setting->value.unsigned_integer;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_FLOAT:
|
||||
if (*setting->value.fraction != setting->original_value.fraction)
|
||||
{
|
||||
setting->original_value.fraction = *setting->value.fraction;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_PATH:
|
||||
case ST_DIR:
|
||||
case ST_STRING:
|
||||
case ST_BIND:
|
||||
/* Always run the deferred write handler */
|
||||
setting->deferred_handler(setting);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void menu_settings_apply_deferred(void)
|
||||
{
|
||||
rarch_setting_t *setting = menu_setting_get_ptr();
|
||||
|
||||
@ -371,54 +426,7 @@ void menu_setting_apply_deferred(void)
|
||||
return;
|
||||
|
||||
for (; setting->type != ST_NONE; setting++)
|
||||
{
|
||||
if (setting->type >= ST_GROUP)
|
||||
continue;
|
||||
|
||||
if (!(setting->flags & SD_FLAG_IS_DEFERRED))
|
||||
continue;
|
||||
|
||||
switch (setting->type)
|
||||
{
|
||||
case ST_BOOL:
|
||||
if (*setting->value.boolean != setting->original_value.boolean)
|
||||
{
|
||||
setting->original_value.boolean = *setting->value.boolean;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_INT:
|
||||
if (*setting->value.integer != setting->original_value.integer)
|
||||
{
|
||||
setting->original_value.integer = *setting->value.integer;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_UINT:
|
||||
if (*setting->value.unsigned_integer != setting->original_value.unsigned_integer)
|
||||
{
|
||||
setting->original_value.unsigned_integer = *setting->value.unsigned_integer;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_FLOAT:
|
||||
if (*setting->value.fraction != setting->original_value.fraction)
|
||||
{
|
||||
setting->original_value.fraction = *setting->value.fraction;
|
||||
setting->deferred_handler(setting);
|
||||
}
|
||||
break;
|
||||
case ST_PATH:
|
||||
case ST_DIR:
|
||||
case ST_STRING:
|
||||
case ST_BIND:
|
||||
/* Always run the deferred write handler */
|
||||
setting->deferred_handler(setting);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
menu_setting_apply_deferred(setting);
|
||||
}
|
||||
|
||||
|
||||
|
@ -216,7 +216,9 @@ typedef struct rarch_setting
|
||||
|
||||
|
||||
|
||||
void menu_setting_apply_deferred(void);
|
||||
int menu_setting_apply_deferred(rarch_setting_t *setting);
|
||||
|
||||
void menu_settings_apply_deferred(void);
|
||||
|
||||
int menu_setting_set_flags(rarch_setting_t *setting);
|
||||
|
||||
|
@ -1427,7 +1427,7 @@ void rarch_main_set_state(unsigned cmd)
|
||||
break;
|
||||
case RARCH_ACTION_STATE_MENU_RUNNING_FINISHED:
|
||||
#ifdef HAVE_MENU
|
||||
menu_setting_apply_deferred();
|
||||
menu_settings_apply_deferred();
|
||||
|
||||
menu_driver_toggle(false);
|
||||
menu_driver_unset_alive();
|
||||
|
Loading…
x
Reference in New Issue
Block a user