Add new dropdown lists

This commit is contained in:
twinaphex 2018-09-23 12:05:21 +02:00
parent 991688f35c
commit e04d3da985
2 changed files with 131 additions and 162 deletions

View File

@ -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);

View File

@ -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