From ed1d8583f4cc155c0a035ff52fe8e5aeb8498109 Mon Sep 17 00:00:00 2001 From: twinaphex <libretro@gmail.com> Date: Wed, 28 Oct 2015 21:30:30 +0100 Subject: [PATCH] (GLUI) Playlist tab works now --- menu/drivers/glui.c | 2 ++ menu/menu_displaylist.c | 26 ++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index 22f194d8a9..eb521c3dd4 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -1156,6 +1156,8 @@ static void glui_list_cache(menu_list_type_t type, unsigned action) MENU_SETTINGS; break; case GLUI_SYSTEM_TAB_PLAYLISTS: + menu_stack->list[stack_size - 1].label = + strdup(menu_hash_to_str(MENU_VALUE_PLAYLISTS_TAB)); menu_stack->list[stack_size - 1].label = strdup(menu_hash_to_str(MENU_VALUE_PLAYLISTS_TAB)); menu_stack->list[stack_size - 1].type = diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e1d7e243b1..c8ed578e39 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3027,6 +3027,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL: { bool horizontal = (type == DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL); + if (menu_displaylist_parse_generic(info, horizontal) == 0) { info->need_refresh = true; @@ -3074,6 +3075,7 @@ int menu_displaylist_push(file_list_t *list, file_list_t *menu_list) uint32_t hash_label = 0; unsigned type = 0; menu_displaylist_info_t info = {0}; + settings_t *settings = config_get_ptr(); menu_entries_get_last_stack(&path, &label, &type, NULL); @@ -3111,8 +3113,28 @@ int menu_displaylist_push(file_list_t *list, file_list_t *menu_list) menu_displaylist_push_list_process(&info); return 0; case MENU_VALUE_PLAYLISTS_TAB: - if (menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_PLAYLISTS) != 0) - return -1; + info.type = 42; + strlcpy(info.exts, "lpl", sizeof(info.exts)); + strlcpy(info.label, menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), + sizeof(info.label)); + + if (settings->playlist_directory[0] != '\0') + { + strlcpy(info.path, settings->playlist_directory, + sizeof(info.path)); + if (menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL) != 0) + return -1; + } + else + { + menu_entries_clear(info.list); + menu_entries_push(info.list, + menu_hash_to_str(MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), + menu_hash_to_str(MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), + MENU_INFO_MESSAGE, 0, 0); + info.need_refresh = true; + info.need_push = true; + } menu_displaylist_push_list_process(&info); return 0; case MENU_VALUE_HORIZONTAL_MENU: