diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index c6ed9c64f1..56e6eed394 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -653,6 +653,10 @@ MSG_HASH(MENU_ENUM_LABEL_LOAD_ARCHIVE_DETECT_CORE, "load_archive_detect_core") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY, "load_recent") +MSG_HASH(MENU_ENUM_LABEL_LOAD_DISC, + "load_disc") +MSG_HASH(MENU_ENUM_LABEL_DUMP_DISC, + "dump_disc") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL, "load_special") MSG_HASH(MENU_ENUM_LABEL_LOAD_CONTENT_LIST, @@ -899,6 +903,8 @@ MSG_HASH(MENU_ENUM_LABEL_RDB_ENTRY_CRC32, "rdb_entry_crc32") MSG_HASH(MENU_ENUM_LABEL_RDB_ENTRY_DESCRIPTION, "rdb_entry_description") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST, + "deferred_dump_disc_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER, "deferred_cursor_manager_list_rdb_entry_developer") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PUBLISHER, diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 7bfed9f54d..bb1672911f 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -95,6 +95,7 @@ generic_deferred_push(deferred_push_content_collection_list, DISPLAYLIST_ generic_deferred_push(deferred_push_configurations_list, DISPLAYLIST_CONFIGURATIONS_LIST) generic_deferred_push(deferred_push_load_content_special, DISPLAYLIST_LOAD_CONTENT_LIST) generic_deferred_push(deferred_push_load_content_list, DISPLAYLIST_LOAD_CONTENT_LIST) +generic_deferred_push(deferred_push_dump_disk_list, DISPLAYLIST_DUMP_DISC) generic_deferred_push(deferred_push_information_list, DISPLAYLIST_INFORMATION_LIST) generic_deferred_push(deferred_push_information, DISPLAYLIST_INFORMATION) generic_deferred_push(deferred_archive_action_detect_core, DISPLAYLIST_ARCHIVE_ACTION_DETECT_CORE) @@ -639,7 +640,12 @@ static int menu_cbs_init_bind_deferred_push_compare_label( menu_file_list_cbs_t *cbs, const char *label, uint32_t label_hash) { - if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))) + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dump_disk_list); + return 0; + } + else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))) { BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_favorites_list); return 0; @@ -1369,6 +1375,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_settings_list); break; + case MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dump_disk_list); + break; case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: case MENU_ENUM_LABEL_FAVORITES: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_detect_core_list); @@ -1621,6 +1630,8 @@ int menu_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_default); + RARCH_LOG("Label: %s\n", label); + if (cbs->enum_idx != MENU_ENUM_LABEL_PLAYLIST_ENTRY && menu_cbs_init_bind_deferred_push_compare_label(cbs, label, label_hash) == 0) return 0; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index cc48c09d0d..8795ba0527 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -264,6 +264,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) return MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST; case ACTION_OK_DL_ACCOUNTS_TWITCH_LIST: return MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_TWITCH_LIST; + case ACTION_OK_DL_DUMP_DISC_LIST: + return MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST; case ACTION_OK_DL_ACCOUNTS_YOUTUBE_LIST: return MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_YOUTUBE_LIST; case ACTION_OK_DL_PLAYLIST_COLLECTION: @@ -940,6 +942,7 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_BROWSE_URL_LIST: case ACTION_OK_DL_MUSIC_LIST: case ACTION_OK_DL_IMAGES_LIST: + case ACTION_OK_DL_DUMP_DISC_LIST: action_ok_dl_lbl(action_ok_dl_to_enum(action_type), DISPLAYLIST_GENERIC); break; case ACTION_OK_DL_CONTENT_SETTINGS: @@ -4343,6 +4346,7 @@ default_action_ok_func(action_ok_push_user_binds_list, ACTION_OK_DL_USER_BINDS_L default_action_ok_func(action_ok_push_accounts_cheevos_list, ACTION_OK_DL_ACCOUNTS_CHEEVOS_LIST) default_action_ok_func(action_ok_push_accounts_youtube_list, ACTION_OK_DL_ACCOUNTS_YOUTUBE_LIST) default_action_ok_func(action_ok_push_accounts_twitch_list, ACTION_OK_DL_ACCOUNTS_TWITCH_LIST) +default_action_ok_func(action_ok_push_dump_disc_list, ACTION_OK_DL_DUMP_DISC_LIST) default_action_ok_func(action_ok_open_archive, ACTION_OK_DL_OPEN_ARCHIVE) default_action_ok_func(action_ok_rgui_menu_theme_preset, ACTION_OK_DL_RGUI_MENU_THEME_PRESET) default_action_ok_func(action_ok_pl_thumbnails_updater_list, ACTION_OK_DL_PL_THUMBNAILS_UPDATER_LIST) @@ -4809,13 +4813,6 @@ static int action_ok_push_load_disc(const char *path, return 0; } -static int action_ok_push_dump_disc(const char *path, - const char *label, unsigned type, size_t idx, size_t entry_idx) -{ - /* TODO/FIXME - fill in - call a task here */ - return 0; -} - int action_ok_push_filebrowser_list_dir_select(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -5923,7 +5920,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, BIND_ACTION_OK(cbs, action_ok_push_load_disc); break; case MENU_ENUM_LABEL_DUMP_DISC: - BIND_ACTION_OK(cbs, action_ok_push_dump_disc); + BIND_ACTION_OK(cbs, action_ok_push_dump_disc_list); break; case MENU_ENUM_LABEL_SHADER_OPTIONS: case MENU_ENUM_LABEL_CORE_OPTIONS: diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 1d7c9ed514..693debcb0a 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -123,6 +123,7 @@ enum ACTION_OK_DL_CORE_CONTENT_LIST, ACTION_OK_DL_CORE_CONTENT_DIRS_LIST, ACTION_OK_DL_CORE_CONTENT_DIRS_SUBDIR_LIST, + ACTION_OK_DL_DEFERRED_DUMP_DISC_LIST, ACTION_OK_DL_DEFERRED_CORE_LIST, ACTION_OK_DL_DEFERRED_CORE_LIST_SET, ACTION_OK_DL_MIXER_STREAM_SETTINGS_LIST, @@ -150,6 +151,7 @@ enum ACTION_OK_DL_DIRECTORY_SETTINGS_LIST, ACTION_OK_DL_PRIVACY_SETTINGS_LIST, ACTION_OK_DL_MIDI_SETTINGS_LIST, + ACTION_OK_DL_DUMP_DISC_LIST, ACTION_OK_DL_BROWSE_URL_START, ACTION_OK_DL_CONTENT_SETTINGS, ACTION_OK_DL_RGUI_MENU_THEME_PRESET diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 67e4ea2f6f..deb21e103c 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4881,6 +4881,23 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, switch (type) { + case DISPLAYLIST_DUMP_DISC: + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + count = 0; + + /* TODO/FIXME - remove 'count = 0;' and implement disk list */ + + if (count == 0) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY), + msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY), + MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY, + FILE_TYPE_NONE, 0, 0); + + info->need_push = true; + info->need_refresh = true; + info->need_clear = true; + break; #if defined(HAVE_LAKKA_SWITCH) || defined(HAVE_LIBNX) case DISPLAYLIST_SWITCH_CPU_PROFILE: { diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 387aed66c0..ceea79446a 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -115,6 +115,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CONTENT_HISTORY, DISPLAYLIST_IMAGES, DISPLAYLIST_FONTS, + DISPLAYLIST_DUMP_DISC, DISPLAYLIST_OVERLAYS, #ifdef HAVE_VIDEO_LAYOUT DISPLAYLIST_VIDEO_LAYOUT_PATH, diff --git a/msg_hash.h b/msg_hash.h index 34f3b570f7..fd40f34653 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1135,6 +1135,7 @@ enum msg_hash_enums MENU_LABEL(BROWSE_URL), MENU_LABEL(BROWSE_START), /* Deferred */ + MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST, MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST, MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL, MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION,