Cut down on config_get_ptr calls in menu_displaylist_ctl

This commit is contained in:
twinaphex 2021-03-21 16:36:36 +01:00
parent d8d034bacb
commit 8b2eb8ed37
12 changed files with 112 additions and 153 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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