(Menu) Cleanups - make functions static and remove some unnecessary

wrapper functions
This commit is contained in:
libretroadmin 2023-05-09 04:40:47 +02:00
parent 9df34788e7
commit 08f71a9b1e
4 changed files with 121 additions and 151 deletions

View File

@ -570,6 +570,40 @@ static void action_ok_get_file_browser_start_path(
menu_driver_set_pending_selection(pending_selection);
}
static const char *menu_driver_get_last_start_file_name(void)
{
struct menu_state *menu_st = menu_state_get_ptr();
menu_handle_t *menu = menu_st->driver_data;
settings_t *settings = config_get_ptr();
bool use_last = settings->bools.use_last_start_directory;
/* Return NULL if there is no last 'file name' */
if ( !menu
|| !use_last
|| string_is_empty(menu->last_start_content.file_name))
return NULL;
return menu->last_start_content.file_name;
}
static const char *menu_driver_get_last_start_directory(void)
{
struct menu_state *menu_st = menu_state_get_ptr();
menu_handle_t *menu = menu_st->driver_data;
settings_t *settings = config_get_ptr();
bool use_last = settings->bools.use_last_start_directory;
const char *default_directory = settings->paths.directory_menu_content;
/* Return default directory if there is no
* last directory or it's invalid */
if ( !menu
|| !use_last
|| string_is_empty(menu->last_start_content.directory)
|| !path_is_directory(menu->last_start_content.directory))
return default_directory;
return menu->last_start_content.directory;
}
int generic_action_ok_displaylist_push(const char *path,
const char *new_path,
const char *label, unsigned type, size_t idx, size_t entry_idx,
@ -588,7 +622,7 @@ int generic_action_ok_displaylist_push(const char *path,
menu_handle_t *menu = menu_st->driver_data;
menu_list_t *menu_list = menu_st->entries.list;
settings_t *settings = config_get_ptr();
const char *menu_ident = menu_driver_ident();
const char *menu_ident = (menu_st->driver_ctx && menu_st->driver_ctx->ident) ? menu_st->driver_ctx->ident : NULL;
file_list_t *menu_stack = MENU_LIST_GET(menu_list, 0);
#ifdef HAVE_AUDIOMIXER
bool audio_enable_menu = settings->bools.audio_enable_menu;
@ -1099,9 +1133,9 @@ int generic_action_ok_displaylist_push(const char *path,
settings->bools.use_last_start_directory)
{
info_path = menu_driver_get_last_start_directory();
menu_driver_set_pending_selection(menu_driver_get_last_start_file_name());
menu_driver_set_pending_selection(
menu_driver_get_last_start_file_name());
}
break;
case ACTION_OK_DL_SCAN_DIR_LIST:
filebrowser_set_type(FILEBROWSER_SCAN_DIR);
@ -1416,6 +1450,7 @@ int generic_action_ok_displaylist_push(const char *path,
case ACTION_OK_DL_DATABASE_MANAGER_LIST:
{
char lpl_basename[PATH_MAX_LENGTH];
struct menu_state *menu_st = menu_state_get_ptr();
filebrowser_clear_type();
fill_pathname_join_special(tmp,
settings->paths.path_content_database,
@ -1423,7 +1458,10 @@ int generic_action_ok_displaylist_push(const char *path,
fill_pathname_base(lpl_basename, path, sizeof(lpl_basename));
path_remove_extension(lpl_basename);
menu_driver_set_thumbnail_system(lpl_basename, sizeof(lpl_basename));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->set_thumbnail_system)
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, lpl_basename, sizeof(lpl_basename));
info.directory_ptr = idx;
info_path = tmp;
@ -7857,18 +7895,19 @@ static int action_ok_pl_entry_content_thumbnails(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
char system[PATH_MAX_LENGTH];
playlist_t *playlist = playlist_get_cached();
menu_handle_t *menu = menu_state_get_ptr()->driver_data;
struct menu_state *menu_st = menu_state_get_ptr();
playlist_t *playlist = playlist_get_cached();
menu_handle_t *menu = menu_st->driver_data;
system[0] = '\0';
if (!playlist)
if (!playlist || !menu)
return -1;
if (!menu)
return -1;
menu_driver_get_thumbnail_system(system, sizeof(system));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->get_thumbnail_system)
menu_st->driver_ctx->get_thumbnail_system(
menu_st->userdata, system, sizeof(system));
task_push_pl_entry_thumbnail_download(system,
playlist, menu->rpl_entry_selection_ptr,

View File

@ -2182,6 +2182,7 @@ static int menu_displaylist_parse_playlist(file_list_t *info_list,
char label_spacer[PL_LABEL_SPACER_MAXLEN];
size_t list_size = playlist_size(playlist);
bool show_inline_core_name = false;
struct menu_state *menu_st = menu_state_get_ptr();
const char *menu_driver = menu_driver_ident();
menu_search_terms_t *search_terms = menu_entries_search_get_terms();
unsigned pl_show_inline_core_name = settings->uints.playlist_show_inline_core_name;
@ -2211,32 +2212,37 @@ static int menu_displaylist_parse_playlist(file_list_t *info_list,
strlcpy(label_spacer, PL_LABEL_SPACER_DEFAULT, sizeof(label_spacer));
}
/* Inform menu driver of current system name
* > Note: history, favorites and images_history
* require special treatment here, since info_path
* is nonsensical in these cases (and we *do* need
* to call set_thumbnail_system() in these cases,
* since all three playlist types have thumbnail
* support)
* EDIT: For correct operation of the quick menu
* 'download thumbnails' option, we must also extend
* this to music_history and video_history */
if (
if (menu_st->driver_ctx && menu_st->driver_ctx->set_thumbnail_system)
{
/* Inform menu driver of current system name
* > Note: history, favorites and images_history
* require special treatment here, since info_path
* is nonsensical in these cases (and we *do* need
* to call set_thumbnail_system() in these cases,
* since all three playlist types have thumbnail
* support)
* EDIT: For correct operation of the quick menu
* 'download thumbnails' option, we must also extend
* this to music_history and video_history */
if (
string_is_equal(path_playlist, "history")
|| string_is_equal(path_playlist, "favorites")
|| string_ends_with_size(path_playlist, "_history",
strlen(path_playlist), STRLEN_CONST("_history")))
{
char system_name[15];
strlcpy(system_name, path_playlist, sizeof(system_name));
menu_driver_set_thumbnail_system(system_name, sizeof(system_name));
}
else if (!string_is_empty(info_path))
{
char lpl_basename[256];
fill_pathname_base(lpl_basename, info_path, sizeof(lpl_basename));
path_remove_extension(lpl_basename);
menu_driver_set_thumbnail_system(lpl_basename, sizeof(lpl_basename));
|| string_is_equal(path_playlist, "favorites")
|| string_ends_with_size(path_playlist, "_history",
strlen(path_playlist), STRLEN_CONST("_history")))
{
char system_name[15];
strlcpy(system_name, path_playlist, sizeof(system_name));
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, system_name, sizeof(system_name));
}
else if (!string_is_empty(info_path))
{
char lpl_basename[256];
fill_pathname_base(lpl_basename, info_path, sizeof(lpl_basename));
path_remove_extension(lpl_basename);
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, lpl_basename, sizeof(lpl_basename));
}
}
/* Preallocate the file list */
@ -2483,6 +2489,7 @@ static int menu_displaylist_parse_database_entry(menu_handle_t *menu,
playlist_config_t playlist_config;
playlist_t *playlist = NULL;
database_info_list_t *db_info = NULL;
struct menu_state *menu_st = menu_state_get_ptr();
bool show_advanced_settings = settings->bools.menu_show_advanced_settings;
const char *dir_playlist = settings->paths.directory_playlist;
@ -2505,7 +2512,10 @@ static int menu_displaylist_parse_database_entry(menu_handle_t *menu,
sizeof(path_base));
path_remove_extension(path_base);
menu_driver_set_thumbnail_system(path_base, sizeof(path_base));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->set_thumbnail_system)
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, path_base, sizeof(path_base));
strlcat(path_base, ".lpl", sizeof(path_base));
@ -3348,6 +3358,7 @@ static int menu_displaylist_parse_horizontal_list(
menu_displaylist_ctl(DISPLAYLIST_EXPLORE, info, settings);
else
{
struct menu_state *menu_st = menu_state_get_ptr();
playlist_t *playlist = NULL;
if (!string_is_empty(item->path))
{
@ -3366,7 +3377,10 @@ static int menu_displaylist_parse_horizontal_list(
* is loaded/cached */
fill_pathname_base(lpl_basename, item->path, sizeof(lpl_basename));
path_remove_extension(lpl_basename);
menu_driver_set_thumbnail_system(lpl_basename, sizeof(lpl_basename));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->set_thumbnail_system)
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, lpl_basename, sizeof(lpl_basename));
}
if ((playlist = playlist_get_cached()))
@ -3832,9 +3846,13 @@ static int menu_displaylist_parse_horizontal_content_actions(
case PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV:
{
char system[PATH_MAX_LENGTH];
struct menu_state *menu_st = menu_state_get_ptr();
system[0] = '\0';
menu_driver_get_thumbnail_system(system, sizeof(system));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->get_thumbnail_system)
menu_st->driver_ctx->get_thumbnail_system(
menu_st->userdata, system, sizeof(system));
if (!string_is_empty(system))
remove_entry_enabled =
@ -3905,12 +3923,15 @@ static int menu_displaylist_parse_horizontal_content_actions(
if (download_enabled)
{
char system[PATH_MAX_LENGTH];
struct menu_state *menu_st = menu_state_get_ptr();
system[0] = '\0';
/* Only show 'Download Thumbnails' on supported playlists */
download_enabled = false;
menu_driver_get_thumbnail_system(system, sizeof(system));
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->get_thumbnail_system)
menu_st->driver_ctx->get_thumbnail_system(
menu_st->userdata, system, sizeof(system));
if (!string_is_empty(system))
download_enabled = !string_ends_with_size(
@ -8753,14 +8774,16 @@ unsigned menu_displaylist_build_list(
break;
case DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST:
{
bool kiosk_mode_enable = settings->bools.kiosk_mode_enable;
bool kiosk_mode_enable = settings->bools.kiosk_mode_enable;
#if defined(HAVE_QT) || defined(HAVE_COCOA)
bool desktop_menu_enable = settings->bools.desktop_menu_enable;
bool desktop_menu_enable = settings->bools.desktop_menu_enable;
#endif
bool menu_screensaver_supported = menu_driver_screensaver_supported();
struct menu_state *menu_st = menu_state_get_ptr();
bool menu_screensaver_supported = ((menu_st->flags & MENU_ST_FLAG_SCREENSAVER_SUPPORTED) > 0);
#if defined(HAVE_MATERIALUI) || defined(HAVE_XMB) || defined(HAVE_OZONE)
enum menu_screensaver_effect menu_screensaver_animation =
(enum menu_screensaver_effect)settings->uints.menu_screensaver_animation;
(enum menu_screensaver_effect)
settings->uints.menu_screensaver_animation;
#endif
menu_displaylist_build_info_selective_t build_list[] = {
@ -11110,15 +11133,15 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
menu_displaylist_info_t *info,
settings_t *settings)
{
menu_ctx_displaylist_t disp_list;
struct menu_state *menu_st = menu_state_get_ptr();
static bool core_selected = false;
bool push_list = (menu_st->driver_ctx->list_push
&& menu_st->driver_ctx->list_push(menu_st->driver_data,
menu_st->userdata, info, type) == 0);
disp_list.info = info;
disp_list.type = type;
if (!menu_driver_push_list(&disp_list))
if (!push_list)
{
menu_handle_t *menu = menu_state_get_ptr()->driver_data;
menu_handle_t *menu = menu_st->driver_data;
bool load_content = true;
bool use_filebrowser = false;
unsigned count = 0;

View File

@ -4130,12 +4130,6 @@ int menu_driver_deferred_push_content_list(file_list_t *list)
return 0;
}
bool menu_driver_screensaver_supported(void)
{
struct menu_state *menu_st = &menu_driver_state;
return ((menu_st->flags & MENU_ST_FLAG_SCREENSAVER_SUPPORTED) > 0);
}
retro_time_t menu_driver_get_current_time(void)
{
struct menu_state *menu_st = &menu_driver_state;
@ -4210,39 +4204,6 @@ end:
menu_input_dialog_end();
}
const char *menu_driver_get_last_start_directory(void)
{
menu_handle_t *menu = menu_driver_state.driver_data;
settings_t *settings = config_get_ptr();
bool use_last = settings->bools.use_last_start_directory;
const char *default_directory = settings->paths.directory_menu_content;
/* Return default directory if there is no
* last directory or it's invalid */
if ( !menu
|| !use_last
|| string_is_empty(menu->last_start_content.directory)
|| !path_is_directory(menu->last_start_content.directory))
return default_directory;
return menu->last_start_content.directory;
}
const char *menu_driver_get_last_start_file_name(void)
{
menu_handle_t *menu = menu_driver_state.driver_data;
settings_t *settings = config_get_ptr();
bool use_last = settings->bools.use_last_start_directory;
/* Return NULL if there is no last 'file name' */
if (!menu ||
!use_last ||
string_is_empty(menu->last_start_content.file_name))
return NULL;
return menu->last_start_content.file_name;
}
void menu_driver_set_last_start_content(const char *start_content_path)
{
char archive_path[PATH_MAX_LENGTH];
@ -4566,7 +4527,7 @@ bool menu_entries_ctl(enum menu_entries_ctl_state state, void *data)
{
size_t *idx = (size_t*)data;
if (!idx)
return 0;
return false;
*idx = menu_st->entries.begin;
}
@ -4676,45 +4637,6 @@ bool menu_driver_list_cache(menu_ctx_list_t *list)
return true;
}
bool menu_driver_push_list(menu_ctx_displaylist_t *disp_list)
{
struct menu_state *menu_st = &menu_driver_state;
if (menu_st->driver_ctx->list_push)
if (menu_st->driver_ctx->list_push(
menu_st->driver_data,
menu_st->userdata,
disp_list->info, disp_list->type) == 0)
return true;
return false;
}
void menu_driver_set_thumbnail_system(char *s, size_t len)
{
struct menu_state *menu_st = &menu_driver_state;
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->set_thumbnail_system)
menu_st->driver_ctx->set_thumbnail_system(
menu_st->userdata, s, len);
}
void menu_driver_get_thumbnail_system(char *s, size_t len)
{
struct menu_state *menu_st = &menu_driver_state;
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->get_thumbnail_system)
menu_st->driver_ctx->get_thumbnail_system(
menu_st->userdata, s, len);
}
void menu_driver_set_thumbnail_content(char *s, size_t len)
{
struct menu_state *menu_st = &menu_driver_state;
if ( menu_st->driver_ctx
&& menu_st->driver_ctx->set_thumbnail_content)
menu_st->driver_ctx->set_thumbnail_content(
menu_st->userdata, s);
}
/* Teardown function for the menu driver. */
void menu_driver_destroy(
struct menu_state *menu_st)
@ -4954,12 +4876,11 @@ void menu_entries_get_core_title(char *s, size_t len)
}
static bool menu_driver_init_internal(
struct menu_state *menu_st,
gfx_display_t *p_disp,
settings_t *settings,
bool video_is_threaded)
{
struct menu_state *menu_st = &menu_driver_state;;
if (menu_st->driver_ctx)
{
const char *ident = menu_st->driver_ctx->ident;
@ -4968,9 +4889,9 @@ static bool menu_driver_init_internal(
* parameters (and some menu drivers fetch the
* current pixel/dpi scale during 'menu_driver_ctx->init()') */
if (ident)
p_disp->menu_driver_id = menu_driver_set_id(ident);
p_disp->menu_driver_id = menu_driver_set_id(ident);
else
p_disp->menu_driver_id = MENU_DRIVER_ID_UNKNOWN;
p_disp->menu_driver_id = MENU_DRIVER_ID_UNKNOWN;
if (menu_st->driver_ctx->init)
{
@ -5027,10 +4948,9 @@ bool menu_driver_init(bool video_is_threaded)
command_event(CMD_EVENT_CORE_INFO_INIT, NULL);
command_event(CMD_EVENT_LOAD_CORE_PERSIST, NULL);
if ( menu_st->driver_data ||
menu_driver_init_internal(
p_disp,
settings,
if ( menu_st->driver_data
|| menu_driver_init_internal(
menu_st, p_disp, settings,
video_is_threaded))
{
if (menu_st->driver_ctx && menu_st->driver_ctx->context_reset)
@ -5256,7 +5176,7 @@ static bool menu_input_key_bind_iterate(
/* Inhibits input for 2 frames
* > Required, since input is ignored for 1 frame
* after certain events - e.g. closing the OSK */
menu_st->input_driver_flushing_input = 2;
menu_st->input_driver_flushing_input = 2;
/* We won't be getting any key events, so just cancel early. */
if (timed_out)

View File

@ -631,24 +631,14 @@ int menu_driver_deferred_push_content_list(file_list_t *list);
bool menu_driver_list_cache(menu_ctx_list_t *list);
bool menu_driver_push_list(menu_ctx_displaylist_t *disp_list);
bool menu_driver_init(bool video_is_threaded);
void menu_driver_set_thumbnail_system(char *s, size_t len);
void menu_driver_get_thumbnail_system(char *s, size_t len);
void menu_driver_set_thumbnail_content(char *s, size_t len);
bool menu_driver_list_get_selection(menu_ctx_list_t *list);
bool menu_driver_list_get_entry(menu_ctx_list_t *list);
bool menu_driver_list_get_size(menu_ctx_list_t *list);
bool menu_driver_screensaver_supported(void);
retro_time_t menu_driver_get_current_time(void);
void menu_display_timedate(gfx_display_ctx_datetime_t *datetime);
@ -723,8 +713,6 @@ void menu_driver_get_last_shader_pass_path(
const char **directory, const char **file_name);
#endif
const char *menu_driver_get_last_start_directory(void);
const char *menu_driver_get_last_start_file_name(void);
void menu_driver_set_last_start_content(const char *start_content_path);
void menu_driver_set_pending_selection(const char *pending_selection);