diff --git a/config.def.h b/config.def.h index f6beb535ef..7c78d83a08 100644 --- a/config.def.h +++ b/config.def.h @@ -362,6 +362,10 @@ static bool menu_horizontal_animation = true; static bool menu_show_online_updater = true; static bool menu_show_load_core = true; static bool menu_show_load_content = true; +#ifdef HAVE_CDROM +static bool menu_show_load_disc = true; +static bool menu_show_dump_disc = true; +#endif static bool menu_show_information = true; static bool menu_show_configurations = true; static bool menu_show_help = true; diff --git a/configuration.c b/configuration.c index 7cd76f9164..bf65fcffe7 100644 --- a/configuration.c +++ b/configuration.c @@ -1495,6 +1495,10 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("content_show_playlists", &settings->bools.menu_content_show_playlists, true, content_show_playlists, false); SETTING_BOOL("menu_show_load_core", &settings->bools.menu_show_load_core, true, menu_show_load_core, false); SETTING_BOOL("menu_show_load_content", &settings->bools.menu_show_load_content, true, menu_show_load_content, false); +#ifdef HAVE_CDROM + SETTING_BOOL("menu_show_load_disc", &settings->bools.menu_show_load_disc, true, menu_show_load_disc, false); + SETTING_BOOL("menu_show_dump_disc", &settings->bools.menu_show_dump_disc, true, menu_show_dump_disc, false); +#endif SETTING_BOOL("menu_show_information", &settings->bools.menu_show_information, true, menu_show_information, false); SETTING_BOOL("menu_show_configurations", &settings->bools.menu_show_configurations, true, menu_show_configurations, false); SETTING_BOOL("menu_show_latency", &settings->bools.menu_show_latency, true, true, false); diff --git a/configuration.h b/configuration.h index 705a50a30b..573e01c6e3 100644 --- a/configuration.h +++ b/configuration.h @@ -164,6 +164,8 @@ typedef struct settings bool menu_show_core_updater; bool menu_show_load_core; bool menu_show_load_content; + bool menu_show_load_disc; + bool menu_show_dump_disc; bool menu_show_information; bool menu_show_configurations; bool menu_show_help; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 2ef4be7b31..f433e13eb6 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1609,6 +1609,10 @@ MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_LOAD_CORE, "menu_show_load_core") MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT, "menu_show_load_content") +MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC, + "menu_show_load_disc") +MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC, + "menu_show_dump_disc") MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_INFORMATION, "menu_show_information") MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_CONFIGURATIONS, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 68549c89f3..bfd918e650 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -6792,6 +6792,22 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT, "Show/hide the 'Load Content' option." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_DISC, + "Show Load Disc" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_DISC, + "Show/hide the 'Load Disc' option." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MENU_SHOW_DUMP_DISC, + "Show Dump Disc" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MENU_SHOW_DUMP_DISC, + "Show/hide the 'Dump Disc' option." + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MENU_SHOW_INFORMATION, "Show Information" diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 70032bbbc7..99b3771e42 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -493,6 +493,8 @@ default_sublabel_macro(action_bind_sublabel_menu_favorites_tab, default_sublabel_macro(action_bind_sublabel_menu_images_tab, MENU_ENUM_SUBLABEL_CONTENT_SHOW_IMAGES) default_sublabel_macro(action_bind_sublabel_menu_show_load_core, MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CORE) default_sublabel_macro(action_bind_sublabel_menu_show_load_content, MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT) +default_sublabel_macro(action_bind_sublabel_menu_show_load_disc, MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_DISC) +default_sublabel_macro(action_bind_sublabel_menu_show_dump_disc, MENU_ENUM_SUBLABEL_MENU_SHOW_DUMP_DISC) default_sublabel_macro(action_bind_sublabel_menu_show_information, MENU_ENUM_SUBLABEL_MENU_SHOW_INFORMATION) default_sublabel_macro(action_bind_sublabel_menu_show_configurations, MENU_ENUM_SUBLABEL_MENU_SHOW_CONFIGURATIONS) default_sublabel_macro(action_bind_sublabel_menu_show_help, MENU_ENUM_SUBLABEL_MENU_SHOW_HELP) @@ -1454,6 +1456,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_load_content); break; + case MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_load_disc); + break; + case MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_dump_disc); + break; case MENU_ENUM_LABEL_MENU_SHOW_INFORMATION: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_information); break; diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 911410a199..c90588c0f4 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -2111,11 +2111,17 @@ static int materialui_list_push(void *data, void *userdata, menu_displaylist_setting(&entry); } - entry.enum_idx = MENU_ENUM_LABEL_LOAD_DISC; - menu_displaylist_setting(&entry); + if (settings->bools.menu_show_load_disc) + { + entry.enum_idx = MENU_ENUM_LABEL_LOAD_DISC; + menu_displaylist_setting(&entry); + } - entry.enum_idx = MENU_ENUM_LABEL_DUMP_DISC; - menu_displaylist_setting(&entry); + if (settings->bools.menu_show_dump_disc) + { + entry.enum_idx = MENU_ENUM_LABEL_DUMP_DISC; + menu_displaylist_setting(&entry); + } #if defined(HAVE_NETWORKING) #ifdef HAVE_LAKKA diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b1b99d5cce..cd582a30c1 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -5719,11 +5719,17 @@ static int xmb_list_push(void *data, void *userdata, menu_subsystem_populate(subsystem, info); } - entry.enum_idx = MENU_ENUM_LABEL_LOAD_DISC; - menu_displaylist_setting(&entry); + if (settings->bools.menu_show_load_disc) + { + entry.enum_idx = MENU_ENUM_LABEL_LOAD_DISC; + menu_displaylist_setting(&entry); + } - entry.enum_idx = MENU_ENUM_LABEL_DUMP_DISC; - menu_displaylist_setting(&entry); + if (settings->bools.menu_show_dump_disc) + { + entry.enum_idx = MENU_ENUM_LABEL_DUMP_DISC; + menu_displaylist_setting(&entry); + } entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST; menu_displaylist_setting(&entry); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 11d14e41cd..abf1a9b651 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4201,6 +4201,8 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct {MENU_ENUM_LABEL_QUICK_MENU_VIEWS_SETTINGS, PARSE_ACTION }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_CORE, PARSE_ONLY_BOOL }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC, PARSE_ONLY_BOOL }, + {MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC, PARSE_ONLY_BOOL }, {MENU_ENUM_LABEL_MENU_SHOW_ONLINE_UPDATER, PARSE_ONLY_BOOL }, {MENU_ENUM_LABEL_MENU_SHOW_CORE_UPDATER, PARSE_ONLY_BOOL }, {MENU_ENUM_LABEL_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER, PARSE_ONLY_BOOL }, @@ -7736,15 +7738,21 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, PARSE_ACTION, false) == 0) count++; - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_LOAD_DISC, - PARSE_ACTION, false) == 0) - count++; + if (settings->bools.menu_show_load_disc) + { + if (menu_displaylist_parse_settings_enum(info->list, + MENU_ENUM_LABEL_LOAD_DISC, + PARSE_ACTION, false) == 0) + count++; + } - if (menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_DUMP_DISC, - PARSE_ACTION, false) == 0) - count++; + if (settings->bools.menu_show_dump_disc) + { + if (menu_displaylist_parse_settings_enum(info->list, + MENU_ENUM_LABEL_DUMP_DISC, + PARSE_ACTION, false) == 0) + count++; + } if (string_is_equal(settings->arrays.menu_driver, "rgui") && #ifndef HAVE_LIBRETRODB diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 6cb562657b..93e3427208 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -11879,6 +11879,38 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); +#ifdef HAVE_CDROM + CONFIG_BOOL( + list, list_info, + &settings->bools.menu_show_load_disc, + MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC, + MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_DISC, + menu_show_load_disc, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); + + CONFIG_BOOL( + list, list_info, + &settings->bools.menu_show_dump_disc, + MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC, + MENU_ENUM_LABEL_VALUE_MENU_SHOW_DUMP_DISC, + menu_show_dump_disc, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); +#endif + CONFIG_BOOL( list, list_info, &settings->bools.menu_show_information, diff --git a/msg_hash.h b/msg_hash.h index c4d7dfa2fa..cad170904c 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -869,6 +869,8 @@ enum msg_hash_enums /* Menu settings */ MENU_LABEL(MENU_SHOW_LOAD_CORE), MENU_LABEL(MENU_SHOW_LOAD_CONTENT), + MENU_LABEL(MENU_SHOW_LOAD_DISC), + MENU_LABEL(MENU_SHOW_DUMP_DISC), MENU_LABEL(MENU_SHOW_INFORMATION), MENU_LABEL(MENU_SHOW_CONFIGURATIONS), MENU_LABEL(MENU_SHOW_HELP), diff --git a/ui/drivers/qt/options/ui.cpp b/ui/drivers/qt/options/ui.cpp index ad91036042..54c8acc65f 100644 --- a/ui/drivers/qt/options/ui.cpp +++ b/ui/drivers/qt/options/ui.cpp @@ -106,6 +106,8 @@ QWidget *ViewsPage::widget() mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_LOAD_CORE); mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT); /* mainMenu->add(MENU_ENUM_LABEL_SHOW_WIMP); */ + mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC); + mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC); mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_ONLINE_UPDATER); mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_CORE_UPDATER); mainMenu->add(MENU_ENUM_LABEL_MENU_SHOW_INFORMATION);