mirror of
https://github.com/libretro/RetroArch
synced 2025-04-02 07:20:34 +00:00
Cleanup menu_displaylist_parse_playlists
This commit is contained in:
parent
b5a7020366
commit
4d7f9a85f1
@ -2686,89 +2686,90 @@ static int menu_displaylist_parse_options_remappings(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int menu_displaylist_parse_playlists(
|
static unsigned menu_displaylist_parse_playlists(
|
||||||
menu_displaylist_info_t *info, bool horizontal)
|
menu_displaylist_info_t *info, bool horizontal)
|
||||||
{
|
{
|
||||||
size_t i, list_size;
|
size_t i, list_size;
|
||||||
struct string_list *str_list = NULL;
|
struct string_list *str_list = NULL;
|
||||||
unsigned items_found = 0;
|
unsigned count = 0;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
const char *path = info->path;
|
const char *path = info->path;
|
||||||
|
|
||||||
if (string_is_empty(path))
|
if (string_is_empty(path))
|
||||||
{
|
{
|
||||||
if (frontend_driver_parse_drive_list(info->list, true) != 0)
|
int ret = frontend_driver_parse_drive_list(info->list, true);
|
||||||
menu_entries_append_enum(info->list, "/", "",
|
/* TODO/FIXME - we need to know the actual count number here */
|
||||||
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0);
|
if (ret == 0)
|
||||||
return 0;
|
count++;
|
||||||
|
else
|
||||||
|
if (menu_entries_append_enum(info->list, "/", "",
|
||||||
|
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0))
|
||||||
|
count++;
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
str_list = dir_list_new(path, NULL, true,
|
|
||||||
settings->bools.show_hidden_files, true, false);
|
|
||||||
|
|
||||||
if (!str_list)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
dir_list_sort(str_list, true);
|
|
||||||
|
|
||||||
list_size = str_list->size;
|
|
||||||
|
|
||||||
if (!horizontal)
|
if (!horizontal)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBRETRODB
|
#ifdef HAVE_LIBRETRODB
|
||||||
if (settings->bools.menu_content_show_add)
|
if (settings->bools.menu_content_show_add)
|
||||||
{
|
{
|
||||||
menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SCAN_DIRECTORY),
|
msg_hash_to_str(MENU_ENUM_LABEL_SCAN_DIRECTORY),
|
||||||
MENU_ENUM_LABEL_SCAN_DIRECTORY,
|
MENU_ENUM_LABEL_SCAN_DIRECTORY,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
menu_entries_append_enum(info->list,
|
count++;
|
||||||
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE),
|
msg_hash_to_str(MENU_ENUM_LABEL_SCAN_FILE),
|
||||||
MENU_ENUM_LABEL_SCAN_FILE,
|
MENU_ENUM_LABEL_SCAN_FILE,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (settings->bools.menu_content_show_favorites)
|
if (settings->bools.menu_content_show_favorites)
|
||||||
menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_FAVORITES),
|
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_FAVORITES),
|
||||||
MENU_ENUM_LABEL_GOTO_FAVORITES,
|
MENU_ENUM_LABEL_GOTO_FAVORITES,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
|
count++;
|
||||||
if (settings->bools.menu_content_show_images)
|
if (settings->bools.menu_content_show_images)
|
||||||
menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_IMAGES),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_IMAGES),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_IMAGES),
|
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_IMAGES),
|
||||||
MENU_ENUM_LABEL_GOTO_IMAGES,
|
MENU_ENUM_LABEL_GOTO_IMAGES,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
|
count++;
|
||||||
|
|
||||||
if (settings->bools.menu_content_show_music)
|
if (settings->bools.menu_content_show_music)
|
||||||
menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_MUSIC),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_MUSIC),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_MUSIC),
|
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_MUSIC),
|
||||||
MENU_ENUM_LABEL_GOTO_MUSIC,
|
MENU_ENUM_LABEL_GOTO_MUSIC,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
|
count++;
|
||||||
|
|
||||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||||
if (settings->bools.menu_content_show_video)
|
if (settings->bools.menu_content_show_video)
|
||||||
menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_VIDEO),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GOTO_VIDEO),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_VIDEO),
|
msg_hash_to_str(MENU_ENUM_LABEL_GOTO_VIDEO),
|
||||||
MENU_ENUM_LABEL_GOTO_VIDEO,
|
MENU_ENUM_LABEL_GOTO_VIDEO,
|
||||||
MENU_SETTING_ACTION, 0, 0);
|
MENU_SETTING_ACTION, 0, 0))
|
||||||
|
count++;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (list_size == 0)
|
str_list = dir_list_new(path, NULL, true,
|
||||||
{
|
settings->bools.show_hidden_files, true, false);
|
||||||
string_list_free(str_list);
|
|
||||||
|
|
||||||
if (!horizontal)
|
if (!str_list)
|
||||||
goto no_playlists;
|
return count;
|
||||||
|
|
||||||
return 0;
|
dir_list_sort(str_list, true);
|
||||||
}
|
|
||||||
|
list_size = str_list->size;
|
||||||
|
|
||||||
for (i = 0; i < list_size; i++)
|
for (i = 0; i < list_size; i++)
|
||||||
{
|
{
|
||||||
@ -2802,31 +2803,18 @@ static int menu_displaylist_parse_playlists(
|
|||||||
file_type = FILE_TYPE_PLAYLIST_COLLECTION;
|
file_type = FILE_TYPE_PLAYLIST_COLLECTION;
|
||||||
|
|
||||||
if (horizontal)
|
if (horizontal)
|
||||||
{
|
|
||||||
if (!string_is_empty(path))
|
if (!string_is_empty(path))
|
||||||
path = path_basename(path);
|
path = path_basename(path);
|
||||||
}
|
|
||||||
|
|
||||||
items_found++;
|
if (menu_entries_append_enum(info->list, path, label,
|
||||||
menu_entries_append_enum(info->list, path, label,
|
|
||||||
MENU_ENUM_LABEL_PLAYLIST_COLLECTION_ENTRY,
|
MENU_ENUM_LABEL_PLAYLIST_COLLECTION_ENTRY,
|
||||||
file_type, 0, 0);
|
file_type, 0, 0))
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
string_list_free(str_list);
|
string_list_free(str_list);
|
||||||
|
|
||||||
if (items_found == 0 && !horizontal)
|
return count;
|
||||||
goto no_playlists;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
no_playlists:
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_PLAYLISTS),
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_NO_PLAYLISTS),
|
|
||||||
MENU_ENUM_LABEL_NO_PLAYLISTS,
|
|
||||||
MENU_SETTING_NO_ITEM, 0, 0);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned menu_displaylist_parse_cores(
|
static unsigned menu_displaylist_parse_cores(
|
||||||
@ -7171,19 +7159,24 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
|||||||
break;
|
break;
|
||||||
case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL:
|
case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
if (menu_displaylist_parse_playlists(info, true) == 0)
|
count = menu_displaylist_parse_playlists(info, true);
|
||||||
{
|
|
||||||
info->need_refresh = true;
|
info->need_refresh = true;
|
||||||
info->need_push = true;
|
info->need_push = true;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case DISPLAYLIST_DATABASE_PLAYLISTS:
|
case DISPLAYLIST_DATABASE_PLAYLISTS:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
if (menu_displaylist_parse_playlists(info, false) == 0)
|
count = menu_displaylist_parse_playlists(info, false);
|
||||||
{
|
|
||||||
info->need_refresh = true;
|
if (count == 0)
|
||||||
info->need_push = true;
|
menu_entries_append_enum(info->list,
|
||||||
}
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_PLAYLISTS),
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_NO_PLAYLISTS),
|
||||||
|
MENU_ENUM_LABEL_NO_PLAYLISTS,
|
||||||
|
MENU_SETTING_NO_ITEM, 0, 0);
|
||||||
|
|
||||||
|
info->need_refresh = true;
|
||||||
|
info->need_push = true;
|
||||||
break;
|
break;
|
||||||
case DISPLAYLIST_CORES:
|
case DISPLAYLIST_CORES:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user