diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index a09bef57e3..644af43a56 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4383,84 +4383,54 @@ bool menu_displaylist_setting(menu_displaylist_ctx_parse_entry_t *entry) return true; } +typedef struct menu_displaylist_build_info { + enum msg_hash_enums enum_idx; + enum menu_displaylist_parse_type parse_type; +} menu_displaylist_build_info_t; + unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ctl_state type) { - unsigned count = 0; + unsigned i; + unsigned count = 0; + settings_t *settings = config_get_ptr(); switch (type) { case DISPLAYLIST_SETTINGS_ALL: - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_DRIVER_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_VIDEO_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_AUDIO_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_INPUT_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_LATENCY_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_CORE_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_CONFIGURATION_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_SAVING_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_LOGGING_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS, PARSE_ACTION, false) == 0) - count++; - { - settings_t *settings = config_get_ptr(); - if (string_is_not_equal(settings->arrays.record_driver, "null")) + menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_DRIVER_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_VIDEO_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_AUDIO_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_INPUT_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_LATENCY_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_CORE_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_CONFIGURATION_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_SAVING_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_LOGGING_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_RECORDING_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS, PARSE_ACTION}, + {MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_WIFI_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_NETWORK_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_LAKKA_SERVICES,PARSE_ACTION}, + {MENU_ENUM_LABEL_PLAYLIST_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_USER_SETTINGS,PARSE_ACTION}, + {MENU_ENUM_LABEL_DIRECTORY_SETTINGS,PARSE_ACTION}, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_RECORDING_SETTINGS, PARSE_ACTION, false) == 0) + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) count++; + } } - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_WIFI_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_NETWORK_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_LAKKA_SERVICES, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_PLAYLIST_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_USER_SETTINGS, PARSE_ACTION, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_DIRECTORY_SETTINGS, PARSE_ACTION, false) == 0) - count++; break; case DISPLAYLIST_POWER_MANAGEMENT_SETTINGS_LIST: if (menu_displaylist_parse_settings_enum(list, @@ -4877,14 +4847,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct PARSE_ONLY_BOOL, false) == 0) count++; - { - settings_t *settings = config_get_ptr(); - if (settings->bools.menu_show_advanced_settings) - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE, - PARSE_ONLY_BOOL, false) == 0) - count++; - } + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE, + PARSE_ONLY_BOOL, false) == 0) + count++; break; case DISPLAYLIST_MENU_SETTINGS_LIST: if (menu_displaylist_parse_settings_enum(list,