Merge c3c1dfe827
into 6dcb727c62
This commit is contained in:
commit
ffab3b24e7
|
@ -7210,6 +7210,7 @@ void input_driver_collect_system_input(input_driver_state_t *input_st,
|
||||||
switch (entry.type)
|
switch (entry.type)
|
||||||
{
|
{
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case FILE_TYPE_PLAYLIST_ENTRY:
|
case FILE_TYPE_PLAYLIST_ENTRY:
|
||||||
case FILE_TYPE_PLAIN:
|
case FILE_TYPE_PLAIN:
|
||||||
case FILE_TYPE_RDB:
|
case FILE_TYPE_RDB:
|
||||||
|
|
|
@ -2956,6 +2956,10 @@ MSG_HASH(
|
||||||
MENU_ENUM_LABEL_PLAYLIST_ENTRY,
|
MENU_ENUM_LABEL_PLAYLIST_ENTRY,
|
||||||
"playlist_entry"
|
"playlist_entry"
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_DESCENDANT_ENTRY,
|
||||||
|
"descendant_entry"
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_PLAYLIST_SETTINGS,
|
MENU_ENUM_LABEL_PLAYLIST_SETTINGS,
|
||||||
"playlist_settings"
|
"playlist_settings"
|
||||||
|
|
|
@ -79,6 +79,11 @@ int action_cancel_pop_default(const char *path,
|
||||||
filebrowser_clear_type();
|
filebrowser_clear_type();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (menu_type == FILE_TYPE_DESCENDANT_ENTRY
|
||||||
|
&& menu_st->driver_ctx
|
||||||
|
&& menu_st->driver_ctx->refresh_thumbnail_image)
|
||||||
|
menu_st->driver_ctx->refresh_thumbnail_image(menu_st->userdata, menu_st->selection_ptr);
|
||||||
|
|
||||||
new_selection_ptr = menu_st->selection_ptr;
|
new_selection_ptr = menu_st->selection_ptr;
|
||||||
menu_entries_pop_stack(&new_selection_ptr, 0, 1);
|
menu_entries_pop_stack(&new_selection_ptr, 0, 1);
|
||||||
menu_st->selection_ptr = new_selection_ptr;
|
menu_st->selection_ptr = new_selection_ptr;
|
||||||
|
|
|
@ -621,6 +621,7 @@ GENERIC_DEFERRED_PUSH_GENERAL(deferred_push_default, PUSH_DEFAULT, DISPLAYLIST_D
|
||||||
GENERIC_DEFERRED_PUSH_GENERAL(deferred_push_favorites_list, PUSH_DEFAULT, DISPLAYLIST_FAVORITES)
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_push_favorites_list, PUSH_DEFAULT, DISPLAYLIST_FAVORITES)
|
||||||
|
|
||||||
GENERIC_DEFERRED_PUSH_GENERAL(deferred_playlist_list, PUSH_DEFAULT, DISPLAYLIST_PLAYLIST)
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_playlist_list, PUSH_DEFAULT, DISPLAYLIST_PLAYLIST)
|
||||||
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_descendant_list, PUSH_DEFAULT, DISPLAYLIST_DESCENDANT_LIST)
|
||||||
GENERIC_DEFERRED_PUSH_GENERAL(deferred_music_history_list, PUSH_DEFAULT, DISPLAYLIST_MUSIC_HISTORY)
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_music_history_list, PUSH_DEFAULT, DISPLAYLIST_MUSIC_HISTORY)
|
||||||
GENERIC_DEFERRED_PUSH_GENERAL(deferred_image_history_list, PUSH_DEFAULT, DISPLAYLIST_IMAGES_HISTORY)
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_image_history_list, PUSH_DEFAULT, DISPLAYLIST_IMAGES_HISTORY)
|
||||||
GENERIC_DEFERRED_PUSH_GENERAL(deferred_video_history_list, PUSH_DEFAULT, DISPLAYLIST_VIDEO_HISTORY)
|
GENERIC_DEFERRED_PUSH_GENERAL(deferred_video_history_list, PUSH_DEFAULT, DISPLAYLIST_VIDEO_HISTORY)
|
||||||
|
@ -776,6 +777,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||||
{MENU_ENUM_LABEL_DEFERRED_MUSIC, deferred_music_list},
|
{MENU_ENUM_LABEL_DEFERRED_MUSIC, deferred_music_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST, deferred_music_history_list},
|
{MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST, deferred_music_history_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST, deferred_playlist_list},
|
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST, deferred_playlist_list},
|
||||||
|
{MENU_ENUM_LABEL_DESCENDANT_ENTRY, deferred_descendant_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST, deferred_image_history_list},
|
{MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST, deferred_image_history_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST, deferred_video_history_list},
|
{MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST, deferred_video_history_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_EXPLORE_LIST, deferred_explore_list},
|
{MENU_ENUM_LABEL_DEFERRED_EXPLORE_LIST, deferred_explore_list},
|
||||||
|
|
|
@ -1181,6 +1181,7 @@ static int menu_cbs_init_bind_left_compare_type(menu_file_list_cbs_t *cbs,
|
||||||
case FILE_TYPE_RDB:
|
case FILE_TYPE_RDB:
|
||||||
case FILE_TYPE_RDB_ENTRY:
|
case FILE_TYPE_RDB_ENTRY:
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case FILE_TYPE_SHADER:
|
case FILE_TYPE_SHADER:
|
||||||
case FILE_TYPE_SHADER_PRESET:
|
case FILE_TYPE_SHADER_PRESET:
|
||||||
case FILE_TYPE_IMAGE:
|
case FILE_TYPE_IMAGE:
|
||||||
|
|
|
@ -1076,6 +1076,16 @@ int generic_action_ok_displaylist_push(
|
||||||
menu->rpl_entry_selection_ptr = (unsigned)entry_idx;
|
menu->rpl_entry_selection_ptr = (unsigned)entry_idx;
|
||||||
dl_type = DISPLAYLIST_GENERIC;
|
dl_type = DISPLAYLIST_GENERIC;
|
||||||
break;
|
break;
|
||||||
|
case ACTION_OK_DL_DESCENDANT_ENTRY:
|
||||||
|
fill_pathname_expand_special(menu->deferred_path, label, sizeof(menu->deferred_path));
|
||||||
|
info_label = msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY);
|
||||||
|
info_path = menu->deferred_path;
|
||||||
|
info.enum_idx = MENU_ENUM_LABEL_DESCENDANT_ENTRY;
|
||||||
|
info.directory_ptr = idx;
|
||||||
|
menu->rpl_entry_selection_ptr = (unsigned)entry_idx;
|
||||||
|
dl_type = DISPLAYLIST_DESCENDANT;
|
||||||
|
info.type = type;
|
||||||
|
break;
|
||||||
case ACTION_OK_DL_AUDIO_DSP_PLUGIN:
|
case ACTION_OK_DL_AUDIO_DSP_PLUGIN:
|
||||||
filebrowser_clear_type();
|
filebrowser_clear_type();
|
||||||
info.directory_ptr = idx;
|
info.directory_ptr = idx;
|
||||||
|
@ -6587,6 +6597,7 @@ STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_overlay_preset, ACTION_OK_DL_OVERLAY_PRE
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_osk_overlay_preset, ACTION_OK_DL_OSK_OVERLAY_PRESET)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_osk_overlay_preset, ACTION_OK_DL_OSK_OVERLAY_PRESET)
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_video_font, ACTION_OK_DL_VIDEO_FONT)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_video_font, ACTION_OK_DL_VIDEO_FONT)
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_rpl_entry, ACTION_OK_DL_RPL_ENTRY)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_rpl_entry, ACTION_OK_DL_RPL_ENTRY)
|
||||||
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_descendant_entry, ACTION_OK_DL_DESCENDANT_ENTRY)
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_open_archive, ACTION_OK_DL_OPEN_ARCHIVE)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_open_archive, ACTION_OK_DL_OPEN_ARCHIVE)
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_open_archive_detect_core, ACTION_OK_DL_OPEN_ARCHIVE_DETECT_CORE)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_open_archive_detect_core, ACTION_OK_DL_OPEN_ARCHIVE_DETECT_CORE)
|
||||||
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_file_load_music, ACTION_OK_DL_MUSIC)
|
STATIC_DEFAULT_ACTION_OK_FUNC(action_ok_file_load_music, ACTION_OK_DL_MUSIC)
|
||||||
|
@ -9637,6 +9648,9 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
BIND_ACTION_OK(cbs, action_ok_rpl_entry);
|
BIND_ACTION_OK(cbs, action_ok_rpl_entry);
|
||||||
break;
|
break;
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
|
BIND_ACTION_OK(cbs, action_ok_descendant_entry);
|
||||||
|
break;
|
||||||
case FILE_TYPE_PLAYLIST_COLLECTION:
|
case FILE_TYPE_PLAYLIST_COLLECTION:
|
||||||
BIND_ACTION_OK(cbs, action_ok_playlist_collection);
|
BIND_ACTION_OK(cbs, action_ok_playlist_collection);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1035,6 +1035,7 @@ static int menu_cbs_init_bind_right_compare_type(menu_file_list_cbs_t *cbs,
|
||||||
case FILE_TYPE_RDB:
|
case FILE_TYPE_RDB:
|
||||||
case FILE_TYPE_RDB_ENTRY:
|
case FILE_TYPE_RDB_ENTRY:
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case FILE_TYPE_SHADER:
|
case FILE_TYPE_SHADER:
|
||||||
case FILE_TYPE_SHADER_PRESET:
|
case FILE_TYPE_SHADER_PRESET:
|
||||||
case FILE_TYPE_IMAGE:
|
case FILE_TYPE_IMAGE:
|
||||||
|
|
|
@ -271,6 +271,7 @@ static int menu_cbs_init_bind_scan_compare_type(menu_file_list_cbs_t *cbs,
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
BIND_ACTION_SCAN(cbs, action_switch_thumbnail);
|
BIND_ACTION_SCAN(cbs, action_switch_thumbnail);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -1856,6 +1856,7 @@ int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
|
||||||
{MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_NETPLAY_MITM_SERVER, action_get_title_dropdown_item},
|
{MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_NETPLAY_MITM_SERVER, action_get_title_dropdown_item},
|
||||||
#endif
|
#endif
|
||||||
{MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS, action_get_quick_menu_views_settings_list},
|
{MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS, action_get_quick_menu_views_settings_list},
|
||||||
|
{MENU_ENUM_LABEL_DESCENDANT_ENTRY, action_get_title_deferred_playlist_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST, action_get_title_deferred_playlist_list},
|
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST, action_get_title_deferred_playlist_list},
|
||||||
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_MANAGER_SETTINGS, action_get_title_deferred_playlist_list},
|
{MENU_ENUM_LABEL_DEFERRED_PLAYLIST_MANAGER_SETTINGS, action_get_title_deferred_playlist_list},
|
||||||
{MENU_ENUM_LABEL_PLAYLISTS_TAB, action_get_title_collection},
|
{MENU_ENUM_LABEL_PLAYLISTS_TAB, action_get_title_collection},
|
||||||
|
@ -1869,6 +1870,7 @@ int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
|
||||||
|
|
||||||
if (cbs->enum_idx != MENU_ENUM_LABEL_PLAYLIST_ENTRY &&
|
if (cbs->enum_idx != MENU_ENUM_LABEL_PLAYLIST_ENTRY &&
|
||||||
cbs->enum_idx != MENU_ENUM_LABEL_EXPLORE_ITEM &&
|
cbs->enum_idx != MENU_ENUM_LABEL_EXPLORE_ITEM &&
|
||||||
|
cbs->enum_idx != MENU_ENUM_LABEL_DESCENDANT_ENTRY &&
|
||||||
menu_cbs_init_bind_title_compare_label(cbs, label) == 0)
|
menu_cbs_init_bind_title_compare_label(cbs, label) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -9506,6 +9506,7 @@ static void materialui_populate_entries(void *data, const char *path,
|
||||||
| MUI_FLAG_IS_DROPDOWN_LIST);
|
| MUI_FLAG_IS_DROPDOWN_LIST);
|
||||||
|
|
||||||
if ( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST))
|
if ( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST))
|
||||||
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
||||||
|
@ -9587,7 +9588,8 @@ static void materialui_populate_entries(void *data, const char *path,
|
||||||
|
|
||||||
if ( (list)
|
if ( (list)
|
||||||
&& (list_size > 0)
|
&& (list_size > 0)
|
||||||
&& (list->list[0].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[0].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[0].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
mui->playlist = playlist_get_cached();
|
mui->playlist = playlist_get_cached();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11508,6 +11510,7 @@ static void materialui_list_insert(void *userdata,
|
||||||
node->icon_type = MUI_ICON_TYPE_NONE;
|
node->icon_type = MUI_ICON_TYPE_NONE;
|
||||||
break;
|
break;
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case MENU_SETTING_DROPDOWN_ITEM:
|
case MENU_SETTING_DROPDOWN_ITEM:
|
||||||
case MENU_SETTING_DROPDOWN_ITEM_RESOLUTION:
|
case MENU_SETTING_DROPDOWN_ITEM_RESOLUTION:
|
||||||
case MENU_SETTING_DROPDOWN_ITEM_VIDEO_SHADER_PARAM:
|
case MENU_SETTING_DROPDOWN_ITEM_VIDEO_SHADER_PARAM:
|
||||||
|
|
|
@ -2321,6 +2321,7 @@ static uintptr_t ozone_entries_icon_get_texture(
|
||||||
case FILE_TYPE_IN_CARCHIVE:
|
case FILE_TYPE_IN_CARCHIVE:
|
||||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE];
|
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE];
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case FILE_TYPE_PLAYLIST_COLLECTION:
|
case FILE_TYPE_PLAYLIST_COLLECTION:
|
||||||
switch (ozone->tabs[ozone->categories_selection_ptr])
|
switch (ozone->tabs[ozone->categories_selection_ptr])
|
||||||
{
|
{
|
||||||
|
@ -3728,14 +3729,19 @@ static bool ozone_is_main_menu_playlist(void *userdata)
|
||||||
{
|
{
|
||||||
ozone_handle_t *ozone = (ozone_handle_t*)userdata;
|
ozone_handle_t *ozone = (ozone_handle_t*)userdata;
|
||||||
menu_entry_t entry;
|
menu_entry_t entry;
|
||||||
|
MENU_ENTRY_INITIALIZE(entry);
|
||||||
|
menu_entry_get(&entry, 0, 0, NULL, true);
|
||||||
|
|
||||||
|
if (entry.type == FILE_TYPE_DESCENDANT_ENTRY)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ( (ozone->depth != 3)
|
if ( (ozone->depth != 3)
|
||||||
|| (ozone->flags & OZONE_FLAG_IS_DB_MANAGER_LIST)
|
|| (ozone->flags & OZONE_FLAG_IS_DB_MANAGER_LIST)
|
||||||
|| (ozone->flags & OZONE_FLAG_IS_FILE_LIST))
|
|| (ozone->flags & OZONE_FLAG_IS_FILE_LIST))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
MENU_ENTRY_INITIALIZE(entry);
|
|
||||||
menu_entry_get(&entry, 0, 0, NULL, true);
|
|
||||||
return entry.type == FILE_TYPE_RPL_ENTRY;
|
return entry.type == FILE_TYPE_RPL_ENTRY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4176,7 +4182,7 @@ static void ozone_update_content_metadata(ozone_handle_t *ozone)
|
||||||
|
|
||||||
if (!string_is_empty(menu_st->thumbnail_path_data->content_core_name))
|
if (!string_is_empty(menu_st->thumbnail_path_data->content_core_name))
|
||||||
{
|
{
|
||||||
if ( string_is_equal(
|
if ( (string_is_equal(
|
||||||
menu_st->thumbnail_path_data->content_core_name,
|
menu_st->thumbnail_path_data->content_core_name,
|
||||||
"imageviewer")
|
"imageviewer")
|
||||||
|| string_is_equal(
|
|| string_is_equal(
|
||||||
|
@ -4185,6 +4191,8 @@ static void ozone_update_content_metadata(ozone_handle_t *ozone)
|
||||||
|| string_is_equal(
|
|| string_is_equal(
|
||||||
menu_st->thumbnail_path_data->content_core_name,
|
menu_st->thumbnail_path_data->content_core_name,
|
||||||
"movieplayer"))
|
"movieplayer"))
|
||||||
|
&& (( !(ozone->flags & OZONE_FLAG_IS_PLAYLIST))
|
||||||
|
&& ( !(ozone->flags2 & OZONE_FLAG2_IS_QUICK_MENU))))
|
||||||
ozone->flags2 |= OZONE_FLAG2_SELECTION_CORE_IS_VIEWER;
|
ozone->flags2 |= OZONE_FLAG2_SELECTION_CORE_IS_VIEWER;
|
||||||
else
|
else
|
||||||
ozone->flags2 &= ~OZONE_FLAG2_SELECTION_CORE_IS_VIEWER;
|
ozone->flags2 &= ~OZONE_FLAG2_SELECTION_CORE_IS_VIEWER;
|
||||||
|
@ -4242,7 +4250,8 @@ static void ozone_update_content_metadata(ozone_handle_t *ozone)
|
||||||
* to the selected entry */
|
* to the selected entry */
|
||||||
else if (list
|
else if (list
|
||||||
&& (selection < list_size)
|
&& (selection < list_size)
|
||||||
&& (list->list[selection].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[selection].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[selection].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
{
|
{
|
||||||
playlist_index = list->list[selection].entry_idx;
|
playlist_index = list->list[selection].entry_idx;
|
||||||
|
|
||||||
|
@ -5947,7 +5956,7 @@ border_iterate:
|
||||||
if (texture)
|
if (texture)
|
||||||
{
|
{
|
||||||
/* Console specific icons */
|
/* Console specific icons */
|
||||||
if ( entry.type == FILE_TYPE_RPL_ENTRY
|
if ( (entry.type == FILE_TYPE_RPL_ENTRY)
|
||||||
&& ozone->categories_selection_ptr > ozone->system_tab_end)
|
&& ozone->categories_selection_ptr > ozone->system_tab_end)
|
||||||
{
|
{
|
||||||
ozone_node_t *sidebar_node = (ozone_node_t*)
|
ozone_node_t *sidebar_node = (ozone_node_t*)
|
||||||
|
@ -6021,7 +6030,7 @@ border_iterate:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* History/Favorite console specific content icons */
|
/* History/Favorite console specific content icons */
|
||||||
else if ( entry.type == FILE_TYPE_RPL_ENTRY
|
else if ( (entry.type == FILE_TYPE_RPL_ENTRY)
|
||||||
&& show_history_icons != PLAYLIST_SHOW_HISTORY_ICONS_DEFAULT)
|
&& show_history_icons != PLAYLIST_SHOW_HISTORY_ICONS_DEFAULT)
|
||||||
{
|
{
|
||||||
switch (ozone->tabs[ozone->categories_selection_ptr])
|
switch (ozone->tabs[ozone->categories_selection_ptr])
|
||||||
|
@ -7723,7 +7732,8 @@ static void ozone_set_thumbnail_content(void *data, const char *s)
|
||||||
* to the selected entry */
|
* to the selected entry */
|
||||||
if ( list
|
if ( list
|
||||||
&& (selection < list_size)
|
&& (selection < list_size)
|
||||||
&& (list->list[selection].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[selection].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[selection].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
{
|
{
|
||||||
selection = list->list[selection].entry_idx;
|
selection = list->list[selection].entry_idx;
|
||||||
pl = playlist_get_cached();
|
pl = playlist_get_cached();
|
||||||
|
@ -8001,6 +8011,7 @@ static bool ozone_manage_available(ozone_handle_t *ozone, size_t current_selecti
|
||||||
{
|
{
|
||||||
case FILE_TYPE_PLAYLIST_COLLECTION:
|
case FILE_TYPE_PLAYLIST_COLLECTION:
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -11749,8 +11760,7 @@ static void ozone_selection_changed(ozone_handle_t *ozone, bool allow_animation)
|
||||||
bool update_thumbnails = false;
|
bool update_thumbnails = false;
|
||||||
|
|
||||||
/* Playlist updates */
|
/* Playlist updates */
|
||||||
if ( (ozone->flags & OZONE_FLAG_IS_PLAYLIST)
|
if (ozone->flags & OZONE_FLAG_IS_PLAYLIST)
|
||||||
&& (ozone->depth == 1 || ozone->depth == 3))
|
|
||||||
{
|
{
|
||||||
ozone_set_thumbnail_content(ozone, "");
|
ozone_set_thumbnail_content(ozone, "");
|
||||||
update_thumbnails = true;
|
update_thumbnails = true;
|
||||||
|
@ -12425,7 +12435,7 @@ static void ozone_populate_entries(
|
||||||
|
|
||||||
if (!list || (list->size < 1))
|
if (!list || (list->size < 1))
|
||||||
goto_sidebar = true;
|
goto_sidebar = true;
|
||||||
else if ((list->list[0].type != FILE_TYPE_RPL_ENTRY))
|
else if (list->list[0].type != FILE_TYPE_RPL_ENTRY)
|
||||||
goto_sidebar = true;
|
goto_sidebar = true;
|
||||||
|
|
||||||
if (goto_sidebar)
|
if (goto_sidebar)
|
||||||
|
@ -12502,7 +12512,8 @@ static void ozone_populate_entries(
|
||||||
else
|
else
|
||||||
ozone->flags &= ~OZONE_FLAG_IS_STATE_SLOT;
|
ozone->flags &= ~OZONE_FLAG_IS_STATE_SLOT;
|
||||||
|
|
||||||
if (ozone_is_playlist(ozone, true))
|
if (ozone_is_playlist(ozone, true)
|
||||||
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY)))
|
||||||
ozone->flags |= OZONE_FLAG_IS_PLAYLIST;
|
ozone->flags |= OZONE_FLAG_IS_PLAYLIST;
|
||||||
else
|
else
|
||||||
ozone->flags &= ~OZONE_FLAG_IS_PLAYLIST;
|
ozone->flags &= ~OZONE_FLAG_IS_PLAYLIST;
|
||||||
|
@ -12642,7 +12653,7 @@ static void ozone_populate_entries(
|
||||||
* and savestate slots */
|
* and savestate slots */
|
||||||
if (
|
if (
|
||||||
( (ozone->flags & OZONE_FLAG_WANT_THUMBNAIL_BAR))
|
( (ozone->flags & OZONE_FLAG_WANT_THUMBNAIL_BAR))
|
||||||
&& ( ((ozone->flags & OZONE_FLAG_IS_PLAYLIST) && (ozone->depth == 1 || ozone->depth == 3))
|
&& ( ((ozone->flags & OZONE_FLAG_IS_PLAYLIST))
|
||||||
|| ((ozone->flags & OZONE_FLAG_IS_DB_MANAGER_LIST) && (ozone->depth >= 4))
|
|| ((ozone->flags & OZONE_FLAG_IS_DB_MANAGER_LIST) && (ozone->depth >= 4))
|
||||||
|| (ozone->flags & OZONE_FLAG_IS_EXPLORE_LIST)
|
|| (ozone->flags & OZONE_FLAG_IS_EXPLORE_LIST)
|
||||||
|| (ozone->flags & OZONE_FLAG_IS_FILE_LIST)
|
|| (ozone->flags & OZONE_FLAG_IS_FILE_LIST)
|
||||||
|
|
|
@ -7027,7 +7027,8 @@ static void rgui_scan_selected_entry_thumbnail(rgui_t *rgui, bool force_load)
|
||||||
* to the selected entry */
|
* to the selected entry */
|
||||||
if ( (list)
|
if ( (list)
|
||||||
&& (selection < list_size)
|
&& (selection < list_size)
|
||||||
&& (list->list[selection].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[selection].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[selection].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
{
|
{
|
||||||
playlist_valid = true;
|
playlist_valid = true;
|
||||||
playlist_index = list->list[selection].entry_idx;
|
playlist_index = list->list[selection].entry_idx;
|
||||||
|
@ -7385,6 +7386,7 @@ static void rgui_populate_entries(
|
||||||
|
|
||||||
/* Check whether we are currently viewing a playlist */
|
/* Check whether we are currently viewing a playlist */
|
||||||
if ( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST))
|
if ( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST))
|
||||||
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
||||||
|
|
|
@ -1473,7 +1473,8 @@ static void xmb_set_thumbnail_content(void *data, const char *s)
|
||||||
* to the selected entry */
|
* to the selected entry */
|
||||||
if ( list
|
if ( list
|
||||||
&& (selection < list_size)
|
&& (selection < list_size)
|
||||||
&& (list->list[selection].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[selection].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[selection].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
{
|
{
|
||||||
playlist_valid = true;
|
playlist_valid = true;
|
||||||
playlist_index = list->list[selection].entry_idx;
|
playlist_index = list->list[selection].entry_idx;
|
||||||
|
@ -1722,7 +1723,8 @@ static void xmb_set_dynamic_icon_content(
|
||||||
* to the selected entry */
|
* to the selected entry */
|
||||||
if ( list
|
if ( list
|
||||||
&& (selection < list_size)
|
&& (selection < list_size)
|
||||||
&& (list->list[selection].type == FILE_TYPE_RPL_ENTRY))
|
&& ((list->list[selection].type == FILE_TYPE_RPL_ENTRY)
|
||||||
|
|| (list->list[selection].type == FILE_TYPE_DESCENDANT_ENTRY)))
|
||||||
{
|
{
|
||||||
playlist_valid = true;
|
playlist_valid = true;
|
||||||
playlist_index = list->list[selection].entry_idx;
|
playlist_index = list->list[selection].entry_idx;
|
||||||
|
@ -3101,7 +3103,8 @@ static void xmb_populate_entries(void *data,
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST))
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_MUSIC_LIST))
|
||||||
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST));
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST))
|
||||||
|
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY));
|
||||||
|
|
||||||
xmb->is_playlist |=
|
xmb->is_playlist |=
|
||||||
(xmb_horizontal_type == FILE_TYPE_PLAYLIST_COLLECTION)
|
(xmb_horizontal_type == FILE_TYPE_PLAYLIST_COLLECTION)
|
||||||
|
@ -3152,6 +3155,8 @@ static void xmb_populate_entries(void *data,
|
||||||
xmb->is_quick_menu =
|
xmb->is_quick_menu =
|
||||||
string_is_equal(label,
|
string_is_equal(label,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS))
|
msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS))
|
||||||
|
|| string_is_equal(label,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY))
|
||||||
|| string_is_equal(label,
|
|| string_is_equal(label,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_CONTENT_SETTINGS))
|
msg_hash_to_str(MENU_ENUM_LABEL_CONTENT_SETTINGS))
|
||||||
|| string_is_equal(label,
|
|| string_is_equal(label,
|
||||||
|
@ -3839,6 +3844,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
|
||||||
case FILE_TYPE_IN_CARCHIVE:
|
case FILE_TYPE_IN_CARCHIVE:
|
||||||
return xmb->textures.list[XMB_TEXTURE_FILE];
|
return xmb->textures.list[XMB_TEXTURE_FILE];
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
case FILE_TYPE_PLAYLIST_COLLECTION:
|
case FILE_TYPE_PLAYLIST_COLLECTION:
|
||||||
if (core_node)
|
if (core_node)
|
||||||
return core_node->content_icon;
|
return core_node->content_icon;
|
||||||
|
@ -3859,6 +3865,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case FILE_TYPE_RPL_ENTRY:
|
case FILE_TYPE_RPL_ENTRY:
|
||||||
|
case FILE_TYPE_DESCENDANT_ENTRY:
|
||||||
return db_node->content_icon;
|
return db_node->content_icon;
|
||||||
case FILE_TYPE_PLAYLIST_COLLECTION:
|
case FILE_TYPE_PLAYLIST_COLLECTION:
|
||||||
return db_node->icon;
|
return db_node->icon;
|
||||||
|
@ -5250,7 +5257,7 @@ static int xmb_draw_item(
|
||||||
texture = sidebar_node->icon;
|
texture = sidebar_node->icon;
|
||||||
}
|
}
|
||||||
/* History/Favorite console specific content icons */
|
/* History/Favorite console specific content icons */
|
||||||
else if (entry_type == FILE_TYPE_RPL_ENTRY
|
else if ((entry_type == FILE_TYPE_RPL_ENTRY)
|
||||||
&& show_history_icons != PLAYLIST_SHOW_HISTORY_ICONS_DEFAULT)
|
&& show_history_icons != PLAYLIST_SHOW_HISTORY_ICONS_DEFAULT)
|
||||||
{
|
{
|
||||||
switch (xmb_get_system_tab(xmb, (unsigned)xmb->categories_selection_ptr))
|
switch (xmb_get_system_tab(xmb, (unsigned)xmb->categories_selection_ptr))
|
||||||
|
|
|
@ -74,6 +74,7 @@ enum
|
||||||
ACTION_OK_DL_MANUAL_SCAN_DIR_LIST,
|
ACTION_OK_DL_MANUAL_SCAN_DIR_LIST,
|
||||||
ACTION_OK_DL_HELP,
|
ACTION_OK_DL_HELP,
|
||||||
ACTION_OK_DL_RPL_ENTRY,
|
ACTION_OK_DL_RPL_ENTRY,
|
||||||
|
ACTION_OK_DL_DESCENDANT_ENTRY,
|
||||||
ACTION_OK_DL_RDB_ENTRY,
|
ACTION_OK_DL_RDB_ENTRY,
|
||||||
ACTION_OK_DL_RDB_ENTRY_SUBMENU,
|
ACTION_OK_DL_RDB_ENTRY_SUBMENU,
|
||||||
ACTION_OK_DL_CDROM_INFO_LIST,
|
ACTION_OK_DL_CDROM_INFO_LIST,
|
||||||
|
|
|
@ -2503,6 +2503,8 @@ static int menu_displaylist_parse_playlist(
|
||||||
bool pl_show_sublabels = settings->bools.playlist_show_sublabels;
|
bool pl_show_sublabels = settings->bools.playlist_show_sublabels;
|
||||||
void (*sanitization)(char*) = NULL;
|
void (*sanitization)(char*) = NULL;
|
||||||
unsigned count = 0;
|
unsigned count = 0;
|
||||||
|
enum msg_file_type type_target = FILE_TYPE_RPL_ENTRY;
|
||||||
|
enum msg_hash_enums enum_idx = MENU_ENUM_LABEL_PLAYLIST_ENTRY;
|
||||||
|
|
||||||
if (list_size == 0)
|
if (list_size == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2667,10 +2669,17 @@ static int menu_displaylist_parse_playlist(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (entry && string_is_equal(entry->core_path, "virtual")
|
||||||
|
&& string_is_equal(entry->core_name, "playlist"))
|
||||||
|
{
|
||||||
|
type_target = FILE_TYPE_DESCENDANT_ENTRY;
|
||||||
|
enum_idx = MENU_ENUM_LABEL_DESCENDANT_ENTRY;
|
||||||
|
}
|
||||||
|
|
||||||
/* Add menu entry */
|
/* Add menu entry */
|
||||||
if (entry_valid && menu_entries_append(info_list,
|
if (entry_valid && menu_entries_append(info_list,
|
||||||
menu_entry_lbl, entry_path,
|
menu_entry_lbl, entry_path,
|
||||||
MENU_ENUM_LABEL_PLAYLIST_ENTRY, FILE_TYPE_RPL_ENTRY, 0, i, NULL))
|
enum_idx, type_target, 0, i, NULL))
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15539,6 +15548,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||||
case DISPLAYLIST_FILE_BROWSER_SELECT_CORE:
|
case DISPLAYLIST_FILE_BROWSER_SELECT_CORE:
|
||||||
case DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION:
|
case DISPLAYLIST_FILE_BROWSER_SELECT_COLLECTION:
|
||||||
case DISPLAYLIST_GENERIC:
|
case DISPLAYLIST_GENERIC:
|
||||||
|
case DISPLAYLIST_DESCENDANT:
|
||||||
info->flags |= MD_FLAG_NEED_NAVIGATION_CLEAR;
|
info->flags |= MD_FLAG_NEED_NAVIGATION_CLEAR;
|
||||||
/* fall-through */
|
/* fall-through */
|
||||||
case DISPLAYLIST_PENDING_CLEAR:
|
case DISPLAYLIST_PENDING_CLEAR:
|
||||||
|
@ -15717,6 +15727,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||||
use_filebrowser = true;
|
use_filebrowser = true;
|
||||||
break;
|
break;
|
||||||
case DISPLAYLIST_PLAYLIST:
|
case DISPLAYLIST_PLAYLIST:
|
||||||
|
case DISPLAYLIST_DESCENDANT_LIST:
|
||||||
{
|
{
|
||||||
const char *_msg = path_basename_nocompression(info->path);
|
const char *_msg = path_basename_nocompression(info->path);
|
||||||
menu_entries_clear(info->list);
|
menu_entries_clear(info->list);
|
||||||
|
|
|
@ -101,6 +101,8 @@ enum menu_displaylist_ctl_state
|
||||||
DISPLAYLIST_CONTENTLESS_CORES,
|
DISPLAYLIST_CONTENTLESS_CORES,
|
||||||
DISPLAYLIST_FAVORITES,
|
DISPLAYLIST_FAVORITES,
|
||||||
DISPLAYLIST_PLAYLIST,
|
DISPLAYLIST_PLAYLIST,
|
||||||
|
DISPLAYLIST_DESCENDANT,
|
||||||
|
DISPLAYLIST_DESCENDANT_LIST,
|
||||||
DISPLAYLIST_VIDEO_HISTORY,
|
DISPLAYLIST_VIDEO_HISTORY,
|
||||||
DISPLAYLIST_MUSIC_HISTORY,
|
DISPLAYLIST_MUSIC_HISTORY,
|
||||||
DISPLAYLIST_IMAGES_HISTORY,
|
DISPLAYLIST_IMAGES_HISTORY,
|
||||||
|
|
|
@ -3330,6 +3330,7 @@ bool menu_driver_search_filter_enabled(const char *label, unsigned type)
|
||||||
|| (type == MENU_IMAGES_TAB)
|
|| (type == MENU_IMAGES_TAB)
|
||||||
|| (type == MENU_MUSIC_TAB)
|
|| (type == MENU_MUSIC_TAB)
|
||||||
|| (type == MENU_VIDEO_TAB)
|
|| (type == MENU_VIDEO_TAB)
|
||||||
|
|| (type == FILE_TYPE_DESCENDANT_ENTRY)
|
||||||
|| (type == FILE_TYPE_PLAYLIST_COLLECTION);
|
|| (type == FILE_TYPE_PLAYLIST_COLLECTION);
|
||||||
|
|
||||||
if (!filter_enabled && !string_is_empty(label))
|
if (!filter_enabled && !string_is_empty(label))
|
||||||
|
@ -7914,6 +7915,16 @@ int generic_menu_entry_action(
|
||||||
flush_target = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS);
|
flush_target = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else if ( string_is_equal(parent_label,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY))
|
||||||
|
&& (!string_is_empty(deferred_path)
|
||||||
|
&& !string_is_empty(content_path)
|
||||||
|
&& string_is_equal(deferred_path, content_path))
|
||||||
|
)
|
||||||
|
{
|
||||||
|
flush_target = msg_hash_to_str(MENU_ENUM_LABEL_DESCENDANT_ENTRY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
/* If core was launched via 'Contentless Cores' menu,
|
/* If core was launched via 'Contentless Cores' menu,
|
||||||
* flush to 'Contentless Cores' menu */
|
* flush to 'Contentless Cores' menu */
|
||||||
else if ( string_is_equal(parent_label,
|
else if ( string_is_equal(parent_label,
|
||||||
|
|
|
@ -82,6 +82,7 @@ enum msg_file_type
|
||||||
FILE_TYPE_RDB,
|
FILE_TYPE_RDB,
|
||||||
FILE_TYPE_RDB_ENTRY,
|
FILE_TYPE_RDB_ENTRY,
|
||||||
FILE_TYPE_RPL_ENTRY,
|
FILE_TYPE_RPL_ENTRY,
|
||||||
|
FILE_TYPE_DESCENDANT_ENTRY,
|
||||||
FILE_TYPE_BOOL_ON,
|
FILE_TYPE_BOOL_ON,
|
||||||
FILE_TYPE_BOOL_OFF,
|
FILE_TYPE_BOOL_OFF,
|
||||||
FILE_TYPE_RECORD_CONFIG,
|
FILE_TYPE_RECORD_CONFIG,
|
||||||
|
@ -876,6 +877,7 @@ enum msg_hash_enums
|
||||||
#endif
|
#endif
|
||||||
MENU_ENUM_LABEL_PLAYLIST_COLLECTION_ENTRY,
|
MENU_ENUM_LABEL_PLAYLIST_COLLECTION_ENTRY,
|
||||||
MENU_ENUM_LABEL_PLAYLIST_ENTRY,
|
MENU_ENUM_LABEL_PLAYLIST_ENTRY,
|
||||||
|
MENU_ENUM_LABEL_DESCENDANT_ENTRY,
|
||||||
|
|
||||||
MENU_LABEL(START_VIDEO_PROCESSOR),
|
MENU_LABEL(START_VIDEO_PROCESSOR),
|
||||||
MENU_LABEL(START_NET_RETROPAD),
|
MENU_LABEL(START_NET_RETROPAD),
|
||||||
|
|
Loading…
Reference in New Issue