(Menu) Refactor menu_common_setting_set_current_path_selection

This commit is contained in:
twinaphex 2014-08-27 17:36:45 +02:00
parent 6c8efe8abe
commit 5e2eead66a
3 changed files with 13 additions and 25 deletions

View File

@ -1834,7 +1834,7 @@ static void menu_common_setting_set_current_path_selection(rarch_setting_t *sett
menu_common_setting_push_current_menu(driver.menu->menu_stack, start_path, type, driver.menu->selection_ptr, action);
break;
case MENU_ACTION_START:
strlcpy(setting->value.string, setting->default_value.string, setting->size);
*setting->value.string = '\0';
break;
}
@ -3000,12 +3000,8 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
setting->change_handler(setting);
}
}
else if (setting && setting->type == ST_PATH && !(strcmp(setting->name, "input_overlay")))
{
#ifdef HAVE_OVERLAY
menu_common_setting_set_current_path_selection(setting, g_extern.overlay_dir, id, action);
#endif
}
else if (setting && setting->type == ST_PATH)
menu_common_setting_set_current_path_selection(setting, setting->default_value.string, id, action);
else
{
switch (id)
@ -3098,18 +3094,6 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
if (action == MENU_ACTION_OK)
menu_save_new_config();
break;
case MENU_CONTENT_HISTORY_PATH:
if (setting)
menu_common_setting_set_current_path_selection(setting, "", id, action);
break;
case MENU_SETTINGS_VIDEO_SOFTFILTER:
if (setting)
menu_common_setting_set_current_path_selection(setting, g_settings.video.filter_dir, id, action);
break;
case MENU_SETTINGS_AUDIO_DSP_FILTER:
if (setting)
menu_common_setting_set_current_path_selection(setting, g_settings.audio.filter_dir, id, action);
break;
// controllers
case MENU_SETTINGS_BIND_PLAYER:
if (action == MENU_ACTION_START)
@ -3702,7 +3686,7 @@ static void menu_common_setting_set_label(char *type_str,
else if (setting && setting->type == ST_FLOAT)
menu_common_setting_set_label_st_float(setting, type_str, type_str_size);
else if (setting && setting->type == ST_DIR)
strlcpy(type_str, *setting->value.string ? setting->value.string : setting->empty_path, type_str_size);
strlcpy(type_str, *setting->value.string ? setting->value.string : setting->dir.empty_path, type_str_size);
else if (setting && setting->type == ST_PATH)
strlcpy(type_str, path_basename(setting->value.string), type_str_size);
else if (setting && setting->type == ST_STRING)

View File

@ -572,7 +572,7 @@ rarch_setting_t setting_data_string_setting(enum setting_type type,
rarch_setting_t result = { type, name, size, short_description, group,
subgroup };
result.empty_path = empty;
result.dir.empty_path = empty;
result.change_handler = change_handler;
result.read_handler = read_handler;
result.value.string = target;
@ -1754,7 +1754,7 @@ rarch_setting_t* setting_data_get_list(void)
CONFIG_BOOL(g_settings.video.allow_rotate, "video_allow_rotate", "Allow rotation", allow_rotate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(g_settings.video.crop_overscan, "video_crop_overscan", "Crop Overscan (reload)", crop_overscan, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
#ifndef HAVE_FILTERS_BUILTIN
CONFIG_PATH(g_settings.video.softfilter_plugin, "video_filter", "Software filter", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("filt")
CONFIG_PATH(g_settings.video.softfilter_plugin, "video_filter", "Software filter", g_settings.video.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("filt")
#endif
#ifdef _XBOX1
CONFIG_UINT(g_settings.video.swap_interval, "video_filter_flicker", "Flicker filter", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 5, 1, true, true)
@ -1801,7 +1801,7 @@ rarch_setting_t* setting_data_get_list(void)
START_SUB_GROUP("Miscellaneous")
CONFIG_STRING(g_settings.audio.device, "audio_device", "Device", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_UINT(g_settings.audio.out_rate, "audio_out_rate", "Audio Output Rate", out_rate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_PATH(g_settings.audio.dsp_plugin, "audio_dsp_plugin", "DSP Plugin", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("dsp")
CONFIG_PATH(g_settings.audio.dsp_plugin, "audio_dsp_plugin", "DSP Plugin", g_settings.audio.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("dsp")
END_SUB_GROUP()
END_GROUP()
@ -1870,7 +1870,7 @@ rarch_setting_t* setting_data_get_list(void)
/*******************/
START_GROUP("Overlay Options")
START_SUB_GROUP("State")
CONFIG_PATH(g_settings.input.overlay, "input_overlay", "Overlay Preset", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("cfg")
CONFIG_PATH(g_settings.input.overlay, "input_overlay", "Overlay Preset", g_extern.overlay_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("cfg")
CONFIG_FLOAT(g_settings.input.overlay_opacity, "input_overlay_opacity", "Overlay Opacity", 0.7f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 1, 0.01, true, true)
CONFIG_FLOAT(g_settings.input.overlay_scale, "input_overlay_scale", "Overlay Scale", 1.0f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 2, 0.01, true, true)
END_SUB_GROUP()

View File

@ -96,8 +96,12 @@ typedef struct rarch_setting_t
struct retro_keybind* keybind;
} value;
struct
{
const char *empty_path;
} dir;
float step;
const char *empty_path;
const char *rounding_fraction;
bool enforce_minrange;
bool enforce_maxrange;