From e04d3da9850c578315ad52b4a65edc1e5e6807fa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 23 Sep 2018 12:05:21 +0200 Subject: [PATCH] Add new dropdown lists --- menu/cbs/menu_cbs_get_value.c | 162 ---------------------------------- menu/menu_setting.c | 131 +++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 162 deletions(-) diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index d40216c200..bb849171e4 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -125,36 +125,6 @@ static void menu_action_setting_disp_set_label_cheevos_locked_entry( msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY), len); } -static void menu_action_setting_disp_set_label_crt_switch_resolution( - file_list_t* list, - unsigned *w, unsigned type, unsigned i, - const char *label, - char *s, size_t len, - const char *entry_label, - const char *path, - char *s2, size_t len2) -{ - settings_t *settings = config_get_ptr(); - *w = 19; - strlcpy(s2, path, len2); - - if (settings) - { - switch (settings->uints.crt_switch_resolution) - { - case CRT_SWITCH_NONE: - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF), len); - break; - case CRT_SWITCH_15KHZ: - strlcpy(s, "15 KHz", len); - break; - case CRT_SWITCH_31KHZ: - strlcpy(s, "31 KHz", len); - break; - } - } -} - static void menu_action_setting_disp_set_label_crt_switch_resolution_super( file_list_t* list, unsigned *w, unsigned type, unsigned i, @@ -301,61 +271,6 @@ static void menu_action_setting_disp_set_label_filter( settings->paths.path_softfilter_plugin, len); } -static void menu_action_setting_disp_set_label_pipeline( - file_list_t* list, - unsigned *w, unsigned type, unsigned i, - const char *label, - char *s, size_t len, - const char *entry_label, - const char *path, - char *s2, size_t len2) -{ - settings_t *settings = config_get_ptr(); - - *s = '\0'; - *w = 19; - - switch (settings->uints.menu_xmb_shader_pipeline) - { - case XMB_SHADER_PIPELINE_WALLPAPER: - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF), len); - break; - case XMB_SHADER_PIPELINE_SIMPLE_RIBBON: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED), len); - break; - case XMB_SHADER_PIPELINE_RIBBON: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON), len); - break; - case XMB_SHADER_PIPELINE_SIMPLE_SNOW: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SIMPLE_SNOW), len); - break; - case XMB_SHADER_PIPELINE_SNOW: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOW), len); - break; - case XMB_SHADER_PIPELINE_BOKEH: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_BOKEH), len); - break; - case XMB_SHADER_PIPELINE_SNOWFLAKE: - strlcpy(s, - msg_hash_to_str( - MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOWFLAKE), len); - break; - } - - strlcpy(s2, path, len2); - -} - #ifdef HAVE_NETWORKING static void menu_action_setting_disp_set_label_netplay_mitm_server( file_list_t* list, @@ -885,71 +800,6 @@ static void menu_action_setting_disp_set_label_state( strlcat(s, " (Auto)", len); } -static void menu_action_setting_disp_set_label_xmb_theme( - file_list_t* list, - unsigned *w, unsigned type, unsigned i, - const char *label, - char *s, size_t len, - const char *entry_label, - const char *path, - char *s2, size_t len2) -{ - settings_t *settings = config_get_ptr(); - - if (!settings) - return; - - strlcpy(s2, path, len2); - *w = 19; - switch (settings->uints.menu_xmb_theme) - { - case XMB_ICON_THEME_MONOCHROME: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME), len); - break; - case XMB_ICON_THEME_FLATUI: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_FLATUI), len); - break; - case XMB_ICON_THEME_RETROACTIVE: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROACTIVE), len); - break; - case XMB_ICON_THEME_RETROSYSTEM: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROSYSTEM), len); - break; - case XMB_ICON_THEME_PIXEL: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_PIXEL), len); - break; - case XMB_ICON_THEME_NEOACTIVE: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_NEOACTIVE), len); - break; - case XMB_ICON_THEME_SYSTEMATIC: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_SYSTEMATIC), len); - break; - case XMB_ICON_THEME_DOTART: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_DOTART), len); - break; - case XMB_ICON_THEME_MONOCHROME_INVERTED: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME_INVERTED), len); - break; - case XMB_ICON_THEME_CUSTOM: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_CUSTOM), len); - break; - case XMB_ICON_THEME_AUTOMATIC: - strlcpy(s, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC), len); - break; - } -} - static void menu_action_setting_disp_set_label_wifi_is_online( file_list_t* list, unsigned *w, unsigned type, unsigned i, @@ -1875,10 +1725,6 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_xmb_layout); break; - case MENU_ENUM_LABEL_XMB_THEME: - BIND_ACTION_GET_VALUE(cbs, - menu_action_setting_disp_set_label_xmb_theme); - break; case MENU_ENUM_LABEL_CONNECT_WIFI: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_wifi_is_online); @@ -1923,10 +1769,6 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_shader_watch_for_changes); break; - case MENU_ENUM_LABEL_XMB_RIBBON_ENABLE: - BIND_ACTION_GET_VALUE(cbs, - menu_action_setting_disp_set_label_pipeline); - break; case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_shader_pass); @@ -2203,10 +2045,6 @@ int menu_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs, { switch (cbs->enum_idx) { - case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION: - BIND_ACTION_GET_VALUE(cbs, - menu_action_setting_disp_set_label_crt_switch_resolution); - return 0; case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_crt_switch_resolution_super); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 1495b25ddd..5a900bc6bf 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -190,6 +190,107 @@ static void setting_get_string_representation_cheevos_password(void *data, } #endif +static void setting_get_string_representation_uint_xmb_icon_theme(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case XMB_ICON_THEME_MONOCHROME: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME), len); + break; + case XMB_ICON_THEME_FLATUI: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_FLATUI), len); + break; + case XMB_ICON_THEME_RETROACTIVE: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROACTIVE), len); + break; + case XMB_ICON_THEME_RETROSYSTEM: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROSYSTEM), len); + break; + case XMB_ICON_THEME_PIXEL: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_PIXEL), len); + break; + case XMB_ICON_THEME_NEOACTIVE: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_NEOACTIVE), len); + break; + case XMB_ICON_THEME_SYSTEMATIC: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_SYSTEMATIC), len); + break; + case XMB_ICON_THEME_DOTART: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_DOTART), len); + break; + case XMB_ICON_THEME_MONOCHROME_INVERTED: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME_INVERTED), len); + break; + case XMB_ICON_THEME_CUSTOM: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_CUSTOM), len); + break; + case XMB_ICON_THEME_AUTOMATIC: + strlcpy(s, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC), len); + break; + } +} + +static void setting_get_string_representation_uint_xmb_shader_pipeline(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case XMB_SHADER_PIPELINE_WALLPAPER: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF), len); + break; + case XMB_SHADER_PIPELINE_SIMPLE_RIBBON: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED), len); + break; + case XMB_SHADER_PIPELINE_RIBBON: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON), len); + break; + case XMB_SHADER_PIPELINE_SIMPLE_SNOW: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SIMPLE_SNOW), len); + break; + case XMB_SHADER_PIPELINE_SNOW: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOW), len); + break; + case XMB_SHADER_PIPELINE_BOKEH: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_BOKEH), len); + break; + case XMB_SHADER_PIPELINE_SNOWFLAKE: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOWFLAKE), len); + break; + } +} + static void setting_get_string_representation_uint_video_monitor_index(void *data, char *s, size_t len) { @@ -635,6 +736,28 @@ static void setting_get_string_representation_uint_aspect_ratio_index( len); } +static void setting_get_string_representation_uint_crt_switch_resolutions( + void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case CRT_SWITCH_NONE: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF), len); + break; + case CRT_SWITCH_15KHZ: + strlcpy(s, "15 KHz", len); + break; + case CRT_SWITCH_31KHZ: + strlcpy(s, "31 KHz", len); + break; + } +} + static void setting_get_string_representation_uint_audio_resampler_quality( void *data, char *s, size_t len) @@ -4756,6 +4879,9 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_uint_crt_switch_resolutions; settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED); menu_settings_list_current_add_range(list, list_info, CRT_SWITCH_NONE, CRT_SWITCH_31KHZ, 1.0, true, true); @@ -6633,6 +6759,8 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_uint_xmb_icon_theme; menu_settings_list_current_add_range(list, list_info, 0, XMB_ICON_THEME_LAST - 1, 1, true, true); menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT); @@ -6665,6 +6793,9 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_uint_xmb_shader_pipeline; menu_settings_list_current_add_range(list, list_info, 0, XMB_SHADER_PIPELINE_LAST-1, 1, true, true); } #endif