From 80ac9f511cf6e0666193e49f155024f0e12d9ef8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 16:20:43 +0100 Subject: [PATCH 01/36] Combine Load Content and Load Content (Detect Core) --- intl/msg_hash_chs.c | 2 -- intl/msg_hash_de.c | 18 -------------- intl/msg_hash_de.h | 4 +-- intl/msg_hash_eo.h | 4 +-- intl/msg_hash_es.c | 4 --- intl/msg_hash_fr.h | 4 +-- intl/msg_hash_it.c | 2 -- intl/msg_hash_ja.h | 2 -- intl/msg_hash_lbl.h | 2 -- intl/msg_hash_nl.h | 4 +-- intl/msg_hash_pl.c | 2 -- intl/msg_hash_pt.c | 22 ----------------- intl/msg_hash_ru.h | 4 +-- intl/msg_hash_us.h | 4 +-- intl/msg_hash_vn.c | 2 -- menu/cbs/menu_cbs_deferred_push.c | 9 ++++++- menu/cbs/menu_cbs_get_value.c | 2 +- menu/cbs/menu_cbs_ok.c | 5 ++-- menu/cbs/menu_cbs_title.c | 2 +- menu/drivers/materialui.c | 14 ++++------- menu/drivers/xmb.c | 2 ++ menu/menu_displaylist.c | 41 ++++++++++++++++++++++--------- msg_hash.h | 4 +-- 23 files changed, 58 insertions(+), 101 deletions(-) diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c index b709742a9e..3071107e6b 100644 --- a/intl/msg_hash_chs.c +++ b/intl/msg_hash_chs.c @@ -2452,8 +2452,6 @@ const char *msg_hash_to_str_chs(enum msg_hash_enums msg) return "线性"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "使用核心加载压缩包"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "选择文件"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "加载最近的游戏内容"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_de.c b/intl/msg_hash_de.c index f733340ef1..7d5127f881 100644 --- a/intl/msg_hash_de.c +++ b/intl/msg_hash_de.c @@ -103,24 +103,6 @@ int menu_hash_get_help_de_enum(enum msg_hash_enums msg, char *s, size_t len) break; } break; - case MENU_ENUM_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Lade Content. \n" - "Suche nach Content. \n" - " \n" - "Um Content zu laden benötigst du den passenden \n" - "Libretro-Core und die Content-Datei. \n" - " \n" - "Um einzustellen, welcher Ordner standardmäßig \n" - "geöffnet wird, um nach Content zu suchen, solltest \n" - "du das Content-Verzeichnis setzen. Wenn es nicht \n" - "gesetzt ist, wird es im Root-Verzeichen starten. \n" - " \n" - "Der Browser wird nur Dateierweiterungen des \n" - "zuletzt geladenen Cores zeigen und diesen Core \n" - "nutzen, wenn Content geladen wird." - ); - break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: snprintf(s, len, "Lade Content aus dem Verlauf. \n" diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 09fb655303..0f56a79ab8 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -147,7 +147,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Von der Playlist löschen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Lade Content (Core erkennen)") /* FIXME */ + "Lade Content") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -280,8 +280,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Lade Archiv") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Lade Content") /* FIXME */ MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Lade Content (Verlauf)") /* FIXME/UPDATE */ MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 9fd9252a77..7d59beaea6 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 6b9d709e88..597ec252f8 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -1372,8 +1372,6 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Error:"; case MSG_FAILED_TO_APPLY_SHADER: return "Error al aplicar shader."; - case MSG_FAILED_TO_LOAD_CONTENT: - return "Error al cargar el contenido"; case MSG_FAILED_TO_LOAD_MOVIE_FILE: return "Error al cargar el archivo de película"; case MSG_FAILED_TO_LOAD_OVERLAY: @@ -1794,8 +1792,6 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Nivel de registro del núcleo"; case MENU_ENUM_LABEL_VALUE_LINEAR: return "Lineal"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Seleccionar archivo"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Cargar archivos recientes"; case MENU_ENUM_LABEL_VALUE_LOAD_STATE: diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 8b27411d2f..72ae42d881 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -481,7 +481,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Via les fichiers (détecter le coeur)") + "Via les fichiers") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -812,8 +812,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linéaire") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Charger l'archive") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Via les fichiers") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Récemment ouvert") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index c2159671d6..ea90c6ac77 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -1729,8 +1729,6 @@ const char *msg_hash_to_str_it(enum msg_hash_enums msg) return "Nessun oggetto."; case MENU_ENUM_LABEL_VALUE_CORE_LIST: return "Carica Core"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Seleziona contenuto"; case MENU_ENUM_LABEL_VALUE_CLOSE_CONTENT: return "Chiudi"; case MENU_ENUM_LABEL_VALUE_MANAGEMENT: diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index e583fe216d..1661a6df37 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -834,8 +834,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "コアでアーカイブをロード") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "ファイル選択") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "最近のものをロード") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 77618556b5..b3127be120 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -517,8 +517,6 @@ MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE, "load_archive") MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE_DETECT_CORE, "load_archive_detect_core") -MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT, - "load_content_default") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY, "load_recent") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 9229711edc..121122af4d 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Verwijderen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Selecteer Bestand En Detecteer Core") + "Selecteer Bestand") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Laad Archief Met Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Selecteer Bestand") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Recentelijk gebruikt") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index c32a710bd4..60da28dd16 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -312,8 +312,6 @@ const char *msg_hash_to_str_pl(enum msg_hash_enums msg) return "Liniowe"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Wczytaj archiwum"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Wybierz plik"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Wczytaj z ostatnio używanych"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index dcf67ab273..d3d895f85f 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -90,26 +90,6 @@ int menu_hash_get_help_pt_enum(enum msg_hash_enums msg, char *s, size_t len) break; } break; - case MENU_ENUM_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Carregar Conteúdo. \n" - "Busca conteúdo. \n" - " \n" - "Para carregar conteúdo, você precisa de \n" - "um core libretro para usar, e um arquivo \n" - "de conteúdo. \n" - " \n" - "Para controlar onde o menu começa a \n" - "buscar conteúdo, defina o Diretório \n" - "de Navegação. Se não estiver definido, \n" - "o Retroarch começará no diretório raiz. \n" - " \n" - "O navegador vai filtrar pelas extensões \n" - "do mais recente core definido em 'Core', \n" - "e o usará quando o conteúdo estiver \n" - "carregado." - ); - break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: snprintf(s, len, "Carregando conteúdo do histórico. \n" @@ -1246,8 +1226,6 @@ const char *msg_hash_to_str_pt(enum msg_hash_enums msg) return "Linear"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Carregar Arquivo"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Selecionar Arquivo"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Selecionar do Histórico"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 27bdd8a455..a98010cde3 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index bc7e9dd724..f5ec34fa09 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -489,7 +489,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -826,8 +826,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c index 8766639869..12daf54ef0 100644 --- a/intl/msg_hash_vn.c +++ b/intl/msg_hash_vn.c @@ -2497,8 +2497,6 @@ const char *msg_hash_to_str_vn(enum msg_hash_enums msg) return "Linear"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Tải Archive With Core"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Select File"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Tải Recent"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 299108bfec..e7e397d4f1 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -533,12 +533,13 @@ static int general_push(menu_displaylist_info_t *info, strlcpy(info->exts, list->all_ext, sizeof(info->exts)); else if (system_menu->valid_extensions) { - if (*system_menu->valid_extensions) + if (!string_is_empty(system_menu->valid_extensions)) strlcpy(info->exts, system_menu->valid_extensions, sizeof(info->exts)); } else strlcpy(info->exts, system->valid_extensions, sizeof(info->exts)); + break; case PUSH_ARCHIVE_OPEN: if (system_menu->valid_extensions) @@ -569,6 +570,12 @@ static int general_push(menu_displaylist_info_t *info, case PUSH_DETECT_CORE_LIST: if (!string_is_empty(list->all_ext)) strlcpy(info->exts, list->all_ext, sizeof(info->exts)); + else if (system_menu->valid_extensions) + { + if (!string_is_empty(system_menu->valid_extensions)) + strlcpy(info->exts, system_menu->valid_extensions, + sizeof(info->exts)); + } break; } diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index eb56c8eb51..361d88808b 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1704,7 +1704,6 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: case MENU_ENUM_LABEL_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_LOAD_CONTENT: case MENU_ENUM_LABEL_CORE_OPTIONS: case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS: case MENU_ENUM_LABEL_SHADER_OPTIONS: @@ -1778,6 +1777,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_type( menu_action_setting_disp_set_label_core_option_create); break; case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_menu_file_core); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 314598f6fb..fa27e2ffaa 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -3789,7 +3789,6 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, BIND_ACTION_OK(cbs, action_ok_scan_directory_list); break; case MENU_ENUM_LABEL_SCAN_FILE: - case MENU_ENUM_LABEL_LOAD_CONTENT: case MENU_ENUM_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; @@ -3994,7 +3993,6 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, break; case MENU_LABEL_SCAN_FILE: case MENU_LABEL_SCAN_DIRECTORY: - case MENU_LABEL_LOAD_CONTENT: case MENU_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; @@ -4306,6 +4304,9 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, /* TODO/FIXME - handle scan case */ BIND_ACTION_OK(cbs, action_ok_file_load_imageviewer); break; + case FILE_TYPE_DIRECT_LOAD: + BIND_ACTION_OK(cbs, action_ok_file_load); + break; case MENU_SETTINGS: case MENU_SETTING_GROUP: case MENU_SETTING_SUBGROUP: diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 79f0d22f8d..67bc323dbb 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -229,7 +229,7 @@ default_title_generic_macro(action_get_title_list_rdb_entry_database_info,MENU_E static int action_get_title_default(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { - snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), path); + snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), path); return 0; } diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 447d294615..888b7e50b7 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -664,6 +664,7 @@ static void mui_render_label_value(mui_handle_t *mui, case FILE_TYPE_COMPRESSED: case FILE_TYPE_MORE: case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: case FILE_TYPE_RDB: case FILE_TYPE_CURSOR: case FILE_TYPE_PLAIN: @@ -1673,21 +1674,16 @@ static int mui_list_push(void *data, void *userdata, { case DISPLAYLIST_LOAD_CONTENT_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), - msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT), - MENU_ENUM_LABEL_LOAD_CONTENT, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + MENU_ENUM_LABEL_DETECT_CORE_LIST, MENU_SETTING_ACTION, 0, 0); core_info_get_list(&list); if (core_info_list_num_info_files(list)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST), msg_hash_to_str(MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST), diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7c12d1bc2e..d519e75a0d 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1908,6 +1908,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case FILE_TYPE_MOVIE: return xmb->textures.list[XMB_TEXTURE_MOVIE]; case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: return xmb->textures.list[XMB_TEXTURE_CORE]; case FILE_TYPE_RDB: return xmb->textures.list[XMB_TEXTURE_RDB]; @@ -2126,6 +2127,7 @@ static void xmb_draw_items(xmb_handle_t *xmb, case FILE_TYPE_COMPRESSED: case FILE_TYPE_MORE: case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: case FILE_TYPE_RDB: case FILE_TYPE_CURSOR: case FILE_TYPE_PLAIN: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 1868c1eae3..55eb4f58fb 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5536,19 +5536,13 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case DISPLAYLIST_LOAD_CONTENT_LIST: menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), - msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT), - MENU_ENUM_LABEL_LOAD_CONTENT, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + MENU_ENUM_LABEL_DETECT_CORE_LIST, MENU_SETTING_ACTION, 0, 0); if (core_info_list_num_info_files(list)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, msg_hash_to_str( MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST), @@ -5906,7 +5900,30 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void*)menu->deferred_path, &cores_names_len, &cores_names_size); - if (cores_names_size == 0) + if (!path_is_empty(RARCH_PATH_CORE)) + { + const char *core_name = NULL; + struct retro_system_info *system = NULL; + + menu_entries_append_enum(info->list, + path_get(RARCH_PATH_CORE), + path_get(RARCH_PATH_CORE), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_DIRECT_LOAD, + 0, + 0); + + menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, + &system); + + if (system) + core_name = system->library_name; + + if (!string_is_empty(core_name)) + menu_entries_set_alt_at_offset(info->list, 0, + core_name); + } + else if (cores_names_size == 0) { menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), @@ -5915,7 +5932,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) 0, 0, 0); info->download_core = true; } - else + + if (cores_names_size != 0) { struct string_list *cores_paths = string_list_new_special(STRING_LIST_SUPPORTED_CORES_PATHS, @@ -5947,6 +5965,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } string_list_free(cores_names); + } break; case DISPLAYLIST_CORE_INFO: diff --git a/msg_hash.h b/msg_hash.h index 777a62f85d..4e3b79348d 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -125,6 +125,8 @@ enum msg_file_type FILE_TYPE_ISO, FILE_TYPE_LUTRO, + FILE_TYPE_DIRECT_LOAD, + FILE_TYPE_LAST }; @@ -1169,7 +1171,6 @@ enum msg_hash_enums MENU_LABEL(DETECT_CORE_LIST_OK), MENU_LABEL(DETECT_CORE_LIST), MENU_LABEL(START_CORE), - MENU_LABEL(LOAD_CONTENT), MENU_LABEL(CORE_UPDATER_LIST), MENU_LABEL(CORE_UPDATER_AUTO_EXTRACT_ARCHIVE), MENU_LABEL(CORE_UPDATER_BUILDBOT_URL), @@ -1749,7 +1750,6 @@ enum msg_hash_enums #define MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd44d395cU /* Main menu */ -#define MENU_LABEL_LOAD_CONTENT 0x828943c3U #define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU #define MENU_LABEL_LOAD_CONTENT_HISTORY 0xfe1d79e5U #define MENU_LABEL_ADD_CONTENT_LIST 0x046f4668U From b21b237cdb5e668855d424e5629dec2010f68e5a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 17:27:47 +0100 Subject: [PATCH 02/36] Reset RARCH_PATH_CORE when we select 'Unload Core' --- command.c | 1 + 1 file changed, 1 insertion(+) diff --git a/command.c b/command.c index 7f2193bcaf..6eefad0f02 100644 --- a/command.c +++ b/command.c @@ -1920,6 +1920,7 @@ bool command_event(enum event_command cmd, void *data) #ifdef HAVE_MENU menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_DEINIT, NULL); #endif + path_clear(RARCH_PATH_CORE); #else core_unload_game(); core_unload(); From 508657c410e9d7b96ff6d04d35f3c30288190146 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 18:53:55 +0100 Subject: [PATCH 03/36] List the current core now --- menu/menu_displaylist.c | 74 +++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 55eb4f58fb..3d4ba8fb20 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5900,37 +5900,43 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void*)menu->deferred_path, &cores_names_len, &cores_names_size); - if (!path_is_empty(RARCH_PATH_CORE)) + if (cores_names_size == 0) { - const char *core_name = NULL; - struct retro_system_info *system = NULL; + if (!path_is_empty(RARCH_PATH_CORE)) + { - menu_entries_append_enum(info->list, - path_get(RARCH_PATH_CORE), - path_get(RARCH_PATH_CORE), - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, - FILE_TYPE_DIRECT_LOAD, - 0, - 0); + menu_entries_append_enum(info->list, + path_get(RARCH_PATH_CORE), + path_get(RARCH_PATH_CORE), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_DIRECT_LOAD, + 0, + 0); - menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, - &system); + { + const char *core_name = NULL; + struct retro_system_info *system = NULL; - if (system) - core_name = system->library_name; + menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, + &system); - if (!string_is_empty(core_name)) - menu_entries_set_alt_at_offset(info->list, 0, - core_name); - } - else if (cores_names_size == 0) - { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), - msg_hash_to_str(MENU_ENUM_LABEL_NO_CORES_AVAILABLE), - MENU_ENUM_LABEL_NO_CORES_AVAILABLE, - 0, 0, 0); - info->download_core = true; + if (system) + core_name = system->library_name; + + if (!string_is_empty(core_name)) + menu_entries_set_alt_at_offset(info->list, 0, + core_name); + } + } + else + { + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), + msg_hash_to_str(MENU_ENUM_LABEL_NO_CORES_AVAILABLE), + MENU_ENUM_LABEL_NO_CORES_AVAILABLE, + 0, 0, 0); + info->download_core = true; + } } if (cores_names_size != 0) @@ -5957,8 +5963,20 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; } - menu_entries_set_alt_at_offset(info->list, i, - cores_names->elems[i].data); + if ( !path_is_empty(RARCH_PATH_CORE) && + string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))) + { + char newstring[1024]; + + newstring[0] = '\0'; + snprintf(newstring, sizeof(newstring), "%s (Current core)", cores_names->elems[i].data); + + menu_entries_set_alt_at_offset(info->list, i, + newstring); + } + else + menu_entries_set_alt_at_offset(info->list, i, + cores_names->elems[i].data); } string_list_free(cores_paths); From 3b63a8a41e8b474932264ccf430c764ff75e7b2c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 19:22:46 +0100 Subject: [PATCH 04/36] Show the current core at the top --- menu/menu_displaylist.c | 65 ++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3d4ba8fb20..e16a1ed3bd 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -76,6 +76,9 @@ #include "../wifi/wifi_driver.h" #include "../tasks/tasks_internal.h" +static char new_path_entry[4096] = {0}; +static char new_entry[4096] = {0}; + #ifdef HAVE_NETWORKING static void print_buf_lines(file_list_t *list, char *buf, const char *label, int buf_size, @@ -3874,6 +3877,20 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) } #endif + if (!string_is_empty(new_entry)) + { + menu_entries_prepend(info->list, + new_path_entry, + new_entry, + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_CORE, 0, 0); + menu_entries_set_alt_at_offset(info->list, 0, + new_entry); + + new_path_entry[0] = '\0'; + new_entry[0] = '\0'; + } + if (info->need_refresh) menu_entries_ctl(MENU_ENTRIES_CTL_REFRESH, info->list); @@ -5941,6 +5958,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) if (cores_names_size != 0) { + unsigned j = 0; struct string_list *cores_paths = string_list_new_special(STRING_LIST_SUPPORTED_CORES_PATHS, (void*)menu->deferred_path, @@ -5948,35 +5966,34 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) for (i = 0; i < cores_names_size; i++) { - switch (type) - { - case DISPLAYLIST_CORES_COLLECTION_SUPPORTED: - menu_entries_append_enum(info->list, cores_paths->elems[i].data, "", - MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, - FILE_TYPE_CORE, 0, 0); - break; - default: - menu_entries_append_enum(info->list, cores_paths->elems[i].data, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK), - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, - FILE_TYPE_CORE, 0, 0); - break; - } - if ( !path_is_empty(RARCH_PATH_CORE) && - string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))) + string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE)) + && type != DISPLAYLIST_CORES_COLLECTION_SUPPORTED) { - char newstring[1024]; - - newstring[0] = '\0'; - snprintf(newstring, sizeof(newstring), "%s (Current core)", cores_names->elems[i].data); - - menu_entries_set_alt_at_offset(info->list, i, - newstring); + strlcpy(new_path_entry, cores_paths->elems[i].data, sizeof(new_path_entry)); + snprintf(new_entry, sizeof(new_entry), "Current core (%s)", cores_names->elems[i].data); } else - menu_entries_set_alt_at_offset(info->list, i, + { + switch (type) + { + case DISPLAYLIST_CORES_COLLECTION_SUPPORTED: + menu_entries_append_enum(info->list, cores_paths->elems[i].data, "", + MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, + FILE_TYPE_CORE, 0, 0); + break; + default: + menu_entries_append_enum(info->list, cores_paths->elems[i].data, + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_CORE, 0, 0); + break; + } + + menu_entries_set_alt_at_offset(info->list, j, cores_names->elems[i].data); + j++; + } } string_list_free(cores_paths); From d8a92f5bf7c66d8eeead54b05df4f62eea3cee34 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 21:24:06 +0100 Subject: [PATCH 05/36] Call current_core callback function for current core --- intl/msg_hash_lbl.h | 2 ++ menu/cbs/menu_cbs_ok.c | 10 ++++++++++ menu/menu_displaylist.c | 2 +- msg_hash.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index b3127be120..3907ab04b3 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1107,6 +1107,8 @@ MSG_HASH(MENU_ENUM_LABEL_SECONDS, "seconds") MSG_HASH(MENU_ENUM_LABEL_STATUS, "status") MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, "detect_core_list_ok") +MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE, + "detect_core_list_ok_current_core") MSG_HASH(MENU_ENUM_LABEL_NO_DISK, "no_disk") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index fa27e2ffaa..c9a3ceafd6 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1944,6 +1944,13 @@ static int action_ok_file_load_imageviewer(const char *path, CONTENT_MODE_LOAD_CONTENT_WITH_IMAGEVIEWER_CORE_FROM_MENU); } +static int action_ok_file_load_current_core(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_file_load(path, detect_content_path, + CORE_TYPE_FFMPEG, CONTENT_MODE_LOAD_CONTENT_WITH_CURRENT_CORE_FROM_MENU); +} + static int action_ok_file_load_detect_core(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -3798,6 +3805,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_DETECT_CORE_LIST_OK: BIND_ACTION_OK(cbs, action_ok_file_load_detect_core); break; + case MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE: + BIND_ACTION_OK(cbs, action_ok_file_load_current_core); + break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_CURSOR_MANAGER_LIST: case MENU_ENUM_LABEL_DATABASE_MANAGER_LIST: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e16a1ed3bd..445fe9e137 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3882,7 +3882,7 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) menu_entries_prepend(info->list, new_path_entry, new_entry, - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE, FILE_TYPE_CORE, 0, 0); menu_entries_set_alt_at_offset(info->list, 0, new_entry); diff --git a/msg_hash.h b/msg_hash.h index 4e3b79348d..7cf689f997 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1168,6 +1168,7 @@ enum msg_hash_enums MENU_LABEL(DUMMY_ON_CORE_SHUTDOWN), MENU_LABEL(CHECK_FOR_MISSING_FIRMWARE), + MENU_LABEL(DETECT_CORE_LIST_OK_CURRENT_CORE), MENU_LABEL(DETECT_CORE_LIST_OK), MENU_LABEL(DETECT_CORE_LIST), MENU_LABEL(START_CORE), From 5addb2be5c3920f658904ded2264b3acd4920834 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 21:47:12 +0100 Subject: [PATCH 06/36] (XMB) Use folder icons for 'Downloads dir' / 'Select File' --- menu/drivers/xmb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index d519e75a0d..7e883ade53 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1867,6 +1867,9 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME: return xmb->textures.list[XMB_TEXTURE_SAVESTATE]; + case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: + return xmb->textures.list[XMB_TEXTURE_FOLDER]; default: break; } From 4eaf011f244a8034c97ea14ef68217f64e74a1f0 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 00:50:39 +0100 Subject: [PATCH 07/36] Start making parseable drives work in Load Content --- frontend/drivers/platform_linux.c | 20 ++++--- intl/msg_hash_lbl.h | 2 + menu/cbs/menu_cbs_ok.c | 60 ++++++++++++++------ menu/menu_displaylist.c | 92 +++++++++++-------------------- menu/menu_displaylist.h | 10 ++++ msg_hash.h | 1 + 6 files changed, 102 insertions(+), 83 deletions(-) diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 6ca9c5c0b8..7d92d2aec2 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -61,6 +61,7 @@ #include "platform_linux.h" #ifdef HAVE_MENU +#include "../../menu/menu_driver.h" #include "../../menu/menu_display.h" #include "../../menu/menu_entries.h" #endif @@ -1857,24 +1858,29 @@ static int frontend_linux_parse_drive_list(void *data) menu_entries_append_enum(list, app_dir, msg_hash_to_str(MSG_APPLICATION_DIR), - MSG_APPLICATION_DIR, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, internal_storage_app_path, msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), - MSG_EXTERNAL_APPLICATION_DIR, - FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, internal_storage_path, msg_hash_to_str(MSG_INTERNAL_STORAGE), - MSG_INTERNAL_STORAGE, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, "/storage", msg_hash_to_str(MSG_REMOVABLE_STORAGE), - MSG_REMOVABLE_STORAGE, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif - menu_entries_append_enum(list, "/", "", - MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + menu_entries_append_enum(list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif return 0; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 3907ab04b3..7d8fd98f7d 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1153,3 +1153,5 @@ MSG_HASH(MENU_ENUM_LABEL_SHADER_PIPELINE_SNOW, "shader_pipeline_snow") MSG_HASH(MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS, "unified_menu_controls") +MSG_HASH(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + "detect_core_list_push_dir") diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index c9a3ceafd6..e882c92855 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -71,6 +71,7 @@ typedef struct #endif /* FIXME - Global variables, refactor */ +static char filebrowser_label[PATH_MAX_LENGTH]; static char detect_content_path[PATH_MAX_LENGTH]; unsigned rpl_entry_selection_ptr = 0; unsigned rdb_entry_start_game_selection_ptr = 0; @@ -294,7 +295,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_AUDIO_DSP_PLUGIN: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.directory_ptr = idx; info_path = settings->directory.audio_filter; info_label = msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN); @@ -302,7 +303,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_SHADER_PASS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.video_shader; @@ -326,7 +327,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_FILE_BROWSER_SELECT_DIR: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_SELECT_DIR; if (path) strlcpy(menu->deferred_path, path, sizeof(menu->deferred_path)); @@ -344,7 +345,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_SHADER_PRESET: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.video_shader; @@ -352,7 +353,6 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_CONTENT_LIST: - menu_displaylist_reset_filebrowser(); info.type = FILE_TYPE_DIRECTORY; info.directory_ptr = idx; info_path = new_path; @@ -360,6 +360,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_SCAN_DIR_LIST: + filebrowser_types = FILEBROWSER_SCAN_DIR; info.type = FILE_TYPE_DIRECTORY; info.directory_ptr = idx; info_path = new_path; @@ -367,7 +368,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SCAN_DIR; break; case ACTION_OK_DL_REMAP_FILE: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.input_remapping; @@ -377,7 +378,7 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_RECORD_CONFIGFILE: { global_t *global = global_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = global->record.config_dir; @@ -386,7 +387,7 @@ int generic_action_ok_displaylist_push(const char *path, } break; case ACTION_OK_DL_DISK_IMAGE_APPEND_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.menu_content; @@ -394,7 +395,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_PLAYLIST_COLLECTION: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = path; @@ -402,7 +403,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_CHEAT_FILE: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->path.cheat_database; @@ -410,7 +411,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_CORE_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.libretro; @@ -418,7 +419,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_CORE; break; case ACTION_OK_DL_CONTENT_COLLECTION_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_SELECT_COLLECTION; info.type = type; info.directory_ptr = idx; info_path = settings->directory.playlist; @@ -426,7 +427,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION; break; case ACTION_OK_DL_RDB_ENTRY: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join_delim(tmp, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RDB_ENTRY_DETAIL), path, '|', sizeof(tmp)); @@ -500,7 +501,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_DATABASE_MANAGER_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join(tmp, settings->path.content_database, path, sizeof(tmp)); @@ -513,7 +514,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_CURSOR_MANAGER_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join(tmp, settings->directory.cursor, path, sizeof(tmp)); @@ -1424,6 +1425,18 @@ static int generic_action_ok(const char *path, command_event(CMD_EVENT_RESUME, NULL); break; case ACTION_OK_SET_DIRECTORY: + flush_type = MENU_SETTINGS; + { + rarch_setting_t *setting = menu_setting_find(filebrowser_label); + + if (setting) + { + setting_set_with_string_representation( + setting, action_path); + ret = menu_setting_generic(setting, false); + } + } + break; case ACTION_OK_SET_PATH: flush_type = MENU_SETTINGS; { @@ -2700,7 +2713,6 @@ static int action_ok_shader_apply_changes(const char *path, static int action_ok_lookup_setting(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { - menu_displaylist_reset_filebrowser(); return menu_setting_set(type, label, MENU_ACTION_OK, false); } @@ -3106,11 +3118,21 @@ static int action_ok_scan_directory_list(const char *path, entry_idx, ACTION_OK_DL_SCAN_DIR_LIST); } +static int action_ok_push_random_dir(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + settings_t *settings = config_get_ptr(); + return generic_action_ok_displaylist_push(path, path, + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + type, idx, + entry_idx, ACTION_OK_DL_CONTENT_LIST); +} + static int action_ok_push_downloads_dir(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { settings_t *settings = config_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; return generic_action_ok_displaylist_push(path, settings->directory.core_assets, msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), type, idx, @@ -3134,6 +3156,7 @@ int action_ok_push_generic_list(const char *path, int action_ok_push_filebrowser_list_dir_select(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { + strlcpy(filebrowser_label, label, sizeof(filebrowser_label)); return generic_action_ok_displaylist_push(path, NULL, label, type, idx, entry_idx, ACTION_OK_DL_FILE_BROWSER_SELECT_DIR); } @@ -3799,6 +3822,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; + case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: + BIND_ACTION_OK(cbs, action_ok_push_random_dir); + break; case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_downloads_dir); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 445fe9e137..fe35b02170 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3200,15 +3200,7 @@ static int menu_displaylist_parse_options_remappings( return 0; } -enum filebrowser_enums -{ - FILEBROWSER_NONE = 0, - FILEBROWSER_SELECT_DIR, - FILEBROWSER_SCAN_DIR, - FILEBROWSER_SELECT_COLLECTION -}; - -static unsigned filebrowser_types = 0; +unsigned filebrowser_types = 0; static int menu_displaylist_parse_playlists( menu_displaylist_info_t *info, bool horizontal) @@ -3561,7 +3553,7 @@ static int menu_displaylist_parse_generic( true, settings->show_hidden_files, true, false); #ifdef HAVE_LIBRETRODB - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) menu_entries_prepend(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY), msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY), @@ -3569,7 +3561,7 @@ static int menu_displaylist_parse_generic( FILE_TYPE_SCAN_DIRECTORY, 0 ,0); #endif - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) menu_entries_prepend(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY), msg_hash_to_str(MENU_ENUM_LABEL_USE_THIS_DIRECTORY), @@ -3641,9 +3633,9 @@ static int menu_displaylist_parse_generic( if (!is_dir) { - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) continue; - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) continue; } @@ -3653,7 +3645,7 @@ static int menu_displaylist_parse_generic( if (*info->path && !path_is_compressed) path = path_basename(path); - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION)) + if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION) { if (is_dir) file_type = FILE_TYPE_DIRECTORY; @@ -3738,9 +3730,9 @@ static int menu_displaylist_parse_generic( } /* We don't want to show 'filter by extension' for this. */ - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) goto end; - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) goto end; if (!extensions_honored) @@ -3926,8 +3918,7 @@ static bool menu_displaylist_push_internal( } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MUSIC_TAB))) { - - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3942,7 +3933,7 @@ static bool menu_displaylist_push_internal( } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_TAB))) { - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3958,7 +3949,7 @@ static bool menu_displaylist_push_internal( else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_IMAGES_TAB))) { - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3993,7 +3984,7 @@ static bool menu_displaylist_push_internal( { settings_t *settings = config_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -4082,11 +4073,6 @@ static bool menu_displaylist_push(menu_displaylist_ctx_entry_t *entry) return true; } -void menu_displaylist_reset_filebrowser(void) -{ - BIT32_CLEAR_ALL(filebrowser_types); -} - static void menu_displaylist_parse_playlist_history( menu_handle_t *menu, menu_displaylist_info_t *info, @@ -4264,24 +4250,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; } - switch (type) - { - case DISPLAYLIST_FILE_BROWSER_SCAN_DIR: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SCAN_DIR); - break; - case DISPLAYLIST_FILE_BROWSER_SELECT_DIR: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SELECT_DIR); - break; - case DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION); - break; - default: - break; - } - switch (type) { case DISPLAYLIST_NONE: @@ -5552,6 +5520,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_refresh = true; break; case DISPLAYLIST_LOAD_CONTENT_LIST: + if (frontend_driver_parse_drive_list(info->list) != 0) + menu_entries_append_enum(info->list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); + menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), @@ -6063,7 +6037,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_push = true; break; case DISPLAYLIST_DATABASES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_RDB; strlcpy(info->exts, file_path_str(FILE_PATH_RDB_EXTENSION), @@ -6102,7 +6076,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_push = true; break; case DISPLAYLIST_DATABASE_CURSORS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CURSOR; strlcpy(info->exts, "dbc", sizeof(info->exts)); strlcpy(info->path, settings->directory.cursor, sizeof(info->path)); @@ -6113,14 +6087,14 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) ext_name[0] = '\0'; - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_PLAIN; if (frontend_driver_get_core_extension(ext_name, sizeof(ext_name))) strlcpy(info->exts, ext_name, sizeof(info->exts)); } break; case DISPLAYLIST_CONFIG_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CONFIG; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; @@ -6131,7 +6105,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void)attr; - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_SHADER_PRESET; #ifdef HAVE_CG @@ -6152,7 +6126,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) union string_list_elem_attr attr = {0}; struct string_list *str_list = string_list_new(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_SHADER; (void)attr; @@ -6171,12 +6145,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } break; case DISPLAYLIST_VIDEO_FILTERS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_VIDEOFILTER; strlcpy(info->exts, "filt", sizeof(info->exts)); break; case DISPLAYLIST_IMAGES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_IMAGE; { union string_list_elem_attr attr = {0}; @@ -6200,37 +6174,37 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } break; case DISPLAYLIST_AUDIO_FILTERS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_AUDIOFILTER; strlcpy(info->exts, "dsp", sizeof(info->exts)); break; case DISPLAYLIST_CHEAT_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CHEAT; strlcpy(info->exts, "cht", sizeof(info->exts)); break; case DISPLAYLIST_CONTENT_HISTORY: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_PLAIN; strlcpy(info->exts, "lpl", sizeof(info->exts)); break; case DISPLAYLIST_FONTS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_FONT; strlcpy(info->exts, "ttf", sizeof(info->exts)); break; case DISPLAYLIST_OVERLAYS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_OVERLAY; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; case DISPLAYLIST_RECORD_CONFIG_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_RECORD_CONFIG; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; case DISPLAYLIST_REMAP_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_REMAP; strlcpy(info->exts, "rmp", sizeof(info->exts)); break; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index d03324acea..dfd2de0d26 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -159,6 +159,14 @@ enum menu_displaylist_ctl_state DISPLAYLIST_PENDING_CLEAR }; +enum filebrowser_enums +{ + FILEBROWSER_NONE = 0, + FILEBROWSER_SELECT_DIR, + FILEBROWSER_SCAN_DIR, + FILEBROWSER_SELECT_COLLECTION +}; + typedef struct menu_displaylist_info { bool need_sort; @@ -205,6 +213,8 @@ void menu_displaylist_reset_filebrowser(void); bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data); +extern unsigned filebrowser_types; + RETRO_END_DECLS #endif diff --git a/msg_hash.h b/msg_hash.h index 7cf689f997..d39f31f06c 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -833,6 +833,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST, MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_LIST, + MENU_LABEL(FILE_DETECT_CORE_LIST_PUSH_DIR), MENU_LABEL(DOWNLOADED_FILE_DETECT_CORE_LIST), MENU_ENUM_LABEL_VALUE_SEARCH, From 6354d7ee5ff119dc4be39ce8dc2800c540d5eef4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:06:28 +0100 Subject: [PATCH 08/36] Rename 'Select File' to 'Favorites' --- intl/msg_hash_chs.c | 4 ++-- intl/msg_hash_de.h | 4 ++-- intl/msg_hash_eo.h | 4 ++-- intl/msg_hash_es.c | 4 ++-- intl/msg_hash_fr.h | 4 ++-- intl/msg_hash_it.c | 4 ++-- intl/msg_hash_ja.h | 4 ++-- intl/msg_hash_lbl.h | 4 ++-- intl/msg_hash_nl.h | 4 ++-- intl/msg_hash_pl.c | 2 +- intl/msg_hash_pt.c | 4 ++-- intl/msg_hash_ru.h | 4 ++-- intl/msg_hash_us.h | 4 ++-- intl/msg_hash_vn.c | 4 ++-- menu/cbs/menu_cbs_deferred_push.c | 2 +- menu/cbs/menu_cbs_get_value.c | 2 +- menu/cbs/menu_cbs_ok.c | 14 +++++++------- menu/cbs/menu_cbs_title.c | 2 +- menu/drivers/materialui.c | 6 +++--- menu/drivers/xmb.c | 2 +- menu/menu_displaylist.c | 11 ++++++----- msg_hash.h | 3 ++- 22 files changed, 49 insertions(+), 47 deletions(-) diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c index 3071107e6b..fd0ef1df5b 100644 --- a/intl/msg_hash_chs.c +++ b/intl/msg_hash_chs.c @@ -2116,8 +2116,8 @@ const char *msg_hash_to_str_chs(enum msg_hash_enums msg) return "选择数据库"; case MENU_ENUM_LABEL_VALUE_DELETE_ENTRY: return "移除"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "选择文件并探测核心"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "选择文件并探测核心"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return "<游戏内容目录>"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 0f56a79ab8..f14d94adc9 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -146,8 +146,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER, "Datenbankmanager") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Von der Playlist löschen") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Lade Content") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Lesezeichen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 7d59beaea6..6ebaf86f80 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 597ec252f8..478c410e32 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -1653,8 +1653,8 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Proporción personalizada"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Gestor de bases de datos"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Seleccionar archivo y detectar núcleo"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Seleccionar archivo y detectar núcleo"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return "(Carpeta de contenido)"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 72ae42d881..107d9c1148 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -480,8 +480,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Via les fichiers") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Via les fichiers") /* TODO/FIXME - update */ MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index ea90c6ac77..480fad296c 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -1611,8 +1611,8 @@ const char *msg_hash_to_str_it(enum msg_hash_enums msg) return "Abilita riavvolgi"; case MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST: return "Collezione"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Seleziona il file ed intercetta il core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Seleziona il file ed intercetta il core"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST: return "Scarica su directories"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 1661a6df37..26cc96c72d 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -498,8 +498,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "削除") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "ファイルを選択とコア検出") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "ファイルを選択とコア検出") /* TODO/FIXME - update */ MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 7d8fd98f7d..58bb2b135f 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -307,8 +307,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST, "deferred_wifi_settings_list") MSG_HASH(MENU_ENUM_LABEL_DELETE_ENTRY, "delete_entry") -MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST, - "detect_core_list") +MSG_HASH(MENU_ENUM_LABEL_FAVORITES, + "favorites") MSG_HASH(MENU_ENUM_LABEL_DIRECTORY_SETTINGS, "directory_settings") MSG_HASH(MENU_ENUM_LABEL_DISK_CYCLE_TRAY_STATUS, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 121122af4d..ba2abb1167 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selectie") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Verwijderen") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Selecteer Bestand") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorieten") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index 60da28dd16..bee8cf1bc7 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -176,7 +176,7 @@ const char *msg_hash_to_str_pl(enum msg_hash_enums msg) return "Włąsny współczynnik"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Menedżer bazy danych"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_VALUE_FAVORITES: /* TODO/FIXME - update */ return "Wybierz plik i dopasuj rdzeń"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index d3d895f85f..a720feee37 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -1094,8 +1094,8 @@ const char *msg_hash_to_str_pt(enum msg_hash_enums msg) return "Relação de Aspecto Personalizada"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Gerenciador de Databases"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Selecionar Arquivo e Detectar Core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Selecionar Arquivo e Detectar Core"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index a98010cde3..413c096a39 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index f5ec34fa09..b785717911 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -488,8 +488,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c index 12daf54ef0..30915360e2 100644 --- a/intl/msg_hash_vn.c +++ b/intl/msg_hash_vn.c @@ -2162,8 +2162,8 @@ const char *msg_hash_to_str_vn(enum msg_hash_enums msg) return "Database Selection"; case MENU_ENUM_LABEL_VALUE_DELETE_ENTRY: return "Remove"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Select File And Detect Core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Favorites"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index e7e397d4f1..a8b905b690 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -1118,7 +1118,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_settings_list); break; case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_detect_core_list); break; default: diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 361d88808b..6b547c8a8d 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1703,7 +1703,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( case MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST: case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_CORE_OPTIONS: case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS: case MENU_ENUM_LABEL_SHADER_OPTIONS: diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index e882c92855..faf3c69753 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -3123,7 +3123,7 @@ static int action_ok_push_random_dir(const char *path, { settings_t *settings = config_get_ptr(); return generic_action_ok_displaylist_push(path, path, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), type, idx, entry_idx, ACTION_OK_DL_CONTENT_LIST); } @@ -3134,7 +3134,7 @@ static int action_ok_push_downloads_dir(const char *path, settings_t *settings = config_get_ptr(); filebrowser_types = FILEBROWSER_NONE; return generic_action_ok_displaylist_push(path, settings->directory.core_assets, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), type, idx, entry_idx, ACTION_OK_DL_CONTENT_LIST); } @@ -3819,7 +3819,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, BIND_ACTION_OK(cbs, action_ok_scan_directory_list); break; case MENU_ENUM_LABEL_SCAN_FILE: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: @@ -4029,7 +4029,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, break; case MENU_LABEL_SCAN_FILE: case MENU_LABEL_SCAN_DIRECTORY: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: @@ -4164,7 +4164,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, case FILE_TYPE_CARCHIVE: switch (menu_label_hash) { - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_compressed_archive_push_detect_core); break; case MENU_LABEL_SCAN_FILE: @@ -4276,7 +4276,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, break; #endif case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE: #ifdef HAVE_COMPRESSION if (type == FILE_TYPE_IN_CARCHIVE) @@ -4307,7 +4307,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, break; #endif case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: case MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE: #ifdef HAVE_COMPRESSION if (type == FILE_TYPE_IN_CARCHIVE) diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 67bc323dbb..83736870f4 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -229,7 +229,7 @@ default_title_generic_macro(action_get_title_list_rdb_entry_database_info,MENU_E static int action_get_title_default(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { - snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), path); + snprintf(s, len, "%s %s", "Select File", path); return 0; } diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 888b7e50b7..0258810844 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1676,9 +1676,9 @@ static int mui_list_push(void *data, void *userdata, menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), + MENU_ENUM_LABEL_FAVORITES, MENU_SETTING_ACTION, 0, 0); core_info_get_list(&list); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7e883ade53..7dc829aa02 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1867,7 +1867,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME: return xmb->textures.list[XMB_TEXTURE_SAVESTATE]; - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: return xmb->textures.list[XMB_TEXTURE_FOLDER]; default: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index fe35b02170..15d29cbc6e 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5526,11 +5526,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); + if (!string_is_empty(settings->directory.menu_content)) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), + MENU_ENUM_LABEL_FAVORITES, + MENU_SETTING_ACTION, 0, 0); if (core_info_list_num_info_files(list)) { diff --git a/msg_hash.h b/msg_hash.h index d39f31f06c..77117e1819 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1171,7 +1171,7 @@ enum msg_hash_enums MENU_LABEL(DETECT_CORE_LIST_OK_CURRENT_CORE), MENU_LABEL(DETECT_CORE_LIST_OK), - MENU_LABEL(DETECT_CORE_LIST), + MENU_LABEL(FAVORITES), MENU_LABEL(START_CORE), MENU_LABEL(CORE_UPDATER_LIST), MENU_LABEL(CORE_UPDATER_AUTO_EXTRACT_ARCHIVE), @@ -1695,6 +1695,7 @@ enum msg_hash_enums #define MENU_LABEL_RDB_ENTRY_RELEASE_YEAR 0x14c9c6bfU #define MENU_LABEL_RDB_ENTRY_MAX_USERS 0xfae91cc4U +#define MENU_LABEL_FAVORITES 0x67325138U #define MENU_LABEL_DETECT_CORE_LIST 0xaa07c341U #define MENU_LABEL_DETECT_CORE_LIST_OK 0xabba2a7aU #define MENU_LABEL_CORE_LIST 0xa22bb14dU From fcd49b0341a876248ba914887c7785457c604123 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:26:54 +0100 Subject: [PATCH 09/36] Fix deferred callback for Favorites --- menu/cbs/menu_cbs_deferred_push.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index a8b905b690..9423b2a173 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -1348,7 +1348,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_content_history_path); break; case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_detect_core_list); break; default: From 7feea5d2e8ac166755cfca7a3acaf8ffb42fc06f Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 13 Dec 2016 01:32:41 +0100 Subject: [PATCH 10/36] (OSX) Buildfixes --- frontend/drivers/platform_darwin.m | 11 ++++++++--- menu/cbs/menu_cbs_deferred_push.c | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 07b113b557..88f1d2bedd 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -640,9 +640,14 @@ static int frontend_darwin_parse_drive_list(void *data) CFSearchPathForDirectoriesInDomains(CFDocumentDirectory, CFUserDomainMask, 1, home_dir_buf, sizeof(home_dir_buf)); menu_entries_append_enum(list, - home_dir_buf, "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); - menu_entries_append_enum(list, "/", "", - MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + home_dir_buf, + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); + menu_entries_append_enum(list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); ret = 0; diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 9423b2a173..47e2f4c4e9 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -568,7 +568,7 @@ static int general_push(menu_displaylist_info_t *info, } break; case PUSH_DETECT_CORE_LIST: - if (!string_is_empty(list->all_ext)) + if (list && !string_is_empty(list->all_ext)) strlcpy(info->exts, list->all_ext, sizeof(info->exts)); else if (system_menu->valid_extensions) { From 9909669d01d33ec36617c5cfed22c92bd166307f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 16:20:43 +0100 Subject: [PATCH 11/36] Combine Load Content and Load Content (Detect Core) --- intl/msg_hash_chs.c | 2 -- intl/msg_hash_de.c | 18 -------------- intl/msg_hash_de.h | 4 +-- intl/msg_hash_eo.h | 4 +-- intl/msg_hash_es.c | 4 --- intl/msg_hash_fr.h | 4 +-- intl/msg_hash_it.c | 2 -- intl/msg_hash_ja.h | 2 -- intl/msg_hash_lbl.h | 2 -- intl/msg_hash_nl.h | 4 +-- intl/msg_hash_pl.c | 2 -- intl/msg_hash_pt.c | 22 ----------------- intl/msg_hash_ru.h | 4 +-- intl/msg_hash_us.h | 4 +-- intl/msg_hash_vn.c | 2 -- menu/cbs/menu_cbs_deferred_push.c | 9 ++++++- menu/cbs/menu_cbs_get_value.c | 2 +- menu/cbs/menu_cbs_ok.c | 5 ++-- menu/cbs/menu_cbs_title.c | 2 +- menu/drivers/materialui.c | 14 ++++------- menu/drivers/xmb.c | 2 ++ menu/menu_displaylist.c | 41 ++++++++++++++++++++++--------- msg_hash.h | 4 +-- 23 files changed, 58 insertions(+), 101 deletions(-) diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c index b709742a9e..3071107e6b 100644 --- a/intl/msg_hash_chs.c +++ b/intl/msg_hash_chs.c @@ -2452,8 +2452,6 @@ const char *msg_hash_to_str_chs(enum msg_hash_enums msg) return "线性"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "使用核心加载压缩包"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "选择文件"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "加载最近的游戏内容"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_de.c b/intl/msg_hash_de.c index f733340ef1..7d5127f881 100644 --- a/intl/msg_hash_de.c +++ b/intl/msg_hash_de.c @@ -103,24 +103,6 @@ int menu_hash_get_help_de_enum(enum msg_hash_enums msg, char *s, size_t len) break; } break; - case MENU_ENUM_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Lade Content. \n" - "Suche nach Content. \n" - " \n" - "Um Content zu laden benötigst du den passenden \n" - "Libretro-Core und die Content-Datei. \n" - " \n" - "Um einzustellen, welcher Ordner standardmäßig \n" - "geöffnet wird, um nach Content zu suchen, solltest \n" - "du das Content-Verzeichnis setzen. Wenn es nicht \n" - "gesetzt ist, wird es im Root-Verzeichen starten. \n" - " \n" - "Der Browser wird nur Dateierweiterungen des \n" - "zuletzt geladenen Cores zeigen und diesen Core \n" - "nutzen, wenn Content geladen wird." - ); - break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: snprintf(s, len, "Lade Content aus dem Verlauf. \n" diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 09fb655303..0f56a79ab8 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -147,7 +147,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Von der Playlist löschen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Lade Content (Core erkennen)") /* FIXME */ + "Lade Content") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -280,8 +280,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Lade Archiv") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Lade Content") /* FIXME */ MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Lade Content (Verlauf)") /* FIXME/UPDATE */ MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 9fd9252a77..7d59beaea6 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 6b9d709e88..597ec252f8 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -1372,8 +1372,6 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Error:"; case MSG_FAILED_TO_APPLY_SHADER: return "Error al aplicar shader."; - case MSG_FAILED_TO_LOAD_CONTENT: - return "Error al cargar el contenido"; case MSG_FAILED_TO_LOAD_MOVIE_FILE: return "Error al cargar el archivo de película"; case MSG_FAILED_TO_LOAD_OVERLAY: @@ -1794,8 +1792,6 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Nivel de registro del núcleo"; case MENU_ENUM_LABEL_VALUE_LINEAR: return "Lineal"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Seleccionar archivo"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Cargar archivos recientes"; case MENU_ENUM_LABEL_VALUE_LOAD_STATE: diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 8b27411d2f..72ae42d881 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -481,7 +481,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Via les fichiers (détecter le coeur)") + "Via les fichiers") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -812,8 +812,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linéaire") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Charger l'archive") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Via les fichiers") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Récemment ouvert") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index c2159671d6..ea90c6ac77 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -1729,8 +1729,6 @@ const char *msg_hash_to_str_it(enum msg_hash_enums msg) return "Nessun oggetto."; case MENU_ENUM_LABEL_VALUE_CORE_LIST: return "Carica Core"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Seleziona contenuto"; case MENU_ENUM_LABEL_VALUE_CLOSE_CONTENT: return "Chiudi"; case MENU_ENUM_LABEL_VALUE_MANAGEMENT: diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index e583fe216d..1661a6df37 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -834,8 +834,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "コアでアーカイブをロード") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "ファイル選択") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "最近のものをロード") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 77618556b5..b3127be120 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -517,8 +517,6 @@ MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE, "load_archive") MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE_DETECT_CORE, "load_archive_detect_core") -MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT, - "load_content_default") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY, "load_recent") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 9229711edc..121122af4d 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Verwijderen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Selecteer Bestand En Detecteer Core") + "Selecteer Bestand") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Laad Archief Met Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Selecteer Bestand") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Recentelijk gebruikt") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index c32a710bd4..60da28dd16 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -312,8 +312,6 @@ const char *msg_hash_to_str_pl(enum msg_hash_enums msg) return "Liniowe"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Wczytaj archiwum"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Wybierz plik"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Wczytaj z ostatnio używanych"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index dcf67ab273..d3d895f85f 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -90,26 +90,6 @@ int menu_hash_get_help_pt_enum(enum msg_hash_enums msg, char *s, size_t len) break; } break; - case MENU_ENUM_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Carregar Conteúdo. \n" - "Busca conteúdo. \n" - " \n" - "Para carregar conteúdo, você precisa de \n" - "um core libretro para usar, e um arquivo \n" - "de conteúdo. \n" - " \n" - "Para controlar onde o menu começa a \n" - "buscar conteúdo, defina o Diretório \n" - "de Navegação. Se não estiver definido, \n" - "o Retroarch começará no diretório raiz. \n" - " \n" - "O navegador vai filtrar pelas extensões \n" - "do mais recente core definido em 'Core', \n" - "e o usará quando o conteúdo estiver \n" - "carregado." - ); - break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: snprintf(s, len, "Carregando conteúdo do histórico. \n" @@ -1246,8 +1226,6 @@ const char *msg_hash_to_str_pt(enum msg_hash_enums msg) return "Linear"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Carregar Arquivo"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Selecionar Arquivo"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Selecionar do Histórico"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 27bdd8a455..a98010cde3 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -485,7 +485,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -818,8 +818,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index bc7e9dd724..f5ec34fa09 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -489,7 +489,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File And Detect Core") + "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, @@ -826,8 +826,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LINEAR, "Linear") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE, "Load Archive With Core") -MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT, - "Select File") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY, "Load Recent") MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST, diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c index 8766639869..12daf54ef0 100644 --- a/intl/msg_hash_vn.c +++ b/intl/msg_hash_vn.c @@ -2497,8 +2497,6 @@ const char *msg_hash_to_str_vn(enum msg_hash_enums msg) return "Linear"; case MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE: return "Tải Archive With Core"; - case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT: - return "Select File"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: return "Tải Recent"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST: diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 299108bfec..e7e397d4f1 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -533,12 +533,13 @@ static int general_push(menu_displaylist_info_t *info, strlcpy(info->exts, list->all_ext, sizeof(info->exts)); else if (system_menu->valid_extensions) { - if (*system_menu->valid_extensions) + if (!string_is_empty(system_menu->valid_extensions)) strlcpy(info->exts, system_menu->valid_extensions, sizeof(info->exts)); } else strlcpy(info->exts, system->valid_extensions, sizeof(info->exts)); + break; case PUSH_ARCHIVE_OPEN: if (system_menu->valid_extensions) @@ -569,6 +570,12 @@ static int general_push(menu_displaylist_info_t *info, case PUSH_DETECT_CORE_LIST: if (!string_is_empty(list->all_ext)) strlcpy(info->exts, list->all_ext, sizeof(info->exts)); + else if (system_menu->valid_extensions) + { + if (!string_is_empty(system_menu->valid_extensions)) + strlcpy(info->exts, system_menu->valid_extensions, + sizeof(info->exts)); + } break; } diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index eb56c8eb51..361d88808b 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1704,7 +1704,6 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: case MENU_ENUM_LABEL_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_LOAD_CONTENT: case MENU_ENUM_LABEL_CORE_OPTIONS: case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS: case MENU_ENUM_LABEL_SHADER_OPTIONS: @@ -1778,6 +1777,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_type( menu_action_setting_disp_set_label_core_option_create); break; case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_menu_file_core); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 314598f6fb..fa27e2ffaa 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -3789,7 +3789,6 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, BIND_ACTION_OK(cbs, action_ok_scan_directory_list); break; case MENU_ENUM_LABEL_SCAN_FILE: - case MENU_ENUM_LABEL_LOAD_CONTENT: case MENU_ENUM_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; @@ -3994,7 +3993,6 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, break; case MENU_LABEL_SCAN_FILE: case MENU_LABEL_SCAN_DIRECTORY: - case MENU_LABEL_LOAD_CONTENT: case MENU_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; @@ -4306,6 +4304,9 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, /* TODO/FIXME - handle scan case */ BIND_ACTION_OK(cbs, action_ok_file_load_imageviewer); break; + case FILE_TYPE_DIRECT_LOAD: + BIND_ACTION_OK(cbs, action_ok_file_load); + break; case MENU_SETTINGS: case MENU_SETTING_GROUP: case MENU_SETTING_SUBGROUP: diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 79f0d22f8d..67bc323dbb 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -229,7 +229,7 @@ default_title_generic_macro(action_get_title_list_rdb_entry_database_info,MENU_E static int action_get_title_default(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { - snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), path); + snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), path); return 0; } diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 447d294615..888b7e50b7 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -664,6 +664,7 @@ static void mui_render_label_value(mui_handle_t *mui, case FILE_TYPE_COMPRESSED: case FILE_TYPE_MORE: case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: case FILE_TYPE_RDB: case FILE_TYPE_CURSOR: case FILE_TYPE_PLAIN: @@ -1673,21 +1674,16 @@ static int mui_list_push(void *data, void *userdata, { case DISPLAYLIST_LOAD_CONTENT_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), - msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT), - MENU_ENUM_LABEL_LOAD_CONTENT, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + MENU_ENUM_LABEL_DETECT_CORE_LIST, MENU_SETTING_ACTION, 0, 0); core_info_get_list(&list); if (core_info_list_num_info_files(list)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST), msg_hash_to_str(MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST), diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7c12d1bc2e..d519e75a0d 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1908,6 +1908,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case FILE_TYPE_MOVIE: return xmb->textures.list[XMB_TEXTURE_MOVIE]; case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: return xmb->textures.list[XMB_TEXTURE_CORE]; case FILE_TYPE_RDB: return xmb->textures.list[XMB_TEXTURE_RDB]; @@ -2126,6 +2127,7 @@ static void xmb_draw_items(xmb_handle_t *xmb, case FILE_TYPE_COMPRESSED: case FILE_TYPE_MORE: case FILE_TYPE_CORE: + case FILE_TYPE_DIRECT_LOAD: case FILE_TYPE_RDB: case FILE_TYPE_CURSOR: case FILE_TYPE_PLAIN: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 1868c1eae3..55eb4f58fb 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5536,19 +5536,13 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case DISPLAYLIST_LOAD_CONTENT_LIST: menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT), - msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT), - MENU_ENUM_LABEL_LOAD_CONTENT, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + MENU_ENUM_LABEL_DETECT_CORE_LIST, MENU_SETTING_ACTION, 0, 0); if (core_info_list_num_info_files(list)) { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, msg_hash_to_str( MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST), @@ -5906,7 +5900,30 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void*)menu->deferred_path, &cores_names_len, &cores_names_size); - if (cores_names_size == 0) + if (!path_is_empty(RARCH_PATH_CORE)) + { + const char *core_name = NULL; + struct retro_system_info *system = NULL; + + menu_entries_append_enum(info->list, + path_get(RARCH_PATH_CORE), + path_get(RARCH_PATH_CORE), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_DIRECT_LOAD, + 0, + 0); + + menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, + &system); + + if (system) + core_name = system->library_name; + + if (!string_is_empty(core_name)) + menu_entries_set_alt_at_offset(info->list, 0, + core_name); + } + else if (cores_names_size == 0) { menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), @@ -5915,7 +5932,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) 0, 0, 0); info->download_core = true; } - else + + if (cores_names_size != 0) { struct string_list *cores_paths = string_list_new_special(STRING_LIST_SUPPORTED_CORES_PATHS, @@ -5947,6 +5965,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } string_list_free(cores_names); + } break; case DISPLAYLIST_CORE_INFO: diff --git a/msg_hash.h b/msg_hash.h index 777a62f85d..4e3b79348d 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -125,6 +125,8 @@ enum msg_file_type FILE_TYPE_ISO, FILE_TYPE_LUTRO, + FILE_TYPE_DIRECT_LOAD, + FILE_TYPE_LAST }; @@ -1169,7 +1171,6 @@ enum msg_hash_enums MENU_LABEL(DETECT_CORE_LIST_OK), MENU_LABEL(DETECT_CORE_LIST), MENU_LABEL(START_CORE), - MENU_LABEL(LOAD_CONTENT), MENU_LABEL(CORE_UPDATER_LIST), MENU_LABEL(CORE_UPDATER_AUTO_EXTRACT_ARCHIVE), MENU_LABEL(CORE_UPDATER_BUILDBOT_URL), @@ -1749,7 +1750,6 @@ enum msg_hash_enums #define MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd44d395cU /* Main menu */ -#define MENU_LABEL_LOAD_CONTENT 0x828943c3U #define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU #define MENU_LABEL_LOAD_CONTENT_HISTORY 0xfe1d79e5U #define MENU_LABEL_ADD_CONTENT_LIST 0x046f4668U From 028fb27175b2d1779e30dfe7c0b6366ff25dcf85 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 18:53:55 +0100 Subject: [PATCH 12/36] List the current core now --- menu/menu_displaylist.c | 74 +++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 55eb4f58fb..3d4ba8fb20 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5900,37 +5900,43 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void*)menu->deferred_path, &cores_names_len, &cores_names_size); - if (!path_is_empty(RARCH_PATH_CORE)) + if (cores_names_size == 0) { - const char *core_name = NULL; - struct retro_system_info *system = NULL; + if (!path_is_empty(RARCH_PATH_CORE)) + { - menu_entries_append_enum(info->list, - path_get(RARCH_PATH_CORE), - path_get(RARCH_PATH_CORE), - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, - FILE_TYPE_DIRECT_LOAD, - 0, - 0); + menu_entries_append_enum(info->list, + path_get(RARCH_PATH_CORE), + path_get(RARCH_PATH_CORE), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_DIRECT_LOAD, + 0, + 0); - menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, - &system); + { + const char *core_name = NULL; + struct retro_system_info *system = NULL; - if (system) - core_name = system->library_name; + menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, + &system); - if (!string_is_empty(core_name)) - menu_entries_set_alt_at_offset(info->list, 0, - core_name); - } - else if (cores_names_size == 0) - { - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), - msg_hash_to_str(MENU_ENUM_LABEL_NO_CORES_AVAILABLE), - MENU_ENUM_LABEL_NO_CORES_AVAILABLE, - 0, 0, 0); - info->download_core = true; + if (system) + core_name = system->library_name; + + if (!string_is_empty(core_name)) + menu_entries_set_alt_at_offset(info->list, 0, + core_name); + } + } + else + { + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE), + msg_hash_to_str(MENU_ENUM_LABEL_NO_CORES_AVAILABLE), + MENU_ENUM_LABEL_NO_CORES_AVAILABLE, + 0, 0, 0); + info->download_core = true; + } } if (cores_names_size != 0) @@ -5957,8 +5963,20 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; } - menu_entries_set_alt_at_offset(info->list, i, - cores_names->elems[i].data); + if ( !path_is_empty(RARCH_PATH_CORE) && + string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))) + { + char newstring[1024]; + + newstring[0] = '\0'; + snprintf(newstring, sizeof(newstring), "%s (Current core)", cores_names->elems[i].data); + + menu_entries_set_alt_at_offset(info->list, i, + newstring); + } + else + menu_entries_set_alt_at_offset(info->list, i, + cores_names->elems[i].data); } string_list_free(cores_paths); From d06182608937e7c0e88dcf733225422ae6f625f1 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 19:22:46 +0100 Subject: [PATCH 13/36] Show the current core at the top --- menu/menu_displaylist.c | 65 ++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3d4ba8fb20..e16a1ed3bd 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -76,6 +76,9 @@ #include "../wifi/wifi_driver.h" #include "../tasks/tasks_internal.h" +static char new_path_entry[4096] = {0}; +static char new_entry[4096] = {0}; + #ifdef HAVE_NETWORKING static void print_buf_lines(file_list_t *list, char *buf, const char *label, int buf_size, @@ -3874,6 +3877,20 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) } #endif + if (!string_is_empty(new_entry)) + { + menu_entries_prepend(info->list, + new_path_entry, + new_entry, + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_CORE, 0, 0); + menu_entries_set_alt_at_offset(info->list, 0, + new_entry); + + new_path_entry[0] = '\0'; + new_entry[0] = '\0'; + } + if (info->need_refresh) menu_entries_ctl(MENU_ENTRIES_CTL_REFRESH, info->list); @@ -5941,6 +5958,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) if (cores_names_size != 0) { + unsigned j = 0; struct string_list *cores_paths = string_list_new_special(STRING_LIST_SUPPORTED_CORES_PATHS, (void*)menu->deferred_path, @@ -5948,35 +5966,34 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) for (i = 0; i < cores_names_size; i++) { - switch (type) - { - case DISPLAYLIST_CORES_COLLECTION_SUPPORTED: - menu_entries_append_enum(info->list, cores_paths->elems[i].data, "", - MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, - FILE_TYPE_CORE, 0, 0); - break; - default: - menu_entries_append_enum(info->list, cores_paths->elems[i].data, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK), - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, - FILE_TYPE_CORE, 0, 0); - break; - } - if ( !path_is_empty(RARCH_PATH_CORE) && - string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))) + string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE)) + && type != DISPLAYLIST_CORES_COLLECTION_SUPPORTED) { - char newstring[1024]; - - newstring[0] = '\0'; - snprintf(newstring, sizeof(newstring), "%s (Current core)", cores_names->elems[i].data); - - menu_entries_set_alt_at_offset(info->list, i, - newstring); + strlcpy(new_path_entry, cores_paths->elems[i].data, sizeof(new_path_entry)); + snprintf(new_entry, sizeof(new_entry), "Current core (%s)", cores_names->elems[i].data); } else - menu_entries_set_alt_at_offset(info->list, i, + { + switch (type) + { + case DISPLAYLIST_CORES_COLLECTION_SUPPORTED: + menu_entries_append_enum(info->list, cores_paths->elems[i].data, "", + MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, + FILE_TYPE_CORE, 0, 0); + break; + default: + menu_entries_append_enum(info->list, cores_paths->elems[i].data, + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK), + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + FILE_TYPE_CORE, 0, 0); + break; + } + + menu_entries_set_alt_at_offset(info->list, j, cores_names->elems[i].data); + j++; + } } string_list_free(cores_paths); From 33b143bd5a3ae38a04dade0b95a3d7b8347cde8d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 21:24:06 +0100 Subject: [PATCH 14/36] Call current_core callback function for current core --- intl/msg_hash_lbl.h | 2 ++ menu/cbs/menu_cbs_ok.c | 10 ++++++++++ menu/menu_displaylist.c | 2 +- msg_hash.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index b3127be120..3907ab04b3 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1107,6 +1107,8 @@ MSG_HASH(MENU_ENUM_LABEL_SECONDS, "seconds") MSG_HASH(MENU_ENUM_LABEL_STATUS, "status") MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, "detect_core_list_ok") +MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE, + "detect_core_list_ok_current_core") MSG_HASH(MENU_ENUM_LABEL_NO_DISK, "no_disk") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index fa27e2ffaa..c9a3ceafd6 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1944,6 +1944,13 @@ static int action_ok_file_load_imageviewer(const char *path, CONTENT_MODE_LOAD_CONTENT_WITH_IMAGEVIEWER_CORE_FROM_MENU); } +static int action_ok_file_load_current_core(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_file_load(path, detect_content_path, + CORE_TYPE_FFMPEG, CONTENT_MODE_LOAD_CONTENT_WITH_CURRENT_CORE_FROM_MENU); +} + static int action_ok_file_load_detect_core(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -3798,6 +3805,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_DETECT_CORE_LIST_OK: BIND_ACTION_OK(cbs, action_ok_file_load_detect_core); break; + case MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE: + BIND_ACTION_OK(cbs, action_ok_file_load_current_core); + break; case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_CURSOR_MANAGER_LIST: case MENU_ENUM_LABEL_DATABASE_MANAGER_LIST: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e16a1ed3bd..445fe9e137 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3882,7 +3882,7 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) menu_entries_prepend(info->list, new_path_entry, new_entry, - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK, + MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE, FILE_TYPE_CORE, 0, 0); menu_entries_set_alt_at_offset(info->list, 0, new_entry); diff --git a/msg_hash.h b/msg_hash.h index 4e3b79348d..7cf689f997 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1168,6 +1168,7 @@ enum msg_hash_enums MENU_LABEL(DUMMY_ON_CORE_SHUTDOWN), MENU_LABEL(CHECK_FOR_MISSING_FIRMWARE), + MENU_LABEL(DETECT_CORE_LIST_OK_CURRENT_CORE), MENU_LABEL(DETECT_CORE_LIST_OK), MENU_LABEL(DETECT_CORE_LIST), MENU_LABEL(START_CORE), From 5723c79dac1446eb7772613f0d17e3641714fe35 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Dec 2016 21:47:12 +0100 Subject: [PATCH 15/36] (XMB) Use folder icons for 'Downloads dir' / 'Select File' --- menu/drivers/xmb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index d519e75a0d..7e883ade53 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1867,6 +1867,9 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME: return xmb->textures.list[XMB_TEXTURE_SAVESTATE]; + case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: + return xmb->textures.list[XMB_TEXTURE_FOLDER]; default: break; } From fc73e82e433b6615db5ba39a71ff3c7fd9383905 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 00:50:39 +0100 Subject: [PATCH 16/36] Start making parseable drives work in Load Content --- frontend/drivers/platform_linux.c | 20 ++++--- intl/msg_hash_lbl.h | 2 + menu/cbs/menu_cbs_ok.c | 60 ++++++++++++++------ menu/menu_displaylist.c | 92 +++++++++++-------------------- menu/menu_displaylist.h | 10 ++++ msg_hash.h | 1 + 6 files changed, 102 insertions(+), 83 deletions(-) diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 6ca9c5c0b8..7d92d2aec2 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -61,6 +61,7 @@ #include "platform_linux.h" #ifdef HAVE_MENU +#include "../../menu/menu_driver.h" #include "../../menu/menu_display.h" #include "../../menu/menu_entries.h" #endif @@ -1857,24 +1858,29 @@ static int frontend_linux_parse_drive_list(void *data) menu_entries_append_enum(list, app_dir, msg_hash_to_str(MSG_APPLICATION_DIR), - MSG_APPLICATION_DIR, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, internal_storage_app_path, msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), - MSG_EXTERNAL_APPLICATION_DIR, - FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, internal_storage_path, msg_hash_to_str(MSG_INTERNAL_STORAGE), - MSG_INTERNAL_STORAGE, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, "/storage", msg_hash_to_str(MSG_REMOVABLE_STORAGE), - MSG_REMOVABLE_STORAGE, FILE_TYPE_DIRECTORY, 0, 0); + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif - menu_entries_append_enum(list, "/", "", - MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + menu_entries_append_enum(list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif return 0; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 3907ab04b3..7d8fd98f7d 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1153,3 +1153,5 @@ MSG_HASH(MENU_ENUM_LABEL_SHADER_PIPELINE_SNOW, "shader_pipeline_snow") MSG_HASH(MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS, "unified_menu_controls") +MSG_HASH(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + "detect_core_list_push_dir") diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index c9a3ceafd6..e882c92855 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -71,6 +71,7 @@ typedef struct #endif /* FIXME - Global variables, refactor */ +static char filebrowser_label[PATH_MAX_LENGTH]; static char detect_content_path[PATH_MAX_LENGTH]; unsigned rpl_entry_selection_ptr = 0; unsigned rdb_entry_start_game_selection_ptr = 0; @@ -294,7 +295,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_AUDIO_DSP_PLUGIN: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.directory_ptr = idx; info_path = settings->directory.audio_filter; info_label = msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN); @@ -302,7 +303,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_SHADER_PASS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.video_shader; @@ -326,7 +327,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_FILE_BROWSER_SELECT_DIR: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_SELECT_DIR; if (path) strlcpy(menu->deferred_path, path, sizeof(menu->deferred_path)); @@ -344,7 +345,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_SHADER_PRESET: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.video_shader; @@ -352,7 +353,6 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_CONTENT_LIST: - menu_displaylist_reset_filebrowser(); info.type = FILE_TYPE_DIRECTORY; info.directory_ptr = idx; info_path = new_path; @@ -360,6 +360,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_SCAN_DIR_LIST: + filebrowser_types = FILEBROWSER_SCAN_DIR; info.type = FILE_TYPE_DIRECTORY; info.directory_ptr = idx; info_path = new_path; @@ -367,7 +368,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SCAN_DIR; break; case ACTION_OK_DL_REMAP_FILE: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.input_remapping; @@ -377,7 +378,7 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_RECORD_CONFIGFILE: { global_t *global = global_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = global->record.config_dir; @@ -386,7 +387,7 @@ int generic_action_ok_displaylist_push(const char *path, } break; case ACTION_OK_DL_DISK_IMAGE_APPEND_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.menu_content; @@ -394,7 +395,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_PLAYLIST_COLLECTION: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = path; @@ -402,7 +403,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_CHEAT_FILE: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->path.cheat_database; @@ -410,7 +411,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE; break; case ACTION_OK_DL_CORE_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info.type = type; info.directory_ptr = idx; info_path = settings->directory.libretro; @@ -418,7 +419,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_CORE; break; case ACTION_OK_DL_CONTENT_COLLECTION_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_SELECT_COLLECTION; info.type = type; info.directory_ptr = idx; info_path = settings->directory.playlist; @@ -426,7 +427,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION; break; case ACTION_OK_DL_RDB_ENTRY: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join_delim(tmp, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RDB_ENTRY_DETAIL), path, '|', sizeof(tmp)); @@ -500,7 +501,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_DATABASE_MANAGER_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join(tmp, settings->path.content_database, path, sizeof(tmp)); @@ -513,7 +514,7 @@ int generic_action_ok_displaylist_push(const char *path, dl_type = DISPLAYLIST_GENERIC; break; case ACTION_OK_DL_CURSOR_MANAGER_LIST: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; fill_pathname_join(tmp, settings->directory.cursor, path, sizeof(tmp)); @@ -1424,6 +1425,18 @@ static int generic_action_ok(const char *path, command_event(CMD_EVENT_RESUME, NULL); break; case ACTION_OK_SET_DIRECTORY: + flush_type = MENU_SETTINGS; + { + rarch_setting_t *setting = menu_setting_find(filebrowser_label); + + if (setting) + { + setting_set_with_string_representation( + setting, action_path); + ret = menu_setting_generic(setting, false); + } + } + break; case ACTION_OK_SET_PATH: flush_type = MENU_SETTINGS; { @@ -2700,7 +2713,6 @@ static int action_ok_shader_apply_changes(const char *path, static int action_ok_lookup_setting(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { - menu_displaylist_reset_filebrowser(); return menu_setting_set(type, label, MENU_ACTION_OK, false); } @@ -3106,11 +3118,21 @@ static int action_ok_scan_directory_list(const char *path, entry_idx, ACTION_OK_DL_SCAN_DIR_LIST); } +static int action_ok_push_random_dir(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + settings_t *settings = config_get_ptr(); + return generic_action_ok_displaylist_push(path, path, + msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + type, idx, + entry_idx, ACTION_OK_DL_CONTENT_LIST); +} + static int action_ok_push_downloads_dir(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { settings_t *settings = config_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; return generic_action_ok_displaylist_push(path, settings->directory.core_assets, msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), type, idx, @@ -3134,6 +3156,7 @@ int action_ok_push_generic_list(const char *path, int action_ok_push_filebrowser_list_dir_select(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { + strlcpy(filebrowser_label, label, sizeof(filebrowser_label)); return generic_action_ok_displaylist_push(path, NULL, label, type, idx, entry_idx, ACTION_OK_DL_FILE_BROWSER_SELECT_DIR); } @@ -3799,6 +3822,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; + case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: + BIND_ACTION_OK(cbs, action_ok_push_random_dir); + break; case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: BIND_ACTION_OK(cbs, action_ok_push_downloads_dir); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 445fe9e137..fe35b02170 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3200,15 +3200,7 @@ static int menu_displaylist_parse_options_remappings( return 0; } -enum filebrowser_enums -{ - FILEBROWSER_NONE = 0, - FILEBROWSER_SELECT_DIR, - FILEBROWSER_SCAN_DIR, - FILEBROWSER_SELECT_COLLECTION -}; - -static unsigned filebrowser_types = 0; +unsigned filebrowser_types = 0; static int menu_displaylist_parse_playlists( menu_displaylist_info_t *info, bool horizontal) @@ -3561,7 +3553,7 @@ static int menu_displaylist_parse_generic( true, settings->show_hidden_files, true, false); #ifdef HAVE_LIBRETRODB - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) menu_entries_prepend(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY), msg_hash_to_str(MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY), @@ -3569,7 +3561,7 @@ static int menu_displaylist_parse_generic( FILE_TYPE_SCAN_DIRECTORY, 0 ,0); #endif - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) menu_entries_prepend(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY), msg_hash_to_str(MENU_ENUM_LABEL_USE_THIS_DIRECTORY), @@ -3641,9 +3633,9 @@ static int menu_displaylist_parse_generic( if (!is_dir) { - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) continue; - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) continue; } @@ -3653,7 +3645,7 @@ static int menu_displaylist_parse_generic( if (*info->path && !path_is_compressed) path = path_basename(path); - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION)) + if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION) { if (is_dir) file_type = FILE_TYPE_DIRECTORY; @@ -3738,9 +3730,9 @@ static int menu_displaylist_parse_generic( } /* We don't want to show 'filter by extension' for this. */ - if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR)) + if (filebrowser_types == FILEBROWSER_SELECT_DIR) goto end; - if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR)) + if (filebrowser_types == FILEBROWSER_SCAN_DIR) goto end; if (!extensions_honored) @@ -3926,8 +3918,7 @@ static bool menu_displaylist_push_internal( } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MUSIC_TAB))) { - - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3942,7 +3933,7 @@ static bool menu_displaylist_push_internal( } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_TAB))) { - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3958,7 +3949,7 @@ static bool menu_displaylist_push_internal( else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_IMAGES_TAB))) { - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -3993,7 +3984,7 @@ static bool menu_displaylist_push_internal( { settings_t *settings = config_get_ptr(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type = 42; strlcpy(info->exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), @@ -4082,11 +4073,6 @@ static bool menu_displaylist_push(menu_displaylist_ctx_entry_t *entry) return true; } -void menu_displaylist_reset_filebrowser(void) -{ - BIT32_CLEAR_ALL(filebrowser_types); -} - static void menu_displaylist_parse_playlist_history( menu_handle_t *menu, menu_displaylist_info_t *info, @@ -4264,24 +4250,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; } - switch (type) - { - case DISPLAYLIST_FILE_BROWSER_SCAN_DIR: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SCAN_DIR); - break; - case DISPLAYLIST_FILE_BROWSER_SELECT_DIR: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SELECT_DIR); - break; - case DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION: - menu_displaylist_reset_filebrowser(); - BIT32_SET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION); - break; - default: - break; - } - switch (type) { case DISPLAYLIST_NONE: @@ -5552,6 +5520,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_refresh = true; break; case DISPLAYLIST_LOAD_CONTENT_LIST: + if (frontend_driver_parse_drive_list(info->list) != 0) + menu_entries_append_enum(info->list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); + menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), @@ -6063,7 +6037,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_push = true; break; case DISPLAYLIST_DATABASES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_RDB; strlcpy(info->exts, file_path_str(FILE_PATH_RDB_EXTENSION), @@ -6102,7 +6076,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_push = true; break; case DISPLAYLIST_DATABASE_CURSORS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CURSOR; strlcpy(info->exts, "dbc", sizeof(info->exts)); strlcpy(info->path, settings->directory.cursor, sizeof(info->path)); @@ -6113,14 +6087,14 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) ext_name[0] = '\0'; - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_PLAIN; if (frontend_driver_get_core_extension(ext_name, sizeof(ext_name))) strlcpy(info->exts, ext_name, sizeof(info->exts)); } break; case DISPLAYLIST_CONFIG_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CONFIG; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; @@ -6131,7 +6105,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) (void)attr; - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_SHADER_PRESET; #ifdef HAVE_CG @@ -6152,7 +6126,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) union string_list_elem_attr attr = {0}; struct string_list *str_list = string_list_new(); - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_SHADER; (void)attr; @@ -6171,12 +6145,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } break; case DISPLAYLIST_VIDEO_FILTERS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_VIDEOFILTER; strlcpy(info->exts, "filt", sizeof(info->exts)); break; case DISPLAYLIST_IMAGES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_IMAGE; { union string_list_elem_attr attr = {0}; @@ -6200,37 +6174,37 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) } break; case DISPLAYLIST_AUDIO_FILTERS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_AUDIOFILTER; strlcpy(info->exts, "dsp", sizeof(info->exts)); break; case DISPLAYLIST_CHEAT_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_CHEAT; strlcpy(info->exts, "cht", sizeof(info->exts)); break; case DISPLAYLIST_CONTENT_HISTORY: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_PLAIN; strlcpy(info->exts, "lpl", sizeof(info->exts)); break; case DISPLAYLIST_FONTS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_FONT; strlcpy(info->exts, "ttf", sizeof(info->exts)); break; case DISPLAYLIST_OVERLAYS: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_OVERLAY; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; case DISPLAYLIST_RECORD_CONFIG_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_RECORD_CONFIG; strlcpy(info->exts, "cfg", sizeof(info->exts)); break; case DISPLAYLIST_REMAP_FILES: - menu_displaylist_reset_filebrowser(); + filebrowser_types = FILEBROWSER_NONE; info->type_default = FILE_TYPE_REMAP; strlcpy(info->exts, "rmp", sizeof(info->exts)); break; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index d03324acea..dfd2de0d26 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -159,6 +159,14 @@ enum menu_displaylist_ctl_state DISPLAYLIST_PENDING_CLEAR }; +enum filebrowser_enums +{ + FILEBROWSER_NONE = 0, + FILEBROWSER_SELECT_DIR, + FILEBROWSER_SCAN_DIR, + FILEBROWSER_SELECT_COLLECTION +}; + typedef struct menu_displaylist_info { bool need_sort; @@ -205,6 +213,8 @@ void menu_displaylist_reset_filebrowser(void); bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data); +extern unsigned filebrowser_types; + RETRO_END_DECLS #endif diff --git a/msg_hash.h b/msg_hash.h index 7cf689f997..d39f31f06c 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -833,6 +833,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST, MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_LIST, + MENU_LABEL(FILE_DETECT_CORE_LIST_PUSH_DIR), MENU_LABEL(DOWNLOADED_FILE_DETECT_CORE_LIST), MENU_ENUM_LABEL_VALUE_SEARCH, From d7a082e0053e3c00dc294b56fa090b141be64c44 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:06:28 +0100 Subject: [PATCH 17/36] Rename 'Select File' to 'Favorites' --- intl/msg_hash_chs.c | 4 ++-- intl/msg_hash_de.h | 4 ++-- intl/msg_hash_eo.h | 4 ++-- intl/msg_hash_es.c | 4 ++-- intl/msg_hash_fr.h | 4 ++-- intl/msg_hash_it.c | 4 ++-- intl/msg_hash_ja.h | 4 ++-- intl/msg_hash_lbl.h | 4 ++-- intl/msg_hash_nl.h | 4 ++-- intl/msg_hash_pl.c | 2 +- intl/msg_hash_pt.c | 4 ++-- intl/msg_hash_ru.h | 4 ++-- intl/msg_hash_us.h | 4 ++-- intl/msg_hash_vn.c | 4 ++-- menu/cbs/menu_cbs_deferred_push.c | 2 +- menu/cbs/menu_cbs_get_value.c | 2 +- menu/cbs/menu_cbs_ok.c | 14 +++++++------- menu/cbs/menu_cbs_title.c | 2 +- menu/drivers/materialui.c | 6 +++--- menu/drivers/xmb.c | 2 +- menu/menu_displaylist.c | 11 ++++++----- msg_hash.h | 3 ++- 22 files changed, 49 insertions(+), 47 deletions(-) diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c index 3071107e6b..fd0ef1df5b 100644 --- a/intl/msg_hash_chs.c +++ b/intl/msg_hash_chs.c @@ -2116,8 +2116,8 @@ const char *msg_hash_to_str_chs(enum msg_hash_enums msg) return "选择数据库"; case MENU_ENUM_LABEL_VALUE_DELETE_ENTRY: return "移除"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "选择文件并探测核心"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "选择文件并探测核心"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return "<游戏内容目录>"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 0f56a79ab8..f14d94adc9 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -146,8 +146,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER, "Datenbankmanager") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Von der Playlist löschen") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Lade Content") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Lesezeichen") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 7d59beaea6..6ebaf86f80 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 597ec252f8..478c410e32 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -1653,8 +1653,8 @@ const char *msg_hash_to_str_es(enum msg_hash_enums msg) return "Proporción personalizada"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Gestor de bases de datos"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Seleccionar archivo y detectar núcleo"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Seleccionar archivo y detectar núcleo"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return "(Carpeta de contenido)"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 72ae42d881..107d9c1148 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -480,8 +480,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Via les fichiers") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Via les fichiers") /* TODO/FIXME - update */ MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index ea90c6ac77..480fad296c 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -1611,8 +1611,8 @@ const char *msg_hash_to_str_it(enum msg_hash_enums msg) return "Abilita riavvolgi"; case MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST: return "Collezione"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Seleziona il file ed intercetta il core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Seleziona il file ed intercetta il core"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST: return "Scarica su directories"; case MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY: diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 1661a6df37..26cc96c72d 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -498,8 +498,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "削除") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "ファイルを選択とコア検出") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "ファイルを選択とコア検出") /* TODO/FIXME - update */ MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 7d8fd98f7d..58bb2b135f 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -307,8 +307,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST, "deferred_wifi_settings_list") MSG_HASH(MENU_ENUM_LABEL_DELETE_ENTRY, "delete_entry") -MSG_HASH(MENU_ENUM_LABEL_DETECT_CORE_LIST, - "detect_core_list") +MSG_HASH(MENU_ENUM_LABEL_FAVORITES, + "favorites") MSG_HASH(MENU_ENUM_LABEL_DIRECTORY_SETTINGS, "directory_settings") MSG_HASH(MENU_ENUM_LABEL_DISK_CYCLE_TRAY_STATUS, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 121122af4d..ba2abb1167 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selectie") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Verwijderen") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Selecteer Bestand") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorieten") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index 60da28dd16..bee8cf1bc7 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -176,7 +176,7 @@ const char *msg_hash_to_str_pl(enum msg_hash_enums msg) return "Włąsny współczynnik"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Menedżer bazy danych"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_VALUE_FAVORITES: /* TODO/FIXME - update */ return "Wybierz plik i dopasuj rdzeń"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index d3d895f85f..a720feee37 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -1094,8 +1094,8 @@ const char *msg_hash_to_str_pt(enum msg_hash_enums msg) return "Relação de Aspecto Personalizada"; case MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER: return "Gerenciador de Databases"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Selecionar Arquivo e Detectar Core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Selecionar Arquivo e Detectar Core"; /* TODO/FIXME - update */ case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index a98010cde3..413c096a39 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -484,8 +484,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index f5ec34fa09..b785717911 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -488,8 +488,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION, "Database Selection") MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY, "Remove") -MSG_HASH(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST, - "Select File") +MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES, + "Favorites") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, "") MSG_HASH(MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c index 12daf54ef0..30915360e2 100644 --- a/intl/msg_hash_vn.c +++ b/intl/msg_hash_vn.c @@ -2162,8 +2162,8 @@ const char *msg_hash_to_str_vn(enum msg_hash_enums msg) return "Database Selection"; case MENU_ENUM_LABEL_VALUE_DELETE_ENTRY: return "Remove"; - case MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST: - return "Select File And Detect Core"; + case MENU_ENUM_LABEL_VALUE_FAVORITES: + return "Favorites"; case MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT: return ""; case MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT: diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index e7e397d4f1..a8b905b690 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -1118,7 +1118,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_settings_list); break; case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_detect_core_list); break; default: diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 361d88808b..6b547c8a8d 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1703,7 +1703,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( case MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST: case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_CORE_OPTIONS: case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS: case MENU_ENUM_LABEL_SHADER_OPTIONS: diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index e882c92855..faf3c69753 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -3123,7 +3123,7 @@ static int action_ok_push_random_dir(const char *path, { settings_t *settings = config_get_ptr(); return generic_action_ok_displaylist_push(path, path, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), type, idx, entry_idx, ACTION_OK_DL_CONTENT_LIST); } @@ -3134,7 +3134,7 @@ static int action_ok_push_downloads_dir(const char *path, settings_t *settings = config_get_ptr(); filebrowser_types = FILEBROWSER_NONE; return generic_action_ok_displaylist_push(path, settings->directory.core_assets, - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), type, idx, entry_idx, ACTION_OK_DL_CONTENT_LIST); } @@ -3819,7 +3819,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, BIND_ACTION_OK(cbs, action_ok_scan_directory_list); break; case MENU_ENUM_LABEL_SCAN_FILE: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: @@ -4029,7 +4029,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, break; case MENU_LABEL_SCAN_FILE: case MENU_LABEL_SCAN_DIRECTORY: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_push_content_list); break; case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: @@ -4164,7 +4164,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, case FILE_TYPE_CARCHIVE: switch (menu_label_hash) { - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_OK(cbs, action_ok_compressed_archive_push_detect_core); break; case MENU_LABEL_SCAN_FILE: @@ -4276,7 +4276,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, break; #endif case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE: #ifdef HAVE_COMPRESSION if (type == FILE_TYPE_IN_CARCHIVE) @@ -4307,7 +4307,7 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, break; #endif case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: case MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE: #ifdef HAVE_COMPRESSION if (type == FILE_TYPE_IN_CARCHIVE) diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 67bc323dbb..83736870f4 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -229,7 +229,7 @@ default_title_generic_macro(action_get_title_list_rdb_entry_database_info,MENU_E static int action_get_title_default(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { - snprintf(s, len, "%s %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), path); + snprintf(s, len, "%s %s", "Select File", path); return 0; } diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 888b7e50b7..0258810844 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1676,9 +1676,9 @@ static int mui_list_push(void *data, void *userdata, menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), + MENU_ENUM_LABEL_FAVORITES, MENU_SETTING_ACTION, 0, 0); core_info_get_list(&list); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7e883ade53..7dc829aa02 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1867,7 +1867,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE: case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME: return xmb->textures.list[XMB_TEXTURE_SAVESTATE]; - case MENU_ENUM_LABEL_DETECT_CORE_LIST: + case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: return xmb->textures.list[XMB_TEXTURE_FOLDER]; default: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index fe35b02170..15d29cbc6e 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5526,11 +5526,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, MENU_SETTING_ACTION, 0, 0); - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_DETECT_CORE_LIST), - MENU_ENUM_LABEL_DETECT_CORE_LIST, - MENU_SETTING_ACTION, 0, 0); + if (!string_is_empty(settings->directory.menu_content)) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_FAVORITES), + msg_hash_to_str(MENU_ENUM_LABEL_FAVORITES), + MENU_ENUM_LABEL_FAVORITES, + MENU_SETTING_ACTION, 0, 0); if (core_info_list_num_info_files(list)) { diff --git a/msg_hash.h b/msg_hash.h index d39f31f06c..77117e1819 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1171,7 +1171,7 @@ enum msg_hash_enums MENU_LABEL(DETECT_CORE_LIST_OK_CURRENT_CORE), MENU_LABEL(DETECT_CORE_LIST_OK), - MENU_LABEL(DETECT_CORE_LIST), + MENU_LABEL(FAVORITES), MENU_LABEL(START_CORE), MENU_LABEL(CORE_UPDATER_LIST), MENU_LABEL(CORE_UPDATER_AUTO_EXTRACT_ARCHIVE), @@ -1695,6 +1695,7 @@ enum msg_hash_enums #define MENU_LABEL_RDB_ENTRY_RELEASE_YEAR 0x14c9c6bfU #define MENU_LABEL_RDB_ENTRY_MAX_USERS 0xfae91cc4U +#define MENU_LABEL_FAVORITES 0x67325138U #define MENU_LABEL_DETECT_CORE_LIST 0xaa07c341U #define MENU_LABEL_DETECT_CORE_LIST_OK 0xabba2a7aU #define MENU_LABEL_CORE_LIST 0xa22bb14dU From c2e679bce43291bcdefc97f9cd7e1b837a3489c9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:26:54 +0100 Subject: [PATCH 18/36] Fix deferred callback for Favorites --- menu/cbs/menu_cbs_deferred_push.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index a8b905b690..9423b2a173 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -1348,7 +1348,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_content_history_path); break; case MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: - case MENU_LABEL_DETECT_CORE_LIST: + case MENU_LABEL_FAVORITES: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_detect_core_list); break; default: From ecf60f0ef376a0d948e9e5415bffc4e1ea6ec122 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 13 Dec 2016 01:32:41 +0100 Subject: [PATCH 19/36] (OSX) Buildfixes --- frontend/drivers/platform_darwin.m | 11 ++++++++--- menu/cbs/menu_cbs_deferred_push.c | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 07b113b557..88f1d2bedd 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -640,9 +640,14 @@ static int frontend_darwin_parse_drive_list(void *data) CFSearchPathForDirectoriesInDomains(CFDocumentDirectory, CFUserDomainMask, 1, home_dir_buf, sizeof(home_dir_buf)); menu_entries_append_enum(list, - home_dir_buf, "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); - menu_entries_append_enum(list, "/", "", - MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + home_dir_buf, + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); + menu_entries_append_enum(list, "/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); ret = 0; diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 9423b2a173..47e2f4c4e9 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -568,7 +568,7 @@ static int general_push(menu_displaylist_info_t *info, } break; case PUSH_DETECT_CORE_LIST: - if (!string_is_empty(list->all_ext)) + if (list && !string_is_empty(list->all_ext)) strlcpy(info->exts, list->all_ext, sizeof(info->exts)); else if (system_menu->valid_extensions) { From 32e230e98c49538af6f7ba5586998ed15cbac63d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:37:37 +0100 Subject: [PATCH 20/36] (win32) Update parse_drive_list --- frontend/drivers/platform_win32.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 2d0b934010..4b69b5ff03 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -236,7 +236,10 @@ static int frontend_win32_parse_drive_list(void *data) drive[0] = 'A' + i; if (drives & (1 << i)) menu_entries_append_enum(list, - drive, "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + drive, + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); } #endif From ba08a88643cfb6189ad0535086f0f89597be8f7f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:43:18 +0100 Subject: [PATCH 21/36] (platform) Updates --- frontend/drivers/platform_ps3.c | 60 ++++++++++++++++++++++++------- frontend/drivers/platform_psp.c | 30 ++++++++++++---- frontend/drivers/platform_wiiu.c | 6 ++-- frontend/drivers/platform_xdk.cpp | 30 ++++++++++++---- 4 files changed, 100 insertions(+), 26 deletions(-) diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index e735f16a41..8e318b1e41 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -497,29 +497,65 @@ static int frontend_ps3_parse_drive_list(void *data) file_list_t *list = (file_list_t*)data; menu_entries_append_enum(list, - "/app_home/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/app_home/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_hdd0/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_hdd0/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_hdd1/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_hdd1/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_bdvd/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_bdvd/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/host_root/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/host_root/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb000/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb000/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb001/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb001/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb002/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb002/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb003/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb003/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb004/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb004/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb005/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb005/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "/dev_usb006/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "/dev_usb006/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif return 0; diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index 31c1e28561..9321651336 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -468,18 +468,36 @@ static int frontend_psp_parse_drive_list(void *data) #ifdef VITA menu_entries_append_enum(list, - "app0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "app0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "ur0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "ur0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "ux0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "ux0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #else menu_entries_append_enum(list, - "ms0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "ms0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "ef0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "ef0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "host0:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "host0:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif #endif diff --git a/frontend/drivers/platform_wiiu.c b/frontend/drivers/platform_wiiu.c index 85662c5efe..f4e886c9ad 100644 --- a/frontend/drivers/platform_wiiu.c +++ b/frontend/drivers/platform_wiiu.c @@ -138,8 +138,10 @@ static int frontend_wiiu_parse_drive_list(void *data) if (!list) return -1; - menu_entries_append_enum(list, - WIIU_SD_PATH, "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + menu_entries_append_enum(list, WIIU_SD_PATH, + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); return 0; } diff --git a/frontend/drivers/platform_xdk.cpp b/frontend/drivers/platform_xdk.cpp index ce96775ab7..8d996136b3 100644 --- a/frontend/drivers/platform_xdk.cpp +++ b/frontend/drivers/platform_xdk.cpp @@ -1373,18 +1373,36 @@ static int frontend_xdk_parse_drive_list(void *data) #if defined(_XBOX1) menu_entries_append_enum(list, - "C:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "C:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "D:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "D:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "E:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "E:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "F:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "F:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "G:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "G:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #elif defined(_XBOX360) menu_entries_append_enum(list, - "game:", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "game:", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif #endif From 296b52744d5cc833d30b50ac769a2db028a88862 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 01:45:01 +0100 Subject: [PATCH 22/36] Update remaining platform drivers --- frontend/drivers/platform_ctr.c | 5 ++++- frontend/drivers/platform_gx.c | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index ed2cbbbcbb..ed804786a9 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -390,7 +390,10 @@ static int frontend_ctr_parse_drive_list(void *data) return -1; menu_entries_append_enum(list, - "sdmc:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "sdmc:/", + msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif return 0; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index a6f6edd8e0..0f17afa3bd 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -472,14 +472,26 @@ static int frontend_gx_parse_drive_list(void *data) file_list_t *list = (file_list_t*)data; #ifdef HW_RVL menu_entries_append_enum(list, - "sd:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "sd:/", + msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "usb:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "usb:/", + msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif menu_entries_append_enum(list, - "carda:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "carda:/", + msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); menu_entries_append_enum(list, - "cardb:/", "", MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0); + "cardb:/", + msg_hash_to_str(MSG_EXTERNAL_APPLICATION_DIR), + MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, + MENU_SETTING_ACTION, 0, 0); #endif return 0; From 18e15a822d8d94115a9c89054fc0983b1381a82b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 03:44:18 +0100 Subject: [PATCH 23/36] Make sure that filebrowser_type gets properly 'reset' before entering 'Load Content' --- menu/cbs/menu_cbs_ok.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index faf3c69753..1130f10541 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1829,6 +1829,7 @@ static int action_ok_remap_file_save_game(const char *path, int action_ok_path_use_directory(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { + filebrowser_types = FILEBROWSER_NONE; return generic_action_ok(NULL, label, type, idx, entry_idx, ACTION_OK_SET_DIRECTORY, MSG_UNKNOWN); } @@ -3164,6 +3165,7 @@ int action_ok_push_filebrowser_list_dir_select(const char *path, static int action_ok_push_default(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { + filebrowser_types = FILEBROWSER_NONE; return generic_action_ok_displaylist_push(path, NULL, label, type, idx, entry_idx, ACTION_OK_DL_PUSH_DEFAULT); } From c8273cd14a92b1fd4f7ebd9629af6112d71cdb90 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 03:55:28 +0100 Subject: [PATCH 24/36] (XMB) Use database icon for drives inside Load Content --- menu/drivers/xmb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7dc829aa02..0402ca32a8 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1870,6 +1870,8 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_FAVORITES: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: return xmb->textures.list[XMB_TEXTURE_FOLDER]; + case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR: + return xmb->textures.list[XMB_TEXTURE_RDB]; default: break; } From d8740c51a6f6de6f24c7b372673797832692e1c0 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 05:27:46 +0100 Subject: [PATCH 25/36] (menu_displaylist.c) Cleanup --- menu/menu_displaylist.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 15d29cbc6e..4deb3d24fc 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3299,12 +3299,8 @@ static int menu_displaylist_parse_playlists( string_list_free(str_list); - if (items_found == 0) - { - if (horizontal) - return 0; + if (items_found == 0 && !horizontal) goto no_playlists; - } return 0; From 5daaa8cc385a654edb81bca33125687f296665f6 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 05:30:43 +0100 Subject: [PATCH 26/36] (menu_displaylist.c) Cleanups --- menu/menu_displaylist.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 4deb3d24fc..ef0ec91a73 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3210,7 +3210,7 @@ static int menu_displaylist_parse_playlists( unsigned items_found = 0; settings_t *settings = config_get_ptr(); - if (!*info->path) + if (string_is_empty(info->path)) { if (frontend_driver_parse_drive_list(info->list) != 0) menu_entries_append_enum(info->list, "/", "", @@ -3324,7 +3324,7 @@ static int menu_displaylist_parse_cores( unsigned items_found = 0; settings_t *settings = config_get_ptr(); - if (!*info->path) + if (string_is_empty(info->path)) { if (frontend_driver_parse_drive_list(info->list) != 0) menu_entries_append_enum(info->list, "/", "", @@ -3414,7 +3414,7 @@ static int menu_displaylist_parse_cores( /* Need to preserve slash first time. */ path = str_list->elems[i].data; - if (*info->path) + if (!string_is_empty(info->path)) path = path_basename(path); #ifndef HAVE_DYNAMIC @@ -3523,7 +3523,7 @@ static int menu_displaylist_parse_generic( unsigned items_found = 0; settings_t *settings = config_get_ptr(); - if (!*info->path) + if (string_is_empty(info->path)) { if (frontend_driver_parse_drive_list(info->list) != 0) menu_entries_append_enum(info->list, "/", "", @@ -3638,7 +3638,7 @@ static int menu_displaylist_parse_generic( /* Need to preserve slash first time. */ path = str_list->elems[i].data; - if (*info->path && !path_is_compressed) + if (!string_is_empty(info->path) && !path_is_compressed) path = path_basename(path); if (filebrowser_types == FILEBROWSER_SELECT_COLLECTION) From 6c11374fb900817cb991c99bff16b3b03fc19987 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 05:36:03 +0100 Subject: [PATCH 27/36] (menu_displaylist.c) Cleanups --- menu/menu_displaylist.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index ef0ec91a73..df277a86c7 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3223,7 +3223,9 @@ static int menu_displaylist_parse_playlists( if (!str_list) { const char *str = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND); - (void)str; + + menu_entries_append_enum(info->list, str, "", + MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND, 0, 0, 0); return 0; } From 12cb854d4acb5acc3ae20d1d07be7125f64fc42d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 05:52:56 +0100 Subject: [PATCH 28/36] Revert "(menu_displaylist.c) Cleanups" This reverts commit 6c11374fb900817cb991c99bff16b3b03fc19987. --- menu/menu_displaylist.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index df277a86c7..ef0ec91a73 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3223,9 +3223,7 @@ static int menu_displaylist_parse_playlists( if (!str_list) { const char *str = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND); - - menu_entries_append_enum(info->list, str, "", - MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND, 0, 0, 0); + (void)str; return 0; } From d57083197ef9c8e72c59d4809b4d52c5afa458d0 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 06:32:46 +0100 Subject: [PATCH 29/36] (Load Content -> Collection) Already loaded core will appear in supported cores list as 'top core'/'current core'. --- intl/msg_hash_lbl.h | 2 ++ menu/cbs/menu_cbs_ok.c | 44 +++++++++++++++++++++++++++++++++++++++++ menu/menu_displaylist.c | 21 ++++++++++++++++---- msg_hash.h | 1 + 4 files changed, 64 insertions(+), 4 deletions(-) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 58bb2b135f..2c16baa047 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -349,6 +349,8 @@ MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_DETECTED, "file_browser_core_detected") MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, "file_browser_core_select_from_collection") +MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE, + "file_browser_core_select_from_collection_current_core") MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY, "file_browser_directory") MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_IMAGE, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 1130f10541..4ecf62f23c 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1889,6 +1889,47 @@ static int action_ok_core_deferred_set(const char *path, return menu_cbs_exit(); } +static int action_ok_core_deferred_set_current_core(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + size_t selection; + char core_display_name[PATH_MAX_LENGTH]; + const char *entry_path = NULL; + const char *entry_label = NULL; + const char *entry_crc32 = NULL; + const char *db_name = NULL; + playlist_t *playlist = NULL; + + core_display_name[0] = '\0'; + + if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) + return menu_cbs_exit(); + + menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist); + + retro_assert(playlist != NULL); + + core_info_get_name(path, core_display_name, sizeof(core_display_name)); + + idx = rdb_entry_start_game_selection_ptr; + + playlist_get_index(playlist, idx, + &entry_path, &entry_label, NULL, NULL, &entry_crc32, &db_name); + + playlist_update(playlist, idx, + entry_path, entry_label, + path , core_display_name, + entry_crc32, + db_name); + + playlist_write_file(playlist); + + menu_entries_pop_stack(&selection, 0, 1); + menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_SELECTION, &selection); + + return 0; +} + static int action_ok_deferred_list_stub(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -3643,6 +3684,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: BIND_ACTION_OK(cbs, action_ok_core_deferred_set); break; + case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE: + BIND_ACTION_OK(cbs, action_ok_core_deferred_set_current_core); + break; case MENU_ENUM_LABEL_START_CORE: BIND_ACTION_OK(cbs, action_ok_start_core); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index ef0ec91a73..af09b1b1bf 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -77,7 +77,9 @@ #include "../tasks/tasks_internal.h" static char new_path_entry[4096] = {0}; +static char new_lbl_entry[4096] = {0}; static char new_entry[4096] = {0}; +enum menu_displaylist_ctl_state new_type = 0; #ifdef HAVE_NETWORKING static void print_buf_lines(file_list_t *list, char *buf, @@ -3869,12 +3871,14 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info) { menu_entries_prepend(info->list, new_path_entry, - new_entry, - MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE, + new_lbl_entry, + new_type, FILE_TYPE_CORE, 0, 0); menu_entries_set_alt_at_offset(info->list, 0, new_entry); + new_type = 0; + new_lbl_entry[0] = '\0'; new_path_entry[0] = '\0'; new_entry[0] = '\0'; } @@ -5938,11 +5942,20 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) for (i = 0; i < cores_names_size; i++) { if ( !path_is_empty(RARCH_PATH_CORE) && - string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE)) - && type != DISPLAYLIST_CORES_COLLECTION_SUPPORTED) + string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))) { strlcpy(new_path_entry, cores_paths->elems[i].data, sizeof(new_path_entry)); snprintf(new_entry, sizeof(new_entry), "Current core (%s)", cores_names->elems[i].data); + if (type == DISPLAYLIST_CORES_COLLECTION_SUPPORTED) + { + new_lbl_entry[0] = '\0'; + new_type = MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE; + } + else + { + strlcpy(new_lbl_entry, cores_paths->elems[i].data, sizeof(new_lbl_entry)); + new_type = MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE; + } } else { diff --git a/msg_hash.h b/msg_hash.h index 77117e1819..bc1a0af2a0 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -674,6 +674,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_FILE_BROWSER_FONT, MENU_ENUM_LABEL_FILE_BROWSER_RDB, MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION, + MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE, MENU_ENUM_LABEL_FILE_BROWSER_CORE_DETECTED, MENU_ENUM_LABEL_FILE_BROWSER_IMAGE, MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER, From 1f726eff8499f3999c51354b9344f9e01703bcf4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 13 Dec 2016 16:13:38 +0100 Subject: [PATCH 30/36] Show driver setting labels again --- menu/cbs/menu_cbs_get_value.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 6b547c8a8d..6a4fcecf39 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1620,6 +1620,18 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( { switch (cbs->enum_idx) { + case MENU_ENUM_LABEL_VIDEO_DRIVER: + case MENU_ENUM_LABEL_AUDIO_DRIVER: + case MENU_ENUM_LABEL_INPUT_DRIVER: + case MENU_ENUM_LABEL_JOYPAD_DRIVER: + case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: + case MENU_ENUM_LABEL_RECORD_DRIVER: + case MENU_ENUM_LABEL_LOCATION_DRIVER: + case MENU_ENUM_LABEL_CAMERA_DRIVER: + case MENU_ENUM_LABEL_WIFI_DRIVER: + case MENU_ENUM_LABEL_MENU_DRIVER: + BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label); + break; case MENU_ENUM_LABEL_STATE_SLOT: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_state); From 502d3ffa3a9e9dcac3cc510b5584df1625c5c4c3 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 00:55:05 +0100 Subject: [PATCH 31/36] (core_info.c) Make code more robust --- core_info.c | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/core_info.c b/core_info.c index d6e98c8bf6..28b423c0f7 100644 --- a/core_info.c +++ b/core_info.c @@ -22,6 +22,8 @@ #include #include +#include + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -162,15 +164,15 @@ static void core_info_list_free(core_info_list_t *core_info_list) free(core_info_list); } -static config_file_t *core_info_list_iterate( +static bool core_info_list_iterate( + char *s, size_t len, struct string_list *contents, size_t i) { char info_path_base[PATH_MAX_LENGTH] = {0}; - char info_path[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - if (!contents->elems[i].data) - return NULL; + if (!contents || !contents->elems[i].data) + return false; fill_pathname_base_noext(info_path_base, contents->elems[i].data, sizeof(info_path_base)); @@ -185,12 +187,12 @@ static config_file_t *core_info_list_iterate( file_path_str(FILE_PATH_CORE_INFO_EXTENSION), sizeof(info_path_base)); - fill_pathname_join(info_path, + fill_pathname_join(s, (!string_is_empty(settings->path.libretro_info)) ? settings->path.libretro_info : settings->directory.libretro, - info_path_base, sizeof(info_path)); + info_path_base, len); - return config_file_new(info_path); + return true; } static core_info_list_t *core_info_list_new(void) @@ -224,12 +226,18 @@ static core_info_list_t *core_info_list_new(void) for (i = 0; i < contents->size; i++) { - config_file_t *conf = core_info_list_iterate(contents, i); + char info_path[PATH_MAX_LENGTH]; - if (conf) + info_path[0] = '\0'; + + if ( + core_info_list_iterate(info_path, sizeof(info_path), + contents, i) + && path_is_valid(info_path)) { - bool tmp_bool = false; - unsigned count = 0; + bool tmp_bool = false; + unsigned count = 0; + config_file_t *conf = config_file_new(info_path); config_get_string(conf, "display_name", &core_info[i].display_name); @@ -653,15 +661,19 @@ void core_info_get_name(const char *path, char *s, size_t len) for (i = 0; i < contents->size; i++) { - config_file_t *conf = NULL; + char info_path[PATH_MAX_LENGTH]; + + info_path[0] = '\0'; if (!string_is_equal(contents->elems[i].data, path)) continue; - conf = core_info_list_iterate(contents, i); - - if (conf) + if (core_info_list_iterate(info_path, + sizeof(info_path), contents, i) + && path_is_valid(info_path)) { + config_file_t *conf = config_file_new(info_path); + config_get_string(conf, "corename", &core_info[i].core_name); core_info[i].config_data = (void*)conf; From c8b1aacefe9e8faf6af26d6bd5acf18cfaa699e4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 01:07:48 +0100 Subject: [PATCH 32/36] Optimize core_info_get_name --- core_info.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/core_info.c b/core_info.c index 28b423c0f7..38dccdc448 100644 --- a/core_info.c +++ b/core_info.c @@ -633,8 +633,6 @@ void core_info_list_get_supported_cores(core_info_list_t *core_info_list, void core_info_get_name(const char *path, char *s, size_t len) { size_t i; - core_info_t *core_info = NULL; - core_info_list_t *core_info_list = NULL; struct string_list *contents = NULL; settings_t *settings = config_get_ptr(); @@ -648,47 +646,35 @@ void core_info_get_name(const char *path, char *s, size_t len) if (!contents) return; - core_info_list = (core_info_list_t*)calloc(1, sizeof(*core_info_list)); - if (!core_info_list) - goto error; - - core_info = (core_info_t*)calloc(contents->size, sizeof(*core_info)); - if (!core_info) - goto error; - - core_info_list->list = core_info; - core_info_list->count = contents->size; - for (i = 0; i < contents->size; i++) { char info_path[PATH_MAX_LENGTH]; + config_file_t *conf = NULL; + char *new_core_name = NULL; info_path[0] = '\0'; if (!string_is_equal(contents->elems[i].data, path)) continue; - if (core_info_list_iterate(info_path, + if (!core_info_list_iterate(info_path, sizeof(info_path), contents, i) && path_is_valid(info_path)) - { - config_file_t *conf = config_file_new(info_path); + continue; - config_get_string(conf, "corename", - &core_info[i].core_name); - core_info[i].config_data = (void*)conf; - } + conf = config_file_new(info_path); - core_info[i].path = strdup(contents->elems[i].data); + config_get_string(conf, "corename", + &new_core_name); + strlcpy(s, new_core_name, len); - strlcpy(s, core_info[i].core_name, len); + config_file_free(conf); + break; } -error: if (contents) dir_list_free(contents); contents = NULL; - core_info_list_free(core_info_list); } size_t core_info_list_num_info_files(core_info_list_t *core_info_list) From fb5c58d65fa45babe81d7ca298f7de2482b26a29 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 01:08:32 +0100 Subject: [PATCH 33/36] Simplify core_info_get_name --- core_info.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/core_info.c b/core_info.c index 38dccdc448..870d8cb7fe 100644 --- a/core_info.c +++ b/core_info.c @@ -633,13 +633,8 @@ void core_info_list_get_supported_cores(core_info_list_t *core_info_list, void core_info_get_name(const char *path, char *s, size_t len) { size_t i; - struct string_list *contents = NULL; settings_t *settings = config_get_ptr(); - - if (!settings) - return; - - contents = dir_list_new_special( + struct string_list *contents = dir_list_new_special( settings->directory.libretro, DIR_LIST_CORES, NULL); From c501ee6057c2669091e4fb169f1522bb43384e01 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 01:16:10 +0100 Subject: [PATCH 34/36] (core_info.c) Cleanups --- core_info.c | 48 ++++++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/core_info.c b/core_info.c index 870d8cb7fe..e0c3f45df2 100644 --- a/core_info.c +++ b/core_info.c @@ -221,7 +221,7 @@ static core_info_list_t *core_info_list_new(void) if (!core_info) goto error; - core_info_list->list = core_info; + core_info_list->list = core_info; core_info_list->count = contents->size; for (i = 0; i < contents->size; i++) @@ -692,10 +692,8 @@ size_t core_info_list_num_info_files(core_info_list_t *core_info_list) bool core_info_unsupported_content_path(const char *path) { size_t i; - const char *delim; const char *archive_path = NULL; - - delim = path_get_archive_delim(path); + const char *delim = path_get_archive_delim(path); if (delim) archive_path = delim - 1; @@ -720,9 +718,8 @@ bool core_info_unsupported_content_path(const char *path) for (i = 0; i < core_info_curr_list->count; i++) { const core_info_t *info = &core_info_curr_list->list[i]; - bool path_in_ext_list = string_list_find_elem(info->supported_extensions_list, path_get_extension(path)); - if (path_in_ext_list) + if (string_list_find_elem(info->supported_extensions_list, path_get_extension(path))) return false; } @@ -732,8 +729,8 @@ bool core_info_unsupported_content_path(const char *path) bool core_info_database_supports_content_path(const char *database_path, const char *path) { size_t i; - char *database; - const char *delim; + char *database = NULL; + const char *delim = NULL; const char *archive_path = NULL; if (!core_info_curr_list) @@ -756,31 +753,30 @@ bool core_info_database_supports_content_path(const char *database_path, const c { const core_info_t *info = &core_info_curr_list->list[i]; - if (string_list_find_elem(info->databases_list, database)) - { - if (string_list_find_elem(info->supported_extensions_list, "zip") || - string_list_find_elem(info->supported_extensions_list, "7z")) - { - free(database); - return false; - } - } + if (!string_list_find_elem(info->databases_list, database)) + continue; + + if ( !string_list_find_elem(info->supported_extensions_list, "zip") + && !string_list_find_elem(info->supported_extensions_list, "7z")) + continue; + + free(database); + return false; } } for (i = 0; i < core_info_curr_list->count; i++) { const core_info_t *info = &core_info_curr_list->list[i]; - bool path_in_ext_list = string_list_find_elem(info->supported_extensions_list, path_get_extension(path)); - if (path_in_ext_list) - { - if (string_list_find_elem(info->databases_list, database)) - { - free(database); - return true; - } - } + if (!string_list_find_elem(info->supported_extensions_list, path_get_extension(path))) + continue; + + if (!string_list_find_elem(info->databases_list, database)) + continue; + + free(database); + return true; } free(database); From bcccc272059200f55f255b884d66dfd1e5c8ea64 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 01:23:08 +0100 Subject: [PATCH 35/36] (core_info.c) CLeanups --- core_info.c | 58 +++++++++++++++++------------------------ menu/menu_displaylist.c | 6 ++++- 2 files changed, 29 insertions(+), 35 deletions(-) diff --git a/core_info.c b/core_info.c index e0c3f45df2..c253de81cc 100644 --- a/core_info.c +++ b/core_info.c @@ -709,9 +709,11 @@ bool core_info_unsupported_content_path(const char *path) { const core_info_t *info = &core_info_curr_list->list[i]; - if (string_list_find_elem(info->supported_extensions_list, "zip") || - string_list_find_elem(info->supported_extensions_list, "7z")) - return false; + if ( !string_list_find_elem(info->supported_extensions_list, "zip") + && !string_list_find_elem(info->supported_extensions_list, "7z")) + continue; + + return false; } } @@ -794,12 +796,15 @@ bool core_info_list_get_display_name(core_info_list_t *core_info_list, for (i = 0; i < core_info_list->count; i++) { const core_info_t *info = &core_info_list->list[i]; - if (string_is_equal(path_basename(info->path), path_basename(path)) - && info->display_name) - { - strlcpy(s, info->display_name, len); - return true; - } + + if (!string_is_equal(path_basename(info->path), path_basename(path))) + continue; + + if (!info->display_name) + continue; + + strlcpy(s, info->display_name, len); + return true; } return false; @@ -807,40 +812,25 @@ bool core_info_list_get_display_name(core_info_list_t *core_info_list, bool core_info_get_display_name(const char *path, char *s, size_t len) { - char *core_name = NULL; + bool ret = true; char *display_name = NULL; - config_file_t *conf = NULL; - - if (!path_file_exists(path)) - return false; - - conf = config_file_new(path); + config_file_t *conf = config_file_new(path); if (!conf) - return false; - - config_get_string(conf, "corename", - &core_name); - config_get_string(conf, "display_name", - &display_name); - - if (!core_name || !display_name) + { + ret = false; goto error; + } - config_file_free(conf); + config_get_string(conf, "display_name", &display_name); - snprintf(s, len,"%s",display_name); - - free(core_name); - free(display_name); - - return true; + if (display_name) + snprintf(s, len, "%s", display_name); error: config_file_free(conf); - if (core_name) - free(core_name); if (display_name) free(display_name); - return false; + + return ret; } diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index af09b1b1bf..d0900a5f39 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -181,16 +181,20 @@ static void print_buf_lines(file_list_t *list, char *buf, path_remove_extension(core_path); last = (char*)strrchr(core_path, '_'); + if (!string_is_empty(last)) { if (!string_is_equal(last, "_libretro")) *last = '\0'; } + strlcat(core_path, file_path_str(FILE_PATH_CORE_INFO_EXTENSION), sizeof(core_path)); - if (core_info_get_display_name( + if ( + path_file_exists(core_path) + && core_info_get_display_name( core_path, display_name, sizeof(display_name))) menu_entries_set_alt_at_offset(list, j, display_name); } From f4d7b2eaaa5da6a928f65d6fa2992963eb7eb7c5 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 14 Dec 2016 11:47:04 +0100 Subject: [PATCH 36/36] (core_info.c) Cleanups --- core_info.c | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/core_info.c b/core_info.c index c253de81cc..7db0c0c9ad 100644 --- a/core_info.c +++ b/core_info.c @@ -89,10 +89,7 @@ static void core_info_list_resolve_all_firmware( core_info_t *info = (core_info_t*)&core_info_list->list[i]; config_file_t *config = (config_file_t*)info->config_data; - if (!config) - continue; - - if (!config_get_uint(config, "firmware_count", &count)) + if (!config || !config_get_uint(config, "firmware_count", &count)) continue; info->firmware = (core_info_firmware_t*) @@ -103,9 +100,11 @@ static void core_info_list_resolve_all_firmware( for (c = 0; c < count; c++) { - char path_key[64] = {0}; - char desc_key[64] = {0}; - char opt_key[64] = {0}; + char path_key[64]; + char desc_key[64]; + char opt_key[64]; + + path_key[0] = desc_key[0] = opt_key[0] = '\0'; snprintf(path_key, sizeof(path_key), "firmware%u_path", c); snprintf(desc_key, sizeof(desc_key), "firmware%u_desc", c); @@ -168,17 +167,20 @@ static bool core_info_list_iterate( char *s, size_t len, struct string_list *contents, size_t i) { - char info_path_base[PATH_MAX_LENGTH] = {0}; + char info_path_base[PATH_MAX_LENGTH]; + char *substr = NULL; settings_t *settings = config_get_ptr(); if (!contents || !contents->elems[i].data) return false; + info_path_base[0] = '\0'; + fill_pathname_base_noext(info_path_base, contents->elems[i].data, sizeof(info_path_base)); #if defined(RARCH_MOBILE) || (defined(RARCH_CONSOLE) && !defined(PSP) && !defined(_3DS) && !defined(VITA)) - char *substr = strrchr(info_path_base, '_'); + substr = strrchr(info_path_base, '_'); if (substr) *substr = '\0'; #endif @@ -195,20 +197,13 @@ static bool core_info_list_iterate( return true; } -static core_info_list_t *core_info_list_new(void) +static core_info_list_t *core_info_list_new(const char *path) { size_t i; core_info_t *core_info = NULL; core_info_list_t *core_info_list = NULL; - struct string_list *contents = NULL; - settings_t *settings = config_get_ptr(); - - if (!settings) - return NULL; - - contents = dir_list_new_special( - settings->directory.libretro, - DIR_LIST_CORES, NULL); + struct string_list *contents = dir_list_new_special( + path, DIR_LIST_CORES, NULL); if (!contents) return NULL; @@ -411,20 +406,22 @@ static bool core_info_list_update_missing_firmware_internal( const char *systemdir) { size_t i; - char path[PATH_MAX_LENGTH] = {0}; + char path[PATH_MAX_LENGTH]; core_info_t *info = NULL; if (!core_info_list || !core) return false; - info = core_info_find_internal(core_info_list, core); + path[0] = '\0'; + info = core_info_find_internal(core_info_list, core); if (!info) return false; + runloop_ctl(RUNLOOP_CTL_UNSET_MISSING_BIOS, NULL); for (i = 0; i < info->firmware_count; i++) { - if (!info->firmware[i].path) + if (string_is_empty(info->firmware[i].path)) continue; fill_pathname_join(path, systemdir, @@ -460,12 +457,13 @@ static void core_info_list_get_missing_firmware( const core_info_firmware_t **firmware, size_t *num_firmware) { size_t i; - char path[PATH_MAX_LENGTH] = {0}; + char path[PATH_MAX_LENGTH]; core_info_t *info = NULL; if (!core_info_list || !core) return; + path[0] = '\0'; *firmware = NULL; *num_firmware = 0; @@ -519,7 +517,10 @@ void core_info_deinit_list(void) bool core_info_init_list(void) { - core_info_curr_list = core_info_list_new(); + settings_t *settings = config_get_ptr(); + + if (settings) + core_info_curr_list = core_info_list_new(settings->directory.libretro); if (!core_info_curr_list) return false;