diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index c6f10e72d7..2ef4be7b31 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -261,6 +261,10 @@ MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER, "database_manager") MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST, "database_manager_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST, + "deferred_cdrom_info_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST, + "deferred_cdrom_info_detail_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST, "deferred_dropdown_box_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL, diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 260b1384b5..759cbbb0aa 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -96,6 +96,7 @@ generic_deferred_push(deferred_push_configurations_list, DISPLAYLIST_ 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_cdrom_info_detail_list, DISPLAYLIST_CDROM_DETAIL_INFO) generic_deferred_push(deferred_push_load_disk_list, DISPLAYLIST_LOAD_DISC) generic_deferred_push(deferred_push_information_list, DISPLAYLIST_INFORMATION_LIST) generic_deferred_push(deferred_push_information, DISPLAYLIST_INFORMATION) @@ -1390,6 +1391,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dump_disk_list); break; + case MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_cdrom_info_detail_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); @@ -1627,6 +1631,11 @@ static int menu_cbs_init_bind_deferred_push_compare_type( { BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_disk_options); } + else if (type == MENU_SET_CDROM_INFO) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_cdrom_info_detail_list); + return 0; + } else return -1; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 9444c1120d..2bfae98341 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -285,6 +285,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) return MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST; case ACTION_OK_DL_IMAGES_LIST: return MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST; + case ACTION_OK_DL_CDROM_INFO_DETAIL_LIST: + return MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST; default: break; } @@ -951,6 +953,8 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_IMAGES_LIST: case ACTION_OK_DL_LOAD_DISC_LIST: case ACTION_OK_DL_DUMP_DISC_LIST: + case ACTION_OK_DL_CDROM_INFO_LIST: + case ACTION_OK_DL_CDROM_INFO_DETAIL_LIST: action_ok_dl_lbl(action_ok_dl_to_enum(action_type), DISPLAYLIST_GENERIC); break; case ACTION_OK_DL_CONTENT_SETTINGS: @@ -4386,6 +4390,7 @@ int (func_name)(const char *path, const char *label, unsigned type, size_t idx, default_action_ok_func(action_ok_browse_url_start, ACTION_OK_DL_BROWSE_URL_START) default_action_ok_func(action_ok_goto_favorites, ACTION_OK_DL_FAVORITES_LIST) default_action_ok_func(action_ok_goto_images, ACTION_OK_DL_IMAGES_LIST) +default_action_ok_func(action_ok_cdrom_info_list, ACTION_OK_DL_CDROM_INFO_DETAIL_LIST) default_action_ok_func(action_ok_goto_video, ACTION_OK_DL_VIDEO_LIST) default_action_ok_func(action_ok_goto_music, ACTION_OK_DL_MUSIC_LIST) default_action_ok_func(action_ok_shader_parameters, ACTION_OK_DL_SHADER_PARAMETERS) @@ -6428,6 +6433,10 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs, { BIND_ACTION_OK(cbs, action_ok_dump_cdrom); } + else if (type == MENU_SET_CDROM_INFO) + { + BIND_ACTION_OK(cbs, action_ok_cdrom_info_list); + } else if (type == MENU_SET_LOAD_CDROM_LIST) { BIND_ACTION_OK(cbs, action_ok_load_cdrom); diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index a009f4cc21..6a692b03ed 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -58,6 +58,7 @@ enum ACTION_OK_DL_RPL_ENTRY, ACTION_OK_DL_RDB_ENTRY, ACTION_OK_DL_RDB_ENTRY_SUBMENU, + ACTION_OK_DL_CDROM_INFO_LIST, ACTION_OK_DL_AUDIO_DSP_PLUGIN, ACTION_OK_DL_SHADER_PASS, ACTION_OK_DL_FAVORITES_LIST, @@ -156,6 +157,7 @@ enum ACTION_OK_DL_DUMP_DISC_LIST, ACTION_OK_DL_BROWSE_URL_START, ACTION_OK_DL_CONTENT_SETTINGS, + ACTION_OK_DL_CDROM_INFO_DETAIL_LIST, ACTION_OK_DL_RGUI_MENU_THEME_PRESET }; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 32459c2d99..44eeba4d58 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4937,6 +4937,21 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, switch (type) { #ifdef HAVE_CDROM + case DISPLAYLIST_CDROM_DETAIL_INFO: + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + count = 0; + + 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; case DISPLAYLIST_DISC_INFO: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); count = menu_displaylist_parse_disc_info(info, @@ -4949,7 +4964,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY, FILE_TYPE_NONE, 0, 0); - info->need_push = true; + info->need_push = true; info->need_refresh = true; info->need_clear = true; break; @@ -4986,6 +5001,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, info->need_clear = true; break; #else + case DISPLAYLIST_CDROM_DETAIL_INFO: case DISPLAYLIST_DISC_INFO: case DISPLAYLIST_LOAD_DISC: case DISPLAYLIST_DUMP_DISC: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 46f8a7a5fd..e0c2304a03 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -61,6 +61,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_DROPDOWN_LIST_SPECIAL, DISPLAYLIST_DROPDOWN_LIST_RESOLUTION, DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE, + DISPLAYLIST_CDROM_DETAIL_INFO, DISPLAYLIST_INFO, DISPLAYLIST_HELP, DISPLAYLIST_HELP_SCREEN_LIST, diff --git a/msg_hash.h b/msg_hash.h index f2847bb299..c4d7dfa2fa 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1138,6 +1138,8 @@ enum msg_hash_enums MENU_LABEL(BROWSE_URL), MENU_LABEL(BROWSE_START), /* Deferred */ + MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST, + MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST, MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST, MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST, MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST,