From 8b2eb8ed3729ff3a11bcbc440aef1c706c107e10 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 21 Mar 2021 16:36:36 +0100 Subject: [PATCH] Cut down on config_get_ptr calls in menu_displaylist_ctl --- menu/cbs/menu_cbs_deferred_push.c | 18 ++-- menu/cbs/menu_cbs_info.c | 4 +- menu/cbs/menu_cbs_ok.c | 2 +- menu/drivers/ozone/ozone.c | 6 +- menu/drivers/ozone/ozone_sidebar.c | 3 +- menu/drivers/stripes.c | 9 +- menu/drivers/xmb.c | 9 +- menu/menu_displaylist.c | 153 ++++++++--------------------- menu/menu_displaylist.h | 2 +- menu/menu_explore.c | 3 +- menu/menu_setting.c | 5 +- retroarch.c | 51 ++++++---- 12 files changed, 112 insertions(+), 153 deletions(-) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 550ef8c9a7..1c8c1bdc1a 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -50,7 +50,8 @@ enum #define GENERIC_DEFERRED_PUSH(name, type) \ static int (name)(menu_displaylist_info_t *info) \ { \ - return deferred_push_dlist(info, type); \ + settings_t *settings = config_get_ptr(); \ + return deferred_push_dlist(info, type, settings); \ } #define GENERIC_DEFERRED_CURSOR_MANAGER(name, type) \ @@ -67,9 +68,10 @@ static int (name)(menu_displaylist_info_t *info) \ static int deferred_push_dlist( menu_displaylist_info_t *info, - enum menu_displaylist_ctl_state state) + enum menu_displaylist_ctl_state state, + settings_t *settings) { - if (!menu_displaylist_ctl(state, info)) + if (!menu_displaylist_ctl(state, info, settings)) return menu_cbs_exit(); menu_displaylist_process(info); return 0; @@ -78,6 +80,7 @@ static int deferred_push_dlist( static int deferred_push_database_manager_list_deferred( menu_displaylist_info_t *info) { + settings_t *settings = config_get_ptr(); if (!string_is_empty(info->path_b)) free(info->path_b); if (!string_is_empty(info->path_c)) @@ -86,7 +89,7 @@ static int deferred_push_database_manager_list_deferred( info->path_b = strdup(info->path); info->path_c = NULL; - return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY); + return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY, settings); } GENERIC_DEFERRED_PUSH(deferred_push_remappings_port, DISPLAYLIST_OPTIONS_REMAPPINGS_PORT) @@ -306,7 +309,7 @@ static int deferred_push_cursor_manager_list_deferred( info->path_c = strdup(query_entry->value); info->path = strdup(rdb_path); - return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY); + return deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY, settings); } #ifdef HAVE_LIBRETRODB @@ -317,6 +320,7 @@ static int deferred_push_cursor_manager_list_generic( int ret = -1; const char *path = info->path; struct string_list str_list = {0}; + settings_t *settings = config_get_ptr(); if (!path) goto end; @@ -343,7 +347,7 @@ static int deferred_push_cursor_manager_list_generic( info->path_b = strdup(str_list.elems[0].data); info->path_c = strdup(query); - ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY); + ret = deferred_push_dlist(info, DISPLAYLIST_DATABASE_QUERY, settings); end: string_list_deinitialize(&str_list); @@ -612,7 +616,7 @@ static int general_push(menu_displaylist_info_t *info, info->exts = strdup(newstring2); } - return deferred_push_dlist(info, state); + return deferred_push_dlist(info, state, settings); } GENERIC_DEFERRED_PUSH_GENERAL(deferred_push_detect_core_list, PUSH_DETECT_CORE_LIST, DISPLAYLIST_CORES_DETECTED) diff --git a/menu/cbs/menu_cbs_info.c b/menu/cbs/menu_cbs_info.c index bdb275cde0..6c003353e6 100644 --- a/menu/cbs/menu_cbs_info.c +++ b/menu/cbs/menu_cbs_info.c @@ -34,8 +34,8 @@ static int action_info_default(unsigned type, const char *label) menu_displaylist_info_t info; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); size_t selection = menu_navigation_get_selection(); -#ifdef HAVE_AUDIOMIXER settings_t *settings = config_get_ptr(); +#ifdef HAVE_AUDIOMIXER bool audio_enable_menu = settings->bools.audio_enable_menu; bool audio_enable_menu_notice = settings->bools.audio_enable_menu_notice; #endif @@ -48,7 +48,7 @@ static int action_info_default(unsigned type, const char *label) info.label = strdup( msg_hash_to_str(MENU_ENUM_LABEL_INFO_SCREEN)); - if (!menu_displaylist_ctl(DISPLAYLIST_HELP, &info)) + if (!menu_displaylist_ctl(DISPLAYLIST_HELP, &info, settings)) goto error; #ifdef HAVE_AUDIOMIXER diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index f1421c3ad5..9eed807428 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1535,7 +1535,7 @@ int generic_action_ok_displaylist_push(const char *path, if (info_path) info.path = strdup(info_path); - if (menu_displaylist_ctl(dl_type, &info)) + if (menu_displaylist_ctl(dl_type, &info, settings)) { if (menu_displaylist_process(&info)) { diff --git a/menu/drivers/ozone/ozone.c b/menu/drivers/ozone/ozone.c index 6c11b6a992..d80ec1521d 100644 --- a/menu/drivers/ozone/ozone.c +++ b/menu/drivers/ozone/ozone.c @@ -3415,6 +3415,7 @@ static bool ozone_menu_init_list(void *data) { menu_displaylist_info_t info; + settings_t *settings = config_get_ptr(); file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); @@ -3433,7 +3434,7 @@ static bool ozone_menu_init_list(void *data) info.list = selection_buf; - if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) + if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info, settings)) goto error; info.need_push = true; @@ -3649,8 +3650,9 @@ static void ozone_messagebox(void *data, const char *message) static int ozone_deferred_push_content_actions(menu_displaylist_info_t *info) { + settings_t *settings = config_get_ptr(); if (!menu_displaylist_ctl( - DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info)) + DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info, settings)) return -1; menu_displaylist_process(info); menu_displaylist_info_free(info); diff --git a/menu/drivers/ozone/ozone_sidebar.c b/menu/drivers/ozone/ozone_sidebar.c index 1fa8c64356..e9071d6e2d 100644 --- a/menu/drivers/ozone/ozone_sidebar.c +++ b/menu/drivers/ozone/ozone_sidebar.c @@ -801,7 +801,8 @@ void ozone_init_horizontal_list(ozone_handle_t *ozone, if (menu_content_show_playlists && !string_is_empty(info.path)) { - if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, + &info, settings)) menu_displaylist_process(&info); } diff --git a/menu/drivers/stripes.c b/menu/drivers/stripes.c index 94f7e645e6..5bd208e762 100644 --- a/menu/drivers/stripes.c +++ b/menu/drivers/stripes.c @@ -1776,7 +1776,8 @@ static void stripes_init_horizontal_list(stripes_handle_t *stripes) if (!string_is_empty(info.path)) { - if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info, + settings)) { size_t i; for (i = 0; i < stripes->horizontal_list.size; i++) @@ -4083,8 +4084,9 @@ static void stripes_toggle(void *userdata, bool menu_on) static int stripes_deferred_push_content_actions(menu_displaylist_info_t *info) { + settings_t *settings = config_get_ptr(); if (!menu_displaylist_ctl( - DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info)) + DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info, settings)) return -1; menu_displaylist_process(info); menu_displaylist_info_free(info); @@ -4351,6 +4353,7 @@ static int stripes_list_push(void *data, void *userdata, static bool stripes_menu_init_list(void *data) { menu_displaylist_info_t info; + settings_t *settings = config_get_ptr(); file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); @@ -4370,7 +4373,7 @@ static bool stripes_menu_init_list(void *data) info.list = selection_buf; - if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) + if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info, settings)) goto error; info.need_push = true; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 9cdbc5eb26..329f411cb5 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2119,7 +2119,8 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb) if (menu_content_show_playlists && !string_is_empty(info.path)) { - if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info, + settings)) { size_t i; for (i = 0; i < xmb->horizontal_list.size; i++) @@ -6656,8 +6657,9 @@ static void xmb_toggle(void *userdata, bool menu_on) static int xmb_deferred_push_content_actions(menu_displaylist_info_t *info) { + settings_t *settings = config_get_ptr(); if (!menu_displaylist_ctl( - DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info)) + DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info, settings)) return -1; menu_displaylist_process(info); menu_displaylist_info_free(info); @@ -6981,6 +6983,7 @@ static bool xmb_menu_init_list(void *data) { menu_displaylist_info_t info; + settings_t *settings = config_get_ptr(); file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); @@ -6999,7 +7002,7 @@ static bool xmb_menu_init_list(void *data) info.list = selection_buf; - if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) + if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info, settings)) goto error; info.need_push = true; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 6ea8120ad1..2c13c9eeb3 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -9234,7 +9234,8 @@ bool menu_displaylist_has_subsystems(void) } bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, - menu_displaylist_info_t *info) + menu_displaylist_info_t *info, + settings_t *settings) { size_t i; menu_ctx_displaylist_t disp_list; @@ -9257,7 +9258,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, #ifdef HAVE_NETWORKING { bool include_everything = false; - settings_t *settings = config_get_ptr(); file_list_t *list = info->list; menu_displaylist_build_info_selective_t build_list[] = { {MENU_ENUM_LABEL_NETPLAY_TCP_UDP_PORT, PARSE_ONLY_UINT, true}, @@ -9322,7 +9322,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_OPTIONS_REMAPPINGS_PORT: { - settings_t *settings = config_get_ptr(); unsigned max_users = *(input_driver_get_uint(INPUT_ACTION_MAX_USERS)); const char *menu_driver = menu_driver_ident(); bool is_rgui = string_is_equal(menu_driver, "rgui"); @@ -9883,7 +9882,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, #if defined(HAVE_FFMPEG) || defined(HAVE_MPV) { - settings_t *settings = config_get_ptr(); bool multimedia_builtin_mediaplayer_enable = settings->bools.multimedia_builtin_mediaplayer_enable; if (multimedia_builtin_mediaplayer_enable) { @@ -10000,11 +9998,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_INFORMATION: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_content_information(menu, - settings, info); - } + count = menu_displaylist_parse_content_information(menu, + settings, info); if (count == 0) menu_entries_append_enum(info->list, @@ -10019,7 +10014,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_DATABASE_ENTRY: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); #ifdef HAVE_LIBRETRODB bool parse_database = false; #endif @@ -10114,7 +10108,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, unsigned i; struct video_shader *shader = menu_shader_get(); unsigned pass_count = shader ? shader->passes : 0; - settings_t *settings = config_get_ptr(); bool video_shader_enable = settings->bools.video_shader_enable; if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(info->list, @@ -10284,7 +10277,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, { #ifdef HAVE_NETWORKING char new_label[PATH_MAX_LENGTH]; - settings_t *settings = config_get_ptr(); const char * network_buildbot_assets_url = settings->paths.network_buildbot_assets_url; @@ -10316,7 +10308,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, { core_updater_list_t *core_list = core_updater_list_get_cached(); struct string_list *search_terms = menu_driver_search_get_terms(); - settings_t *settings = config_get_ptr(); bool show_experimental_cores = settings->bools.network_buildbot_show_experimental_cores; size_t selection = menu_navigation_get_selection(); @@ -10417,11 +10408,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_PL_THUMBNAILS_UPDATER: #ifdef HAVE_NETWORKING menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_pl_thumbnail_download_list(info, - settings); - } + count = menu_displaylist_parse_pl_thumbnail_download_list(info, + settings); if (count == 0) menu_entries_append_enum(info->list, @@ -10465,7 +10453,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, if (string_is_equal(info->path, FILE_PATH_CONTENT_HISTORY)) { - if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info)) + if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info, settings)) return menu_displaylist_process(info); return false; } @@ -10473,7 +10461,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, if (string_is_equal(info->path, FILE_PATH_CONTENT_FAVORITES)) { - if (menu_displaylist_ctl(DISPLAYLIST_FAVORITES, info)) + if (menu_displaylist_ctl(DISPLAYLIST_FAVORITES, info, settings)) return menu_displaylist_process(info); return false; } @@ -10482,7 +10470,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, { char path_playlist[PATH_MAX_LENGTH]; playlist_t *playlist = NULL; - settings_t *settings = config_get_ptr(); const char *dir_playlist = settings->paths.directory_playlist; path_playlist[0] = '\0'; @@ -10519,7 +10506,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_HISTORY: { - settings_t *settings = config_get_ptr(); bool history_list_enable = settings->bools.history_list_enable; const char *path_content_history = settings->paths.path_content_history; @@ -10553,7 +10539,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_FAVORITES: { - settings_t *settings = config_get_ptr(); const char *path_content_favorites = settings->paths.path_content_favorites; info->count = 0; @@ -10590,7 +10575,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_MUSIC_HISTORY: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); const char * path_content_music_history = settings->paths.path_content_music_history; info->count = 0; @@ -10634,7 +10618,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, info->count = 0; #if defined(HAVE_FFMPEG) || defined(HAVE_MPV) { - settings_t *settings = config_get_ptr(); bool history_list_enable = settings->bools.history_list_enable; const char * path_content_video_history = settings->paths.path_content_video_history; @@ -10920,7 +10903,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, * number of menu entries - if not, we reset the * navigation pointer */ size_t selection = menu_navigation_get_selection(); - settings_t *settings = config_get_ptr(); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); count = menu_displaylist_parse_core_info(info, settings); @@ -10936,7 +10918,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_CORE_RESTORE_BACKUP_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); count = menu_displaylist_parse_core_backup_list( info, settings, true); } @@ -10946,7 +10927,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_CORE_DELETE_BACKUP_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); count = menu_displaylist_parse_core_backup_list( info, settings, false); } @@ -10962,7 +10942,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, * the navigation pointer if the current size is * different */ static size_t prev_count = 0; - settings_t *settings = config_get_ptr(); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); count = menu_displaylist_parse_core_manager_list(info, settings); @@ -11002,7 +10981,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, if (rarch_ctl(RARCH_CTL_HAS_CORE_OPTIONS, NULL)) { size_t num_opts = 0; - settings_t *settings = config_get_ptr(); bool game_specific_options = settings->bools.game_specific_options; rarch_ctl(RARCH_CTL_GET_CORE_OPTION_SIZE, &num_opts); @@ -11113,10 +11091,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_PLAYLIST_MANAGER_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_playlist_manager_list(info, settings); - } + count = menu_displaylist_parse_playlist_manager_list(info, settings); if (count == 0) menu_entries_append_enum(info->list, @@ -11130,17 +11105,14 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_PLAYLIST_MANAGER_SETTINGS: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - if (!menu_displaylist_parse_playlist_manager_settings(menu, - settings, - info, info->path)) - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY), - msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY), - MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY, - FILE_TYPE_NONE, 0, 0); - } + if (!menu_displaylist_parse_playlist_manager_settings(menu, + settings, + info, info->path)) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY), + msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY), + MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY, + FILE_TYPE_NONE, 0, 0); info->need_push = true; @@ -11168,37 +11140,25 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_DROPDOWN_LIST_INPUT_DEVICE_TYPE: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_input_device_type_list(info, settings); - } + count = menu_displaylist_parse_input_device_type_list(info, settings); info->need_refresh = true; info->need_push = true; break; case DISPLAYLIST_DROPDOWN_LIST_INPUT_DEVICE_INDEX: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_input_device_index_list(info, settings); - } + count = menu_displaylist_parse_input_device_index_list(info, settings); info->need_refresh = true; info->need_push = true; break; case DISPLAYLIST_DROPDOWN_LIST_INPUT_DESCRIPTION: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_input_description_list(info, settings); - } + count = menu_displaylist_parse_input_description_list(info, settings); info->need_refresh = true; info->need_push = true; break; case DISPLAYLIST_DROPDOWN_LIST_INPUT_DESCRIPTION_KBD: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_input_description_kbd_list(info, settings); - } + count = menu_displaylist_parse_input_description_kbd_list(info, settings); info->need_refresh = true; info->need_push = true; break; @@ -11299,10 +11259,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_PLAYLIST_SETTINGS_LIST: case DISPLAYLIST_SUBSYSTEM_SETTINGS_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_build_list(info->list, settings, type, false); - } + count = menu_displaylist_build_list(info->list, settings, type, false); if (count == 0) { @@ -11386,10 +11343,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_HORIZONTAL: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - ret = menu_displaylist_parse_horizontal_list(menu, settings, info); - } + ret = menu_displaylist_parse_horizontal_list(menu, settings, info); /* Playlists themselves are sorted * > Display lists generated from playlists @@ -11400,11 +11354,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - { - settings_t *settings = config_get_ptr(); - ret = menu_displaylist_parse_horizontal_content_actions(menu, - settings, info); - } + ret = menu_displaylist_parse_horizontal_content_actions(menu, + settings, info); info->need_refresh = true; info->need_push = true; @@ -11418,10 +11369,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_OPTIONS: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { -#ifdef HAVE_NETWORKING - settings_t *settings = config_get_ptr(); -#endif - #ifdef HAVE_LAKKA if (menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_LAKKA), @@ -11630,43 +11577,40 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_OPTIONS_OVERRIDES: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + if (settings->bools.quick_menu_show_save_core_overrides + && !settings->bools.kiosk_mode_enable) { - settings_t *settings = config_get_ptr(); - if (settings->bools.quick_menu_show_save_core_overrides - && !settings->bools.kiosk_mode_enable) - { - if (menu_entries_append_enum(info->list, + if (menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE), msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE), MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE, MENU_SETTING_ACTION, 0, 0)) - count++; - } + count++; + } - if (settings->bools.quick_menu_show_save_content_dir_overrides - && !settings->bools.kiosk_mode_enable) - { - if (menu_entries_append_enum(info->list, + if (settings->bools.quick_menu_show_save_content_dir_overrides + && !settings->bools.kiosk_mode_enable) + { + if (menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR), msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR), MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR, MENU_SETTING_ACTION, 0, 0)) - count++; - } + count++; + } - if (settings->bools.quick_menu_show_save_game_overrides - && !settings->bools.kiosk_mode_enable) - { - if (menu_entries_append_enum(info->list, + if (settings->bools.quick_menu_show_save_game_overrides + && !settings->bools.kiosk_mode_enable) + { + if (menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME), msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME), MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME, MENU_SETTING_ACTION, 0, 0)) - count++; - } - + count++; } + if (count == 0) menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND), @@ -11715,7 +11659,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_MAIN_MENU: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); rarch_system_info_t *sys_info = runloop_get_system_info(); bool show_add_content = false; #if defined(HAVE_RGUI) || defined(HAVE_MATERIALUI) || defined(HAVE_OZONE) || defined(HAVE_XMB) @@ -11940,7 +11883,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_DATABASES: { - settings_t *settings = config_get_ptr(); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); filebrowser_clear_type(); if (!string_is_empty(info->exts)) @@ -11957,7 +11899,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, break; case DISPLAYLIST_DATABASE_CURSORS: { - settings_t *settings = config_get_ptr(); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); filebrowser_clear_type(); if (!string_is_empty(info->exts)) @@ -12062,7 +12003,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_PLAYLIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); { - settings_t *settings = config_get_ptr(); menu_displaylist_parse_playlist_generic(menu, info, settings, path_basename(info->path), @@ -12088,7 +12028,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, info->count = 0; #ifdef HAVE_IMAGEVIEWER { - settings_t *settings = config_get_ptr(); bool history_list_enable = settings->bools.history_list_enable; const char *path_content_image_history = settings->paths.path_content_image_history; @@ -12244,7 +12183,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_DATABASE_PLAYLISTS: case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL: { - settings_t *settings = config_get_ptr(); bool is_horizontal = (type == DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL); @@ -12281,10 +12219,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, } } - { - settings_t *settings = config_get_ptr(); - count = menu_displaylist_parse_cores(menu, settings, info); - } + count = menu_displaylist_parse_cores(menu, settings, info); if (count == 0) menu_entries_append_enum(info->list, @@ -12349,7 +12284,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, struct core_option *option = NULL; bool checked_found = false; unsigned checked = 0; - settings_t *settings = config_get_ptr(); bool game_specific_options = settings->bools.game_specific_options; /* Note: Although we display value labels here, @@ -13198,7 +13132,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, } else { - settings_t *settings = config_get_ptr(); const char *pending_selection = menu_driver_get_pending_selection(); bool show_hidden_files = settings->bools.show_hidden_files; bool multimedia_builtin_mediaplayer_enable = settings->bools.multimedia_builtin_mediaplayer_enable; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index e3f69bd268..850909553f 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -321,7 +321,7 @@ unsigned menu_displaylist_build_list( void menu_displaylist_info_init(menu_displaylist_info_t *info); -bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info); +bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist_info_t *info, settings_t *settings); #ifdef HAVE_NETWORKING unsigned menu_displaylist_netplay_refresh_rooms(file_list_t *list); diff --git a/menu/menu_explore.c b/menu/menu_explore.c index fa28edeb0e..c0be121b7f 100644 --- a/menu/menu_explore.c +++ b/menu/menu_explore.c @@ -1176,7 +1176,8 @@ SKIP_ENTRY:; strlcpy(menu->deferred_path, pl_entry->path, sizeof(menu->deferred_path)); info.list = list; - menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, &info); + menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, &info, + config_get_ptr()); break; } } diff --git a/menu/menu_setting.c b/menu/menu_setting.c index ca21b04ee1..06fcd5968e 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -6518,6 +6518,7 @@ int menu_action_handle_setting(rarch_setting_t *setting, if (action == MENU_ACTION_OK) { menu_displaylist_info_t info; + settings_t *settings = config_get_ptr(); file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); const char *name = setting->name; size_t selection = menu_navigation_get_selection(); @@ -6530,7 +6531,7 @@ int menu_action_handle_setting(rarch_setting_t *setting, info.directory_ptr = selection; info.list = menu_stack; - if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info, settings)) menu_displaylist_process(&info); menu_displaylist_info_free(&info); @@ -7191,7 +7192,7 @@ static void general_write_handler(rarch_setting_t *setting) msg_hash_to_str(MENU_ENUM_LABEL_HELP)); info.list = menu_stack; - if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info, settings)) menu_displaylist_process(&info); menu_displaylist_info_free(&info); setting_set_with_string_representation(setting, "false"); diff --git a/retroarch.c b/retroarch.c index 2828e2869c..7f1a39fafb 100644 --- a/retroarch.c +++ b/retroarch.c @@ -906,6 +906,7 @@ static int menu_input_key_bind_set_mode_common( menu_displaylist_info_t info; unsigned bind_type = 0; struct retro_keybind *keybind = NULL; + settings_t *settings = config_get_ptr(); unsigned index_offset = setting->index_offset; menu_list_t *menu_list = menu_st->entries.list; file_list_t *menu_stack = menu_list ? MENU_LIST_GET(menu_list, (unsigned)0) : NULL; @@ -954,7 +955,7 @@ static int menu_input_key_bind_set_mode_common( return 0; } - if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info, settings)) menu_displaylist_process(&info); menu_displaylist_info_free(&info); @@ -1820,6 +1821,7 @@ static void menu_input_set_pointer_visibility( **/ static int generic_menu_iterate( struct rarch_state *p_rarch, + settings_t *settings, menu_handle_t *menu, void *userdata, enum menu_action action, retro_time_t current_time) @@ -2128,7 +2130,7 @@ static int generic_menu_iterate( if (label) info.label = strdup(label); - menu_displaylist_ctl(DISPLAYLIST_HELP, &info); + menu_displaylist_ctl(DISPLAYLIST_HELP, &info, settings); } } break; @@ -2176,27 +2178,28 @@ static int generic_menu_iterate( static bool menu_driver_displaylist_push_internal( const char *label, - menu_displaylist_info_t *info) + menu_displaylist_info_t *info, + settings_t *settings) { if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_HISTORY_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info)) + if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, info, settings)) return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_FAVORITES, info)) + if (menu_displaylist_ctl(DISPLAYLIST_FAVORITES, info, settings)) return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_SETTINGS_ALL, info)) + if (menu_displaylist_ctl(DISPLAYLIST_SETTINGS_ALL, info, settings)) return true; } #ifdef HAVE_CHEATS else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_SETTINGS))) { - if (menu_displaylist_ctl(DISPLAYLIST_CHEAT_SEARCH_SETTINGS_LIST, info)) + if (menu_displaylist_ctl(DISPLAYLIST_CHEAT_SEARCH_SETTINGS_LIST, info, settings)) return true; } #endif @@ -2215,7 +2218,7 @@ static bool menu_driver_displaylist_push_internal( msg_hash_to_str(MENU_ENUM_LABEL_PLAYLISTS_TAB)); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_displaylist_ctl(DISPLAYLIST_MUSIC_HISTORY, info); + menu_displaylist_ctl(DISPLAYLIST_MUSIC_HISTORY, info, settings); return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_TAB))) @@ -2233,7 +2236,7 @@ static bool menu_driver_displaylist_push_internal( msg_hash_to_str(MENU_ENUM_LABEL_PLAYLISTS_TAB)); menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_displaylist_ctl(DISPLAYLIST_VIDEO_HISTORY, info); + menu_displaylist_ctl(DISPLAYLIST_VIDEO_HISTORY, info, settings); return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_IMAGES_TAB))) @@ -2264,7 +2267,7 @@ static bool menu_driver_displaylist_push_internal( info->need_push_no_playlist_entries = true; #endif #endif - menu_displaylist_ctl(DISPLAYLIST_IMAGES_HISTORY, info); + menu_displaylist_ctl(DISPLAYLIST_IMAGES_HISTORY, info, settings); return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_PLAYLISTS_TAB))) @@ -2301,29 +2304,29 @@ static bool menu_driver_displaylist_push_internal( info->path = strdup(dir_playlist); if (menu_displaylist_ctl( - DISPLAYLIST_DATABASE_PLAYLISTS, info)) + DISPLAYLIST_DATABASE_PLAYLISTS, info, settings)) return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_ADD_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, info)) + if (menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, info, settings)) return true; } #if defined(HAVE_LIBRETRODB) else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_EXPLORE_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_EXPLORE, info)) + if (menu_displaylist_ctl(DISPLAYLIST_EXPLORE, info, settings)) return true; } #endif else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_NETPLAY_TAB))) { - if (menu_displaylist_ctl(DISPLAYLIST_NETPLAY_ROOM_LIST, info)) + if (menu_displaylist_ctl(DISPLAYLIST_NETPLAY_ROOM_LIST, info, settings)) return true; } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_HORIZONTAL_MENU))) { - if (menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, info)) + if (menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, info, settings)) return true; } @@ -2333,6 +2336,7 @@ static bool menu_driver_displaylist_push_internal( static bool menu_driver_displaylist_push( struct rarch_state *p_rarch, struct menu_state *menu_st, + settings_t *settings, file_list_t *entry_list, file_list_t *entry_stack) { @@ -2368,7 +2372,7 @@ static bool menu_driver_displaylist_push( if (!info.list) goto error; - if (menu_driver_displaylist_push_internal(label, &info)) + if (menu_driver_displaylist_push_internal(label, &info, settings)) { ret = menu_displaylist_process(&info); goto end; @@ -2562,6 +2566,7 @@ int generic_menu_entry_action( menu_driver_displaylist_push( p_rarch, menu_st, + settings, selection_buf, menu_stack); menu_entries_ctl(MENU_ENTRIES_CTL_UNSET_REFRESH, &refresh); @@ -4327,12 +4332,14 @@ void menu_display_powerstate(gfx_display_ctx_powerstate_t *powerstate) /* Iterate the menu driver for one frame. */ static bool menu_driver_iterate( struct rarch_state *p_rarch, + settings_t *settings, enum menu_action action, retro_time_t current_time) { return (p_rarch->menu_driver_data && generic_menu_iterate( p_rarch, + settings, p_rarch->menu_driver_data, p_rarch->menu_userdata, action, current_time) != -1); @@ -4340,6 +4347,7 @@ static bool menu_driver_iterate( int menu_driver_deferred_push_content_list(file_list_t *list) { + settings_t *settings = config_get_ptr(); struct rarch_state *p_rarch = &rarch_st; struct menu_state *menu_st = &p_rarch->menu_driver_state; menu_handle_t *menu_data = p_rarch->menu_driver_data; @@ -4361,6 +4369,7 @@ int menu_driver_deferred_push_content_list(file_list_t *list) if (!menu_driver_displaylist_push( p_rarch, menu_st, + settings, list, selection_buf)) return -1; @@ -4396,7 +4405,8 @@ static enum menu_driver_id_type menu_driver_set_id(const char *driver_name) return MENU_DRIVER_ID_UNKNOWN; } -static bool generic_menu_init_list(struct menu_state *menu_st) +static bool generic_menu_init_list(struct menu_state *menu_st, + settings_t *settings) { menu_displaylist_info_t info; menu_list_t *menu_list = menu_st->entries.list; @@ -4423,7 +4433,7 @@ static bool generic_menu_init_list(struct menu_state *menu_st) info.list = selection_buf; - if (menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) + if (menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info, settings)) menu_displaylist_process(&info); menu_displaylist_info_free(&info); @@ -4480,7 +4490,7 @@ static bool menu_driver_init_internal( return false; } else - generic_menu_init_list(&p_rarch->menu_driver_state); + generic_menu_init_list(&p_rarch->menu_driver_state, settings); return true; } @@ -37293,7 +37303,8 @@ static enum runloop_state runloop_check_state( menu_st->selection_ptr = 0; menu_st->pending_quick_menu = false; } - else if (!menu_driver_iterate(p_rarch, action, current_time)) + else if (!menu_driver_iterate(p_rarch, settings, + action, current_time)) { if (p_rarch->rarch_error_on_init) {