From 71e07316db921ec0ded67f13103fc0ee1559ad3e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 25 Apr 2019 04:52:52 +0200 Subject: [PATCH] (menu displaylist) Cleanups --- menu/menu_displaylist.c | 205 ++++++++++++++++++---------------------- 1 file changed, 90 insertions(+), 115 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index a86e651b20..10793622b0 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3455,6 +3455,93 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct switch (type) { + case DISPLAYLIST_RECORDING_SETTINGS_LIST: + { + menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_VIDEO_RECORD_QUALITY, PARSE_ONLY_UINT }, + {MENU_ENUM_LABEL_RECORD_CONFIG, PARSE_ONLY_PATH }, + {MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY, PARSE_ONLY_UINT }, + {MENU_ENUM_LABEL_STREAM_CONFIG, PARSE_ONLY_PATH }, + {MENU_ENUM_LABEL_STREAMING_MODE, PARSE_ONLY_UINT }, + {MENU_ENUM_LABEL_VIDEO_RECORD_THREADS, PARSE_ONLY_UINT }, + {MENU_ENUM_LABEL_STREAMING_TITLE, PARSE_ONLY_STRING}, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (menu_displaylist_parse_settings_enum(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } + + { + settings_t *settings = config_get_ptr(); + if (settings->uints.streaming_mode == STREAMING_MODE_LOCAL) + { + /* TODO: Refresh on settings->uints.streaming_mode change to show this parameter */ + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_UDP_STREAM_PORT, + PARSE_ONLY_UINT, false) == 0) + count++; + } + } + + { + menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_STREAMING_URL, PARSE_ONLY_STRING}, + {MENU_ENUM_LABEL_VIDEO_GPU_RECORD, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_VIDEO_POST_FILTER_RECORD, PARSE_ONLY_BOOL }, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (menu_displaylist_parse_settings_enum(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } + break; + case DISPLAYLIST_ACCOUNTS_YOUTUBE_LIST: + { + menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_YOUTUBE_STREAM_KEY, PARSE_ONLY_STRING}, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (menu_displaylist_parse_settings_enum(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } + break; + case DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST: + { + menu_displaylist_build_info_t build_list[] = { + {MENU_ENUM_LABEL_CHEEVOS_ENABLE, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_USERNAME, PARSE_ONLY_STRING}, + {MENU_ENUM_LABEL_CHEEVOS_PASSWORD, PARSE_ONLY_STRING}, + {MENU_ENUM_LABEL_CHEEVOS_HARDCORE_MODE_ENABLE, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_LEADERBOARDS_ENABLE, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_TEST_UNOFFICIAL, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_VERBOSE_ENABLE, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_CHEEVOS_AUTO_SCREENSHOT, PARSE_ONLY_BOOL }, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (menu_displaylist_parse_settings_enum(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } + break; case DISPLAYLIST_ACCOUNTS_TWITCH_LIST: if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_TWITCH_STREAM_KEY, @@ -5404,6 +5491,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_OPTIONS_DISK: case DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST: case DISPLAYLIST_ACCOUNTS_TWITCH_LIST: + case DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST: + case DISPLAYLIST_ACCOUNTS_YOUTUBE_LIST: + case DISPLAYLIST_RECORDING_SETTINGS_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); count = menu_displaylist_build_list(info->list, type); @@ -5655,39 +5745,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY, FILE_TYPE_NONE, 0, 0); - info->need_refresh = true; - info->need_push = true; - break; - case DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST: - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_ENABLE, - PARSE_ONLY_BOOL, false); - ret = menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_USERNAME, - PARSE_ONLY_STRING, false); - ret = menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_PASSWORD, - PARSE_ONLY_STRING, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_HARDCORE_MODE_ENABLE, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_LEADERBOARDS_ENABLE, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_TEST_UNOFFICIAL, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_VERBOSE_ENABLE, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHEEVOS_AUTO_SCREENSHOT, - PARSE_ONLY_BOOL, false); - info->need_refresh = true; info->need_push = true; break; @@ -6587,69 +6644,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, info->need_refresh = false; info->need_push = true; break; - case DISPLAYLIST_RECORDING_SETTINGS_LIST: - { - settings_t *settings = config_get_ptr(); - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_RECORD_QUALITY, - PARSE_ONLY_UINT, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_RECORD_CONFIG, - PARSE_ONLY_PATH, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY, - PARSE_ONLY_UINT, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_STREAM_CONFIG, - PARSE_ONLY_PATH, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_STREAMING_MODE, - PARSE_ONLY_UINT, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_RECORD_THREADS, - PARSE_ONLY_UINT, true) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_STREAMING_TITLE, - PARSE_ONLY_STRING, false) == 0) - count++; - if (settings->uints.streaming_mode == STREAMING_MODE_LOCAL) - { - /* TODO: Refresh on settings->uints.streaming_mode change to show this parameter */ - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_UDP_STREAM_PORT, - PARSE_ONLY_UINT, false) == 0) - count++; - } - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_STREAMING_URL, - PARSE_ONLY_STRING, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_GPU_RECORD, - PARSE_ONLY_BOOL, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_POST_FILTER_RECORD, - PARSE_ONLY_BOOL, false) == 0) - count++; - - if (count == 0) - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND), - msg_hash_to_str(MENU_ENUM_LABEL_NO_SETTINGS_FOUND), - MENU_ENUM_LABEL_NO_SETTINGS_FOUND, - 0, 0, 0); - - info->need_push = true; - } - break; case DISPLAYLIST_MAIN_MENU: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { @@ -6881,25 +6875,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, } #endif - info->need_refresh = true; - info->need_push = true; - break; - case DISPLAYLIST_ACCOUNTS_YOUTUBE_LIST: - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_YOUTUBE_STREAM_KEY, - PARSE_ONLY_STRING, false) == 0) - count++; - - if (count == 0) - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ITEMS), - msg_hash_to_str(MENU_ENUM_LABEL_NO_ITEMS), - MENU_ENUM_LABEL_NO_ITEMS, - MENU_SETTING_NO_ITEM, 0, 0); - - ret = 0; info->need_refresh = true; info->need_push = true; break;