diff --git a/menu/menu.h b/menu/menu.h index 7cb5dfadfb..5edbd5cada 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -88,6 +88,7 @@ typedef enum MENU_FILE_RDB_ENTRY, MENU_FILE_CURSOR, MENU_FILE_RECORD_CONFIG, + MENU_FILE_PLAYLIST_COLLECTION, MENU_SETTINGS, MENU_SETTING_DRIVER, MENU_SETTING_ACTION, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 010961d9a5..e079c8b7b3 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -1657,29 +1657,29 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool *n if (*info->path && !path_is_compressed) path = path_basename(path); - -#ifdef HAVE_LIBRETRO_MANAGEMENT -#ifdef RARCH_CONSOLE - if (!strcmp(info->label, "core_list") && (is_dir || - strcasecmp(path, SALAMANDER_FILE) == 0)) - continue; -#endif -#endif - /* Push type further down in the chain. * Needed for shader manager currently. */ - if (!strcmp(info->label, "core_list")) + if (!strcmp(info->label, "content_collection_list")) { + file_type = MENU_FILE_PLAYLIST_COLLECTION; + } + else if (!strcmp(info->label, "core_list")) + { +#ifdef HAVE_LIBRETRO_MANAGEMENT +#ifdef RARCH_CONSOLE + if (is_dir || strcasecmp(path, SALAMANDER_FILE) == 0) + continue; +#endif +#endif /* Compressed cores are unsupported */ if (file_type == MENU_FILE_CARCHIVE) continue; - menu_list_push(info->list, path, "", - is_dir ? MENU_FILE_DIRECTORY : MENU_FILE_CORE, 0); + file_type = is_dir ? MENU_FILE_DIRECTORY : MENU_FILE_CORE; } - else - menu_list_push(info->list, path, "", - file_type, 0); + + menu_list_push(info->list, path, "", + file_type, 0); } string_list_free(str_list); diff --git a/menu/menu_entries_cbs_ok.c b/menu/menu_entries_cbs_ok.c index b6bf3406fe..1adf164c77 100644 --- a/menu/menu_entries_cbs_ok.c +++ b/menu/menu_entries_cbs_ok.c @@ -1289,6 +1289,13 @@ static int action_ok_help(const char *path, return menu_displaylist_push_list(&info, DISPLAYLIST_HELP); } +static int action_ok_playlist_collection(const char *path, + const char *label, unsigned type, size_t idx) +{ + RARCH_LOG("Gets here.\n"); + return 0; +} + static int action_ok_video_resolution(const char *path, const char *label, unsigned type, size_t idx) { @@ -1479,6 +1486,9 @@ void menu_entries_cbs_init_bind_ok(menu_file_list_cbs_t *cbs, case MENU_SETTINGS_VIDEO_RESOLUTION: cbs->action_ok = action_ok_video_resolution; break; + case MENU_FILE_PLAYLIST_COLLECTION: + cbs->action_ok = action_ok_playlist_collection; + break; case MENU_FILE_PLAYLIST_ENTRY: if (!strcmp(label, "rdb_entry_start_game")) cbs->action_ok = action_ok_rdb_playlist_entry;