From 8c768b0207f9e40ba022f78c873fec41beff27fb Mon Sep 17 00:00:00 2001 From: Themaister Date: Sun, 6 Oct 2013 12:31:04 +0200 Subject: [PATCH] Move core_info stuff to menu_common. --- frontend/menu/menu_common.c | 34 ++++++++++++++++++++++++++++++++++ frontend/menu/menu_common.h | 3 +++ frontend/menu/rgui.c | 37 ++----------------------------------- 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index aedde6103c..909cc7da52 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -947,3 +947,37 @@ void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t ke (void)key_modifiers; } +void menu_resolve_libretro_names(rgui_list_t *list, const char *dir) +{ + for (size_t i = 0; i < list->size; i++) + { + const char *path; + unsigned type = 0; + rgui_list_get_at_offset(list, i, &path, &type); + if (type != RGUI_FILE_PLAIN) + continue; + + char core_path[PATH_MAX]; + fill_pathname_join(core_path, dir, path, sizeof(core_path)); + + char display_name[256]; + if (rgui->core_info && + core_info_list_get_display_name(rgui->core_info, + core_path, display_name, sizeof(display_name))) + rgui_list_set_alt_at_offset(list, i, display_name); + } +} + +void menu_resolve_supported_cores(rgui_handle_t *rgui) +{ + const core_info_t *info = NULL; + size_t cores = 0; + core_info_list_get_supported_cores(rgui->core_info, rgui->deferred_path, &info, &cores); + for (size_t i = 0; i < cores; i++) + { + rgui_list_push(rgui->selection_buf, info[i].path, RGUI_FILE_PLAIN, 0); + rgui_list_set_alt_at_offset(rgui->selection_buf, i, info[i].display_name); + } +} + + diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index 42b5a3ae8c..e7a683bc5e 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -351,6 +351,9 @@ void shader_manager_set_preset(struct gfx_shader *shader, void menu_ticker_line(char *buf, size_t len, unsigned tick, const char *str, bool selected); +void menu_resolve_libretro_names(rgui_list_t *list, const char *dir); +void menu_resolve_supported_cores(rgui_handle_t *rgui); + void load_menu_game_prepare(void); bool load_menu_game(void); void load_menu_game_history(unsigned game_index); diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index 29855ff54b..d5d9dcc5ef 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -201,39 +201,6 @@ static int rgui_core_setting_toggle(unsigned setting, rgui_action_t action) return 0; } -static void rgui_resolve_libretro_names(rgui_list_t *list, const char *dir) -{ - for (size_t i = 0; i < list->size; i++) - { - const char *path; - unsigned type = 0; - rgui_list_get_at_offset(list, i, &path, &type); - if (type != RGUI_FILE_PLAIN) - continue; - - char core_path[PATH_MAX]; - fill_pathname_join(core_path, dir, path, sizeof(core_path)); - - char display_name[256]; - if (rgui->core_info && - core_info_list_get_display_name(rgui->core_info, - core_path, display_name, sizeof(display_name))) - rgui_list_set_alt_at_offset(list, i, display_name); - } -} - -static void rgui_resolve_supported_cores(rgui_handle_t *rgui) -{ - const core_info_t *info = NULL; - size_t cores = 0; - core_info_list_get_supported_cores(rgui->core_info, rgui->deferred_path, &info, &cores); - for (size_t i = 0; i < cores; i++) - { - rgui_list_push(rgui->selection_buf, info[i].path, RGUI_FILE_PLAIN, 0); - rgui_list_set_alt_at_offset(rgui->selection_buf, i, info[i].display_name); - } -} - static int rgui_settings_toggle_setting(rgui_handle_t *rgui, unsigned setting, rgui_action_t action, unsigned menu_type) { #ifdef HAVE_SHADER_MANAGER @@ -1495,9 +1462,9 @@ static int rgui_iterate(void *data, unsigned action) rgui_directory_parse(rgui, dir, menu_type, rgui->selection_buf); if (menu_type == RGUI_SETTINGS_CORE) - rgui_resolve_libretro_names(rgui->selection_buf, dir); + menu_resolve_libretro_names(rgui->selection_buf, dir); else if (menu_type == RGUI_SETTINGS_DEFERRED_CORE) - rgui_resolve_supported_cores(rgui); + menu_resolve_supported_cores(rgui); // Before a refresh, we could have deleted a file on disk, causing // selection_ptr to suddendly be out of range. Ensure it doesn't overflow.