diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 995105fd5f..6b0d5b57ae 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -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) diff --git a/settings_data.c b/settings_data.c index c36627d3eb..072cf01a2c 100644 --- a/settings_data.c +++ b/settings_data.c @@ -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() diff --git a/settings_data.h b/settings_data.h index fb2f1b56ba..7c7c0aab66 100644 --- a/settings_data.h +++ b/settings_data.h @@ -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;