diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 2e9ce67599..babb6a71e8 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -78,6 +78,8 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_CORES_DETECTED: case DISPLAYLIST_SHADER_PASS: case DISPLAYLIST_SHADER_PRESET: + case DISPLAYLIST_DATABASES: + case DISPLAYLIST_DATABASE_CURSORS: ret = menu_entries_parse_list(info->list, info->menu_list, info->path, info->label, info->type, info->type_default, info->exts, NULL); diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index eb60382af4..9132ed933b 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -36,6 +36,8 @@ enum DISPLAYLIST_PERFCOUNTERS_FRONTEND, DISPLAYLIST_SHADER_PASS, DISPLAYLIST_SHADER_PRESET, + DISPLAYLIST_DATABASES, + DISPLAYLIST_DATABASE_CURSORS, }; typedef struct menu_displaylist_info diff --git a/menu/menu_entries_cbs_deferred_push.c b/menu/menu_entries_cbs_deferred_push.c index 1b5a7df325..f927529ed7 100644 --- a/menu/menu_entries_cbs_deferred_push.c +++ b/menu/menu_entries_cbs_deferred_push.c @@ -1920,17 +1920,35 @@ int deferred_push_content_list(void *data, void *userdata, static int deferred_push_database_manager_list(void *data, void *userdata, const char *path, const char *label, unsigned type) { + menu_displaylist_info_t info = {0}; settings_t *settings = config_get_ptr(); - return menu_entries_parse_list((file_list_t*)data, (file_list_t*)userdata, settings->content_database, label, type, - MENU_FILE_RDB, "rdb", NULL); + + info.list = (file_list_t*)data; + info.menu_list = (file_list_t*)userdata; + info.type = type; + info.type_default = MENU_FILE_RDB; + strlcpy(info.exts, "rdb", sizeof(info.exts)); + strlcpy(info.path, settings->content_database, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + return menu_displaylist_push_list(&info, DISPLAYLIST_DATABASES); } static int deferred_push_cursor_manager_list(void *data, void *userdata, const char *path, const char *label, unsigned type) { + menu_displaylist_info_t info = {0}; settings_t *settings = config_get_ptr(); - return menu_entries_parse_list((file_list_t*)data, (file_list_t*)userdata, settings->cursor_directory, label, type, - MENU_FILE_CURSOR, "dbc", NULL); + + info.list = (file_list_t*)data; + info.menu_list = (file_list_t*)userdata; + info.type = type; + info.type_default = MENU_FILE_CURSOR; + strlcpy(info.exts, "dbc", sizeof(info.exts)); + strlcpy(info.path, settings->cursor_directory, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + return menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_CURSORS); } static int deferred_push_core_list(void *data, void *userdata,