From a03d1475f973119e5a4c24d8dd19bbd3afe24741 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 3 Sep 2014 21:18:01 +0200 Subject: [PATCH] (Menu) Refactor hardcoded APPLY_SHADER_CHANGES enum --- driver_menu.h | 2 +- frontend/menu/backend/menu_common_backend.c | 9 +++++---- frontend/menu/backend/menu_common_shader_backend.c | 4 ++-- frontend/menu/disp/rgui.c | 2 ++ frontend/menu/disp/rmenu.c | 2 ++ frontend/menu/disp/rmenu_xui.cpp | 2 ++ frontend/menu/menu_common.h | 2 +- frontend/menu/menu_entries.c | 4 ++-- 8 files changed, 17 insertions(+), 10 deletions(-) diff --git a/driver_menu.h b/driver_menu.h index 7640097d7b..8a3fd19106 100644 --- a/driver_menu.h +++ b/driver_menu.h @@ -139,7 +139,7 @@ typedef struct menu_ctx_driver_backend void (*shader_manager_set_preset)(struct gfx_shader *, unsigned, const char*); void (*shader_manager_save_preset)(const char *, bool); unsigned (*shader_manager_get_type)(const struct gfx_shader *); - int (*shader_manager_setting_toggle)(unsigned, unsigned); + int (*shader_manager_setting_toggle)(unsigned, const char *, unsigned); unsigned (*type_is)(unsigned); void (*setting_set_label)(char *, size_t, unsigned *, unsigned,unsigned); const char *ident; diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 5c29e65397..f19069dde8 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -114,6 +114,7 @@ static int menu_info_screen_iterate(unsigned action) "in the menu might not be correct." ); break; +#if 0 case MENU_SETTINGS_SHADER_APPLY: snprintf(msg, sizeof(msg), " -- Apply Shader Changes. \n" @@ -132,6 +133,7 @@ static int menu_info_screen_iterate(unsigned action) "saved to Shader Directory." ); break; +#endif case MENU_SETTINGS_SHADER_PASSES: snprintf(msg, sizeof(msg), " -- Shader Passes. \n" @@ -1188,9 +1190,8 @@ static int menu_setting_ok_toggle(unsigned type, "shader_preset_save", preset_filename_callback); return 0; } - else if (type == MENU_SETTINGS_SHADER_APPLY) + else if (!strcmp(label, "shader_apply_changes")) { - struct gfx_shader *shader = (struct gfx_shader*)driver.menu->shader; unsigned shader_type = RARCH_SHADER_NONE; if (driver.menu_ctx && driver.menu_ctx->backend && @@ -1198,7 +1199,7 @@ static int menu_setting_ok_toggle(unsigned type, shader_type = driver.menu_ctx->backend->shader_manager_get_type( driver.menu->shader); - if (shader->passes && shader_type != RARCH_SHADER_NONE + if (driver.menu->shader->passes && shader_type != RARCH_SHADER_NONE && driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_save_preset) driver.menu_ctx->backend->shader_manager_save_preset(NULL, true); @@ -1375,7 +1376,7 @@ static int menu_setting_toggle(unsigned type, if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_setting_toggle) return driver.menu_ctx->backend->shader_manager_setting_toggle( - type, action); + type, label, action); } else if ((type >= MENU_SETTINGS_CORE_OPTION_START)) return menu_common_core_setting_toggle(type, action); diff --git a/frontend/menu/backend/menu_common_shader_backend.c b/frontend/menu/backend/menu_common_shader_backend.c index 4b6703434a..d7fad693a4 100644 --- a/frontend/menu/backend/menu_common_shader_backend.c +++ b/frontend/menu/backend/menu_common_shader_backend.c @@ -309,7 +309,7 @@ static unsigned menu_common_shader_manager_get_type( } static int menu_common_shader_manager_setting_toggle( - unsigned id, unsigned action) + unsigned id, const char *label, unsigned action) { if (!driver.menu) { @@ -367,7 +367,7 @@ static int menu_common_shader_manager_setting_toggle( param->current = min(max(param->minimum, param->current), param->maximum); } - else if ((id == MENU_SETTINGS_SHADER_APPLY || + else if ((!strcmp(label, "shader_apply_changes") || id == MENU_SETTINGS_SHADER_PASSES)) menu_setting_set(id, action); else if (((dist_shader % 3) == 0 || id == MENU_SETTINGS_SHADER_PRESET)) diff --git a/frontend/menu/disp/rgui.c b/frontend/menu/disp/rgui.c index ee8072353c..400e42dae1 100644 --- a/frontend/menu/disp/rgui.c +++ b/frontend/menu/disp/rgui.c @@ -447,6 +447,8 @@ static void rgui_render(void) core_option_get_val(g_extern.system.core_options, type - MENU_SETTINGS_CORE_OPTION_START), sizeof(type_str)); + else if (type == MENU_FILE_SWITCH) + strlcpy(type_str, "...", sizeof(type_str)); else if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->setting_set_label) driver.menu_ctx->backend->setting_set_label(type_str, diff --git a/frontend/menu/disp/rmenu.c b/frontend/menu/disp/rmenu.c index a15163464a..450b2b9fef 100644 --- a/frontend/menu/disp/rmenu.c +++ b/frontend/menu/disp/rmenu.c @@ -315,6 +315,8 @@ static void rmenu_render(void) core_option_get_val(g_extern.system.core_options, type - MENU_SETTINGS_CORE_OPTION_START), sizeof(type_str)); + else if (type == MENU_FILE_SWITCH) + strlcpy(type_str, "...", sizeof(type_str)); else if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->setting_set_label) driver.menu_ctx->backend->setting_set_label(type_str, diff --git a/frontend/menu/disp/rmenu_xui.cpp b/frontend/menu/disp/rmenu_xui.cpp index 50020f5535..3f3a3a9920 100644 --- a/frontend/menu/disp/rmenu_xui.cpp +++ b/frontend/menu/disp/rmenu_xui.cpp @@ -514,6 +514,8 @@ static void rmenu_xui_render(void) core_option_get_val(g_extern.system.core_options, type - MENU_SETTINGS_CORE_OPTION_START), sizeof(type_str)); + else if (type == MENU_FILE_SWITCH) + strlcpy(type_str, "...", sizeof(type_str)); else if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->setting_set_label) driver.menu_ctx->backend->setting_set_label(type_str, diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index 35a6b60a14..ec09d368b4 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -61,6 +61,7 @@ typedef enum MENU_FILE_DEVICE, MENU_FILE_PLAYLIST_ENTRY, MENU_FILE_USE_DIRECTORY, + MENU_FILE_SWITCH, MENU_SETTINGS, } menu_file_type_t; @@ -92,7 +93,6 @@ typedef enum MENU_SETTINGS_SHADER_OPTIONS, MENU_SETTINGS_SHADER_FILTER, MENU_SETTINGS_SHADER_PRESET, - MENU_SETTINGS_SHADER_APPLY, MENU_SETTINGS_SHADER_PARAMETERS, // Modifies current shader directly. Will not get saved to CGP. MENU_SETTINGS_SHADER_PRESET_PARAMETERS, // Modifies shader preset currently in menu. MENU_SETTINGS_SHADER_PASSES, diff --git a/frontend/menu/menu_entries.c b/frontend/menu/menu_entries.c index 5d89323438..1acd73b081 100644 --- a/frontend/menu/menu_entries.c +++ b/frontend/menu/menu_entries.c @@ -221,8 +221,8 @@ int menu_entries_push_list(menu_handle_t *menu, return -1; file_list_clear(list); - file_list_push(list, "Apply Shader Changes", "", - MENU_SETTINGS_SHADER_APPLY, 0); + file_list_push(list, "Apply Shader Changes", "shader_apply_changes", + MENU_FILE_SWITCH, 0); file_list_push(list, "Default Filter", "", MENU_SETTINGS_SHADER_FILTER, 0); file_list_push(list, "Load Shader Preset", "",