Lakka: CD-ROM eject menu item

Adds new entry (where the entry for dumping CD is) to eject the disc -
in case the CD drive has no physical button to eject the disc / the
button does not work. Useless for most, but quality of life improvement
for some.

Upstream of patch used by Lakka at build time
1943ad296e/packages/libretro/retroarch/patches/retroarch-99-eject_disc.patch
This commit is contained in:
Tomáš Kelemen (vudiq) 2021-11-17 21:33:23 +01:00
parent a2f9273979
commit efad7a7dcc
No known key found for this signature in database
GPG Key ID: 5CE55E600E0B3B22
18 changed files with 234 additions and 0 deletions

View File

@ -646,6 +646,9 @@ static const bool menu_show_load_content = true;
#ifdef HAVE_CDROM
static const bool menu_show_load_disc = true;
static const bool menu_show_dump_disc = true;
#ifdef HAVE_LAKKA
static const bool menu_show_eject_disc = true;
#endif /* HAVE_LAKKA */
#endif
static const bool menu_show_information = true;
static const bool menu_show_configurations = true;

View File

@ -1824,6 +1824,9 @@ static struct config_bool_setting *populate_settings_bool(
#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);
#ifdef HAVE_LAKKA
SETTING_BOOL("menu_show_eject_disc", &settings->bools.menu_show_eject_disc, true, menu_show_eject_disc, false);
#endif /* HAVE_LAKKA */
#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);

View File

@ -653,6 +653,9 @@ typedef struct settings
bool menu_show_load_content;
bool menu_show_load_disc;
bool menu_show_dump_disc;
#ifdef HAVE_LAKKA
bool menu_show_eject_disc;
#endif
bool menu_show_information;
bool menu_show_configurations;
bool menu_show_help;

View File

@ -1730,6 +1730,12 @@ MSG_HASH(
MENU_ENUM_LABEL_DUMP_DISC,
"dump_disc"
)
#ifdef HAVE_LAKKA
MSG_HASH(
MENU_ENUM_LABEL_EJECT_DISC,
"eject_disc"
)
#endif
MSG_HASH(
MENU_ENUM_LABEL_LOAD_CONTENT_SPECIAL,
"load_special"
@ -2386,6 +2392,12 @@ MSG_HASH(
MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST,
"deferred_load_disc_list"
)
#ifdef HAVE_LAKKA
MSG_HASH(
MENU_ENUM_LABEL_DEFERRED_EJECT_DISC,
"deferred_eject_disc"
)
#endif
MSG_HASH(
MENU_ENUM_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER,
"deferred_cursor_manager_list_rdb_entry_developer"
@ -4030,6 +4042,12 @@ MSG_HASH(
MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC,
"menu_show_dump_disc"
)
#ifdef HAVE_LAKKA
MSG_HASH(
MENU_ENUM_LABEL_MENU_SHOW_EJECT_DISC,
"menu_show_eject_disc"
)
#endif
MSG_HASH(
MENU_ENUM_LABEL_MENU_SHOW_INFORMATION,
"menu_show_information"

View File

@ -91,6 +91,16 @@ MSG_HASH( /* FIXME Is a specific image format used? Is it determined automatical
MENU_ENUM_SUBLABEL_DUMP_DISC,
"Dump the physical media disc to internal storage. It will be saved as an image file."
)
#ifdef HAVE_LAKKA
MSG_HASH(
MENU_ENUM_LABEL_VALUE_EJECT_DISC,
"Eject Disc"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_EJECT_DISC,
"Ejects the disc from physical CD/DVD drive."
)
#endif
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB,
"Playlists"
@ -4335,6 +4345,16 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_MENU_SHOW_DUMP_DISC,
"Show the 'Dump Disc' option in the Main Menu."
)
#ifdef HAVE_LAKKA
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MENU_SHOW_EJECT_DISC,
"Show 'Eject Disc'"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_MENU_SHOW_EJECT_DISC,
"Show the 'Eject Disc' option in the Main Menu."
)
#endif
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MENU_SHOW_ONLINE_UPDATER,
"Show 'Online Updater'"

View File

@ -113,6 +113,9 @@ 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)
#ifdef HAVE_LAKKA
GENERIC_DEFERRED_PUSH(deferred_push_eject_disc, DISPLAYLIST_EJECT_DISC)
#endif
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)
@ -676,6 +679,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
const deferred_info_list_t info_list[] = {
{MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST, deferred_push_dump_disk_list},
#ifdef HAVE_LAKKA
{MENU_ENUM_LABEL_DEFERRED_EJECT_DISC, deferred_push_eject_disc},
#endif
{MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST, deferred_push_load_disk_list},
{MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST, deferred_push_favorites_list},
{MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST, deferred_push_dropdown_box_list},
@ -1276,6 +1282,11 @@ 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;
#ifdef HAVE_LAKKA
case MENU_ENUM_LABEL_DEFERRED_EJECT_DISC:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_eject_disc);
break;
#endif
case MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_cdrom_info_detail_list);
break;

View File

@ -447,6 +447,10 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
return MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_FACEBOOK_LIST;
case ACTION_OK_DL_DUMP_DISC_LIST:
return MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST;
#ifdef HAVE_LAKKA
case ACTION_OK_DL_EJECT_DISC:
return MENU_ENUM_LABEL_DEFERRED_EJECT_DISC;
#endif
case ACTION_OK_DL_LOAD_DISC_LIST:
return MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST;
case ACTION_OK_DL_ACCOUNTS_YOUTUBE_LIST:
@ -1529,6 +1533,9 @@ 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:
#ifdef HAVE_LAKKA
case ACTION_OK_DL_EJECT_DISC:
#endif
case ACTION_OK_DL_SHADER_PRESET_REMOVE:
case ACTION_OK_DL_SHADER_PRESET_SAVE:
case ACTION_OK_DL_CDROM_INFO_LIST:
@ -2735,6 +2742,17 @@ static int action_ok_dump_cdrom(const char *path,
return 0;
}
#ifdef HAVE_LAKKA
static int action_ok_eject_disc(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
#ifdef HAVE_CDROM
system("eject & disown");
#endif /* HAVE_CDROM */
return 0;
}
#endif /* HAVE_LAKKA */
static int action_ok_lookup_setting(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -5644,6 +5662,9 @@ DEFAULT_ACTION_OK_FUNC(action_ok_push_accounts_youtube_list, ACTION_OK_DL_ACCOUN
DEFAULT_ACTION_OK_FUNC(action_ok_push_accounts_twitch_list, ACTION_OK_DL_ACCOUNTS_TWITCH_LIST)
DEFAULT_ACTION_OK_FUNC(action_ok_push_accounts_facebook_list, ACTION_OK_DL_ACCOUNTS_FACEBOOK_LIST)
DEFAULT_ACTION_OK_FUNC(action_ok_push_dump_disc_list, ACTION_OK_DL_DUMP_DISC_LIST)
#ifdef HAVE_LAKKA
DEFAULT_ACTION_OK_FUNC(action_ok_push_eject_disc, ACTION_OK_DL_EJECT_DISC)
#endif
DEFAULT_ACTION_OK_FUNC(action_ok_push_load_disc_list, ACTION_OK_DL_LOAD_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)
@ -7865,6 +7886,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
{MENU_ENUM_LABEL_ACCOUNTS_TWITCH, action_ok_push_accounts_twitch_list},
{MENU_ENUM_LABEL_ACCOUNTS_FACEBOOK, action_ok_push_accounts_facebook_list},
{MENU_ENUM_LABEL_DUMP_DISC, action_ok_push_dump_disc_list},
#ifdef HAVE_LAKKA
{MENU_ENUM_LABEL_EJECT_DISC, action_ok_push_eject_disc},
#endif
{MENU_ENUM_LABEL_LOAD_DISC, action_ok_push_load_disc_list},
{MENU_ENUM_LABEL_SHADER_OPTIONS, action_ok_push_default},
{MENU_ENUM_LABEL_CORE_OPTIONS, action_ok_push_core_options_list},
@ -8045,6 +8069,12 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
{
BIND_ACTION_OK(cbs, action_ok_dump_cdrom);
}
#ifdef HAVE_LAKKA
else if (type == MENU_SET_EJECT_DISC)
{
BIND_ACTION_OK(cbs, action_ok_eject_disc);
}
#endif
else if (type == MENU_SET_CDROM_INFO)
{
BIND_ACTION_OK(cbs, action_ok_cdrom_info_list);

View File

@ -411,6 +411,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_sideload_core_list, MENU_
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_manager_list, MENU_ENUM_SUBLABEL_CORE_MANAGER_LIST)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_load_disc, MENU_ENUM_SUBLABEL_LOAD_DISC)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_dump_disc, MENU_ENUM_SUBLABEL_DUMP_DISC)
#ifdef HAVE_LAKKA
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_eject_disc, MENU_ENUM_SUBLABEL_EJECT_DISC)
#endif
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_content_list, MENU_ENUM_SUBLABEL_LOAD_CONTENT_LIST)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_content_special, MENU_ENUM_SUBLABEL_LOAD_CONTENT_SPECIAL)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_load_content_history, MENU_ENUM_SUBLABEL_LOAD_CONTENT_HISTORY)
@ -803,6 +806,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_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)
#ifdef HAVE_LAKKA
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_eject_disc, MENU_ENUM_SUBLABEL_MENU_SHOW_EJECT_DISC)
#endif
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)
@ -2451,6 +2457,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_DUMP_DISC:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_dump_disc);
break;
#ifdef HAVE_LAKKA
case MENU_ENUM_LABEL_EJECT_DISC:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_eject_disc);
break;
#endif
case MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_load_content);
break;
@ -2460,6 +2471,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_dump_disc);
break;
#ifdef HAVE_LAKKA
case MENU_ENUM_LABEL_MENU_SHOW_EJECT_DISC:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_eject_disc);
break;
#endif
case MENU_ENUM_LABEL_MENU_SHOW_INFORMATION:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_show_information);
break;

View File

@ -602,6 +602,9 @@ DEFAULT_TITLE_MACRO(action_get_crt_switchres_settings_list, MENU_ENUM_LABEL_
DEFAULT_TITLE_MACRO(action_get_configuration_settings_list, MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS)
DEFAULT_TITLE_MACRO(action_get_load_disc_list, MENU_ENUM_LABEL_VALUE_LOAD_DISC)
DEFAULT_TITLE_MACRO(action_get_dump_disc_list, MENU_ENUM_LABEL_VALUE_DUMP_DISC)
#ifdef HAVE_LAKKA
DEFAULT_TITLE_MACRO(action_get_eject_disc, MENU_ENUM_LABEL_VALUE_EJECT_DISC)
#endif
DEFAULT_TITLE_MACRO(action_get_saving_settings_list, MENU_ENUM_LABEL_VALUE_SAVING_SETTINGS)
DEFAULT_TITLE_MACRO(action_get_logging_settings_list, MENU_ENUM_LABEL_VALUE_LOGGING_SETTINGS)
DEFAULT_TITLE_MACRO(action_get_frame_throttle_settings_list, MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_SETTINGS)
@ -930,6 +933,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
{MENU_ENUM_LABEL_DEFERRED_CORE_RESTORE_BACKUP_LIST, action_get_title_deferred_core_restore_backup_list},
{MENU_ENUM_LABEL_DEFERRED_CORE_DELETE_BACKUP_LIST, action_get_title_deferred_core_delete_backup_list},
{MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST, action_get_dump_disc_list},
#ifdef HAVE_LAKKA
{MENU_ENUM_LABEL_DEFERRED_EJECT_DISC, action_get_eject_disc},
#endif
{MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST, action_get_load_disc_list},
{MENU_ENUM_LABEL_DEFERRED_CONFIGURATION_SETTINGS_LIST, action_get_configuration_settings_list },
{MENU_ENUM_LABEL_DEFERRED_SAVING_SETTINGS_LIST, action_get_saving_settings_list},

View File

@ -9302,6 +9302,17 @@ static int materialui_list_push(void *data, void *userdata,
false);
}
#ifdef HAVE_LAKKA
if (settings->bools.menu_show_eject_disc)
{
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_EJECT_DISC,
PARSE_ACTION,
false);
}
#endif
#if defined(HAVE_NETWORKING)
#ifdef HAVE_LAKKA
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
@ -10082,6 +10093,9 @@ static void materialui_list_insert(
{
case MENU_SET_CDROM_INFO:
case MENU_SET_CDROM_LIST:
#ifdef HAVE_LAKKA
case MENU_SET_EJECT_DISC:
#endif
case MENU_SET_LOAD_CDROM_LIST:
node->icon_texture_index = MUI_TEXTURE_DISK;
node->icon_type = MUI_ICON_TYPE_INTERNAL;
@ -10362,6 +10376,9 @@ static void materialui_list_insert(
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DISK_IMAGE_APPEND)) ||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_DISC)) ||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DUMP_DISC)) ||
#ifdef HAVE_LAKKA
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_EJECT_DISC)) ||
#endif
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DISC_INFORMATION)) ||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DISK_OPTIONS)) ||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DISK_INDEX))

View File

@ -1602,6 +1602,9 @@ static uintptr_t ozone_entries_icon_get_texture(ozone_handle_t *ozone,
{
case MENU_ENUM_LABEL_LOAD_DISC:
case MENU_ENUM_LABEL_DUMP_DISC:
#ifdef HAVE_LAKKA
case MENU_ENUM_LABEL_EJECT_DISC:
#endif
case MENU_ENUM_LABEL_DISC_INFORMATION:
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISC];
case MENU_ENUM_LABEL_CORE_OPTIONS:
@ -1931,6 +1934,9 @@ static uintptr_t ozone_entries_icon_get_texture(ozone_handle_t *ozone,
{
case MENU_SET_CDROM_INFO:
case MENU_SET_CDROM_LIST:
#ifdef HAVE_LAKKA
case MENU_SET_EJECT_DISC:
#endif
case MENU_SET_LOAD_CDROM_LIST:
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISC];
case FILE_TYPE_DIRECTORY:
@ -7857,6 +7863,17 @@ static int ozone_list_push(void *data, void *userdata,
false);
}
#ifdef HAVE_LAKKA
if (settings->bools.menu_show_eject_disc)
{
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_EJECT_DISC,
PARSE_ACTION,
false);
}
#endif
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_ADD_CONTENT_LIST,

View File

@ -2638,6 +2638,9 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
case MENU_ENUM_LABEL_LOAD_DISC:
case MENU_ENUM_LABEL_DUMP_DISC:
#ifdef HAVE_LAKKA
case MENU_ENUM_LABEL_EJECT_DISC:
#endif
case MENU_ENUM_LABEL_DISC_INFORMATION:
return xmb->textures.list[XMB_TEXTURE_DISC];
@ -6882,6 +6885,9 @@ static int xmb_list_push(void *data, void *userdata,
bool menu_show_configurations = settings->bools.menu_show_configurations;
bool menu_show_load_disc = settings->bools.menu_show_load_disc;
bool menu_show_dump_disc = settings->bools.menu_show_dump_disc;
#ifdef HAVE_LAKKA
bool menu_show_eject_disc = settings->bools.menu_show_eject_disc;
#endif
bool menu_show_shutdown = settings->bools.menu_show_shutdown;
bool menu_show_reboot = settings->bools.menu_show_reboot;
#if !defined(IOS)
@ -7023,6 +7029,17 @@ static int xmb_list_push(void *data, void *userdata,
false);
}
#ifdef HAVE_LAKKA
if (menu_show_eject_disc)
{
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_EJECT_DISC,
PARSE_ACTION,
false);
}
#endif
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_ADD_CONTENT_LIST,

View File

@ -198,6 +198,9 @@ enum
ACTION_OK_DL_MIDI_SETTINGS_LIST,
ACTION_OK_DL_LOAD_DISC_LIST,
ACTION_OK_DL_DUMP_DISC_LIST,
#ifdef HAVE_LAKKA
ACTION_OK_DL_EJECT_DISC,
#endif
ACTION_OK_DL_BROWSE_URL_START,
ACTION_OK_DL_CONTENT_SETTINGS,
ACTION_OK_DL_CDROM_INFO_DETAIL_LIST,

View File

@ -8211,6 +8211,9 @@ unsigned menu_displaylist_build_list(
{MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT, PARSE_ONLY_BOOL, true },
{MENU_ENUM_LABEL_MENU_SHOW_LOAD_DISC, PARSE_ONLY_BOOL, true },
{MENU_ENUM_LABEL_MENU_SHOW_DUMP_DISC, PARSE_ONLY_BOOL, true },
#ifdef HAVE_LAKKA
{MENU_ENUM_LABEL_MENU_SHOW_EJECT_DISC, PARSE_ONLY_BOOL, true },
#endif
{MENU_ENUM_LABEL_MENU_SHOW_ONLINE_UPDATER, PARSE_ONLY_BOOL, true },
{MENU_ENUM_LABEL_MENU_SHOW_CORE_UPDATER, PARSE_ONLY_BOOL, true },
{MENU_ENUM_LABEL_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER, PARSE_ONLY_BOOL, true },
@ -9537,6 +9540,14 @@ unsigned menu_displaylist_build_list(
MENU_SET_CDROM_LIST);
#endif
break;
#ifdef HAVE_LAKKA
case DISPLAYLIST_EJECT_DISC:
#ifdef HAVE_CDROM
count = menu_displaylist_parse_disc_info(list,
MENU_SET_EJECT_DISC);
#endif /* HAVE_CDROM */
break;
#endif /* HAVE_LAKKA */
default:
break;
}
@ -11841,6 +11852,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
case DISPLAYLIST_BROWSE_URL_LIST:
case DISPLAYLIST_DISC_INFO:
case DISPLAYLIST_DUMP_DISC:
#ifdef HAVE_LAKKA
case DISPLAYLIST_EJECT_DISC:
#endif
case DISPLAYLIST_LOAD_CONTENT_LIST:
case DISPLAYLIST_LOAD_CONTENT_SPECIAL:
case DISPLAYLIST_OPTIONS_REMAPPINGS:
@ -11884,6 +11898,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
break;
case DISPLAYLIST_DISC_INFO:
case DISPLAYLIST_DUMP_DISC:
#ifdef HAVE_LAKKA
case DISPLAYLIST_EJECT_DISC:
#endif
case DISPLAYLIST_MENU_SETTINGS_LIST:
case DISPLAYLIST_ADD_CONTENT_LIST:
case DISPLAYLIST_DROPDOWN_LIST_RESOLUTION:
@ -11942,6 +11959,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
{
case DISPLAYLIST_DISC_INFO:
case DISPLAYLIST_DUMP_DISC:
#ifdef HAVE_LAKKA
case DISPLAYLIST_EJECT_DISC:
#endif
info->need_clear = true;
break;
default:
@ -12344,6 +12364,16 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
PARSE_ACTION, false) == 0)
count++;
}
#ifdef HAVE_LAKKA
if (settings->bools.menu_show_eject_disc)
{
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(info->list,
MENU_ENUM_LABEL_EJECT_DISC,
PARSE_ACTION, false) == 0)
count++;
}
#endif /* HAVE_LAKKA */
#endif
#if defined(HAVE_RGUI) || defined(HAVE_MATERIALUI)

View File

@ -134,6 +134,9 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_VIDEO_FONTS,
DISPLAYLIST_LOAD_DISC,
DISPLAYLIST_DUMP_DISC,
#ifdef HAVE_LAKKA
DISPLAYLIST_EJECT_DISC,
#endif
DISPLAYLIST_OVERLAYS,
#ifdef HAVE_VIDEO_LAYOUT
DISPLAYLIST_VIDEO_LAYOUT_PATH,

View File

@ -240,6 +240,7 @@ enum menu_settings_type
MENU_SET_CDROM_LIST,
MENU_SET_LOAD_CDROM_LIST,
MENU_SET_EJECT_DISC,
MENU_SET_CDROM_INFO,
MENU_SETTING_ACTION_DELETE_PLAYLIST,
MENU_SETTING_ACTION_PLAYLIST_MANAGER_RESET_CORES,

View File

@ -9044,6 +9044,16 @@ static bool setting_append_list(
&group_info,
&subgroup_info,
parent_group);
#ifdef HAVE_LAKKA
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_EJECT_DISC,
MENU_ENUM_LABEL_VALUE_EJECT_DISC,
&group_info,
&subgroup_info,
parent_group);
#endif
}
string_list_free(drive_list);
@ -16102,6 +16112,23 @@ static bool setting_append_list(
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
#ifdef HAVE_LAKKA
CONFIG_BOOL(
list, list_info,
&settings->bools.menu_show_eject_disc,
MENU_ENUM_LABEL_MENU_SHOW_EJECT_DISC,
MENU_ENUM_LABEL_VALUE_MENU_SHOW_EJECT_DISC,
menu_show_eject_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 /* HAVE_LAKKA */
#endif
CONFIG_BOOL(

View File

@ -1124,6 +1124,9 @@ enum msg_hash_enums
MENU_LABEL(MENU_SHOW_LOAD_CONTENT),
MENU_LABEL(MENU_SHOW_LOAD_DISC),
MENU_LABEL(MENU_SHOW_DUMP_DISC),
#ifdef HAVE_LAKKA
MENU_LABEL(MENU_SHOW_EJECT_DISC),
#endif
MENU_LABEL(MENU_SHOW_INFORMATION),
MENU_LABEL(MENU_SHOW_CONFIGURATIONS),
MENU_LABEL(MENU_SHOW_HELP),
@ -1467,6 +1470,9 @@ enum msg_hash_enums
MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST,
MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST,
MENU_ENUM_LABEL_DEFERRED_DUMP_DISC_LIST,
#ifdef HAVE_LAKKA
MENU_ENUM_LABEL_DEFERRED_EJECT_DISC,
#endif
MENU_ENUM_LABEL_DEFERRED_REMAPPINGS_PORT_LIST,
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST,
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL,
@ -2232,6 +2238,9 @@ enum msg_hash_enums
MENU_LABEL(LOAD_CONTENT_HISTORY),
MENU_LABEL(LOAD_DISC),
MENU_LABEL(DUMP_DISC),
#ifdef HAVE_LAKKA
MENU_LABEL(EJECT_DISC),
#endif
MENU_LABEL(NETWORK_INFORMATION),
MENU_LABEL(SYSTEM_INFORMATION),
MENU_LABEL(ACHIEVEMENT_LIST),