(menu_settings.c) Cleanups

This commit is contained in:
twinaphex 2016-10-26 07:58:21 +02:00
parent f879f57603
commit 5ed905ad90
1 changed files with 136 additions and 177 deletions

View File

@ -89,6 +89,16 @@ struct bool_entry
uint32_t flags; uint32_t flags;
}; };
struct string_options_entry
{
char *target;
size_t len;
enum msg_hash_enums name_enum_idx;
enum msg_hash_enums SHORT_enum_idx;
const char *default_value;
const char *values;
};
#ifdef HAVE_CHEEVOS #ifdef HAVE_CHEEVOS
static void setting_get_string_representation_cheevos_password(void *data, static void setting_get_string_representation_cheevos_password(void *data,
char *s, size_t len) char *s, size_t len)
@ -2553,6 +2563,10 @@ static bool setting_append_list(
END_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group);
break; break;
case SETTINGS_LIST_DRIVERS: case SETTINGS_LIST_DRIVERS:
{
unsigned i;
struct string_options_entry string_options_entries[7];
START_GROUP(list, list_info, &group_info, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS), parent_group); START_GROUP(list, list_info, &group_info, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS), parent_group);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_DRIVER_SETTINGS); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_DRIVER_SETTINGS);
@ -2561,122 +2575,65 @@ static bool setting_append_list(
START_SUB_GROUP(list, list_info, "State", &group_info, START_SUB_GROUP(list, list_info, "State", &group_info,
&subgroup_info, parent_group); &subgroup_info, parent_group);
CONFIG_STRING_OPTIONS( string_options_entries[0].target = settings->input.driver;
list, list_info, string_options_entries[0].len = sizeof(settings->input.driver);
settings->input.driver, string_options_entries[0].name_enum_idx = MENU_ENUM_LABEL_INPUT_DRIVER;
sizeof(settings->input.driver), string_options_entries[0].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_INPUT_DRIVER;
MENU_ENUM_LABEL_INPUT_DRIVER, string_options_entries[0].default_value = config_get_default_input();
MENU_ENUM_LABEL_VALUE_INPUT_DRIVER, string_options_entries[0].values = config_get_input_driver_options();
config_get_default_input(),
config_get_input_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_INPUT_DRIVER);
CONFIG_STRING_OPTIONS( string_options_entries[1].target = settings->input.joypad_driver;
list, list_info, string_options_entries[1].len = sizeof(settings->input.joypad_driver);
settings->input.joypad_driver, string_options_entries[1].name_enum_idx = MENU_ENUM_LABEL_JOYPAD_DRIVER;
sizeof(settings->input.driver), string_options_entries[1].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_JOYPAD_DRIVER;
MENU_ENUM_LABEL_JOYPAD_DRIVER, string_options_entries[1].default_value = config_get_default_joypad();
MENU_ENUM_LABEL_VALUE_JOYPAD_DRIVER, string_options_entries[1].values = config_get_joypad_driver_options();
config_get_default_joypad(),
config_get_joypad_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_JOYPAD_DRIVER);
CONFIG_STRING_OPTIONS( string_options_entries[2].target = settings->video.driver;
list, list_info, string_options_entries[2].len = sizeof(settings->video.driver);
settings->video.driver, string_options_entries[2].name_enum_idx = MENU_ENUM_LABEL_VIDEO_DRIVER;
sizeof(settings->video.driver), string_options_entries[2].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER;
MENU_ENUM_LABEL_VIDEO_DRIVER, string_options_entries[2].default_value = config_get_default_video();
MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER, string_options_entries[2].values = config_get_video_driver_options();
config_get_default_video(),
config_get_video_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_VIDEO_DRIVER);
CONFIG_STRING_OPTIONS( string_options_entries[3].target = settings->audio.driver;
list, list_info, string_options_entries[3].len = sizeof(settings->audio.driver);
settings->audio.driver, string_options_entries[3].name_enum_idx = MENU_ENUM_LABEL_AUDIO_DRIVER;
sizeof(settings->audio.driver), string_options_entries[3].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_AUDIO_DRIVER;
MENU_ENUM_LABEL_AUDIO_DRIVER, string_options_entries[3].default_value = config_get_default_audio();
MENU_ENUM_LABEL_VALUE_AUDIO_DRIVER, string_options_entries[3].values = config_get_audio_driver_options();
config_get_default_audio(),
config_get_audio_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_AUDIO_DRIVER);
CONFIG_STRING_OPTIONS( string_options_entries[4].target = settings->audio.resampler;
list, list_info, string_options_entries[4].len = sizeof(settings->audio.resampler);
settings->audio.resampler, string_options_entries[4].name_enum_idx = MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER;
sizeof(settings->audio.resampler), string_options_entries[4].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER;
MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER, string_options_entries[4].default_value = config_get_default_audio_resampler();
MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER, string_options_entries[4].values = config_get_audio_resampler_driver_options();
config_get_default_audio_resampler(),
config_get_audio_resampler_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER);
CONFIG_STRING_OPTIONS( string_options_entries[5].target = settings->camera.driver;
list, list_info, string_options_entries[5].len = sizeof(settings->camera.driver);
settings->camera.driver, string_options_entries[5].name_enum_idx = MENU_ENUM_LABEL_CAMERA_DRIVER;
sizeof(settings->camera.driver), string_options_entries[5].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CAMERA_DRIVER;
MENU_ENUM_LABEL_CAMERA_DRIVER, string_options_entries[5].default_value = config_get_default_camera();
MENU_ENUM_LABEL_VALUE_CAMERA_DRIVER, string_options_entries[5].values = config_get_camera_driver_options();
config_get_default_camera(),
config_get_camera_driver_options(),
&group_info,
&subgroup_info,
parent_group,
general_read_handler,
general_write_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_CAMERA_DRIVER);
string_options_entries[6].target = settings->wifi.driver;
string_options_entries[6].len = sizeof(settings->wifi.driver);
string_options_entries[6].name_enum_idx = MENU_ENUM_LABEL_WIFI_DRIVER;
string_options_entries[6].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_WIFI_DRIVER;
string_options_entries[6].default_value = config_get_default_wifi();
string_options_entries[6].values = config_get_wifi_driver_options();
for (i = 0; i < ARRAY_SIZE(string_options_entries); i++)
{
CONFIG_STRING_OPTIONS( CONFIG_STRING_OPTIONS(
list, list_info, list, list_info,
settings->wifi.driver, string_options_entries[i].target,
sizeof(settings->wifi.driver), string_options_entries[i].len,
MENU_ENUM_LABEL_WIFI_DRIVER, string_options_entries[i].name_enum_idx,
MENU_ENUM_LABEL_VALUE_WIFI_DRIVER, string_options_entries[i].SHORT_enum_idx,
config_get_default_wifi(), string_options_entries[i].default_value,
config_get_wifi_driver_options(), string_options_entries[i].values,
&group_info, &group_info,
&subgroup_info, &subgroup_info,
parent_group, parent_group,
@ -2685,7 +2642,8 @@ static bool setting_append_list(
settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER); settings_data_list_current_add_flags(list, list_info, SD_FLAG_IS_DRIVER);
(*list)[list_info->index - 1].action_left = setting_string_action_left_driver; (*list)[list_info->index - 1].action_left = setting_string_action_left_driver;
(*list)[list_info->index - 1].action_right = setting_string_action_right_driver; (*list)[list_info->index - 1].action_right = setting_string_action_right_driver;
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_WIFI_DRIVER); menu_settings_list_current_add_enum_idx(list, list_info, string_options_entries[i].name_enum_idx);
}
CONFIG_STRING_OPTIONS( CONFIG_STRING_OPTIONS(
list, list_info, list, list_info,
@ -2743,6 +2701,7 @@ static bool setting_append_list(
END_SUB_GROUP(list, list_info, parent_group); END_SUB_GROUP(list, list_info, parent_group);
END_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group);
}
break; break;
case SETTINGS_LIST_CORE: case SETTINGS_LIST_CORE:
{ {