Create DISPLAYLIST_DATABASE_QUERY
This commit is contained in:
parent
8633d0439e
commit
8a8d45866f
|
@ -504,6 +504,12 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
||||||
info->path, info->label, info->type,
|
info->path, info->label, info->type,
|
||||||
info->type_default, info->exts, info->setting);
|
info->type_default, info->exts, info->setting);
|
||||||
break;
|
break;
|
||||||
|
case DISPLAYLIST_DATABASE_QUERY:
|
||||||
|
menu_list_clear(info->list);
|
||||||
|
menu_database_populate_query(info->list, info->path, (info->path_c[0] == '\0') ? NULL : info->path_c);
|
||||||
|
menu_list_sort_on_alt(info->list);
|
||||||
|
menu_list_populate_generic(info->list, info->path_b, info->label, info->type);
|
||||||
|
break;
|
||||||
case DISPLAYLIST_PERFCOUNTER_SELECTION:
|
case DISPLAYLIST_PERFCOUNTER_SELECTION:
|
||||||
menu_list_clear(info->list);
|
menu_list_clear(info->list);
|
||||||
menu_list_push(info->list, "Frontend Counters", "frontend_counters",
|
menu_list_push(info->list, "Frontend Counters", "frontend_counters",
|
||||||
|
|
|
@ -42,6 +42,7 @@ enum
|
||||||
DISPLAYLIST_SHADER_PRESET,
|
DISPLAYLIST_SHADER_PRESET,
|
||||||
DISPLAYLIST_DATABASES,
|
DISPLAYLIST_DATABASES,
|
||||||
DISPLAYLIST_DATABASE_CURSORS,
|
DISPLAYLIST_DATABASE_CURSORS,
|
||||||
|
DISPLAYLIST_DATABASE_QUERY,
|
||||||
DISPLAYLIST_AUDIO_FILTERS,
|
DISPLAYLIST_AUDIO_FILTERS,
|
||||||
DISPLAYLIST_VIDEO_FILTERS,
|
DISPLAYLIST_VIDEO_FILTERS,
|
||||||
DISPLAYLIST_CHEAT_FILES,
|
DISPLAYLIST_CHEAT_FILES,
|
||||||
|
@ -59,6 +60,8 @@ typedef struct menu_displaylist_info
|
||||||
file_list_t *list;
|
file_list_t *list;
|
||||||
file_list_t *menu_list;
|
file_list_t *menu_list;
|
||||||
char path[PATH_MAX_LENGTH];
|
char path[PATH_MAX_LENGTH];
|
||||||
|
char path_b[PATH_MAX_LENGTH];
|
||||||
|
char path_c[PATH_MAX_LENGTH];
|
||||||
char label[PATH_MAX_LENGTH];
|
char label[PATH_MAX_LENGTH];
|
||||||
char exts[PATH_MAX_LENGTH];
|
char exts[PATH_MAX_LENGTH];
|
||||||
unsigned type;
|
unsigned type;
|
||||||
|
|
|
@ -1005,50 +1005,34 @@ static int deferred_push_core_list_deferred(void *data, void *userdata,
|
||||||
static int deferred_push_database_manager_list_deferred(void *data, void *userdata,
|
static int deferred_push_database_manager_list_deferred(void *data, void *userdata,
|
||||||
const char *path, const char *label, unsigned type)
|
const char *path, const char *label, unsigned type)
|
||||||
{
|
{
|
||||||
file_list_t *list = NULL;
|
menu_displaylist_info_t info = {0};
|
||||||
file_list_t *menu_list = NULL;
|
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
list = (file_list_t*)data;
|
info.list = (file_list_t*)data;
|
||||||
menu_list = (file_list_t*)userdata;
|
info.menu_list = (file_list_t*)userdata;
|
||||||
|
info.type = type;
|
||||||
|
strlcpy(info.path, path, sizeof(info.path));
|
||||||
|
strlcpy(info.path_b, path, sizeof(info.path_b));
|
||||||
|
strlcpy(info.label, label, sizeof(info.label));
|
||||||
|
info.path_c[0] = '\0';
|
||||||
|
|
||||||
if (!list || !menu_list)
|
return menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_QUERY);
|
||||||
return -1;
|
|
||||||
|
|
||||||
menu_list_clear(list);
|
|
||||||
|
|
||||||
menu_database_populate_query(list, path, NULL);
|
|
||||||
|
|
||||||
menu_list_sort_on_alt(list);
|
|
||||||
|
|
||||||
menu_list_populate_generic(list, path, label, type);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int deferred_push_cursor_manager_list_deferred(void *data, void *userdata,
|
static int deferred_push_cursor_manager_list_deferred(void *data, void *userdata,
|
||||||
const char *path, const char *label, unsigned type)
|
const char *path, const char *label, unsigned type)
|
||||||
{
|
{
|
||||||
|
menu_displaylist_info_t info = {0};
|
||||||
char *query = NULL, *rdb = NULL;
|
char *query = NULL, *rdb = NULL;
|
||||||
char rdb_path[PATH_MAX_LENGTH];
|
char rdb_path[PATH_MAX_LENGTH];
|
||||||
config_file_t *conf = NULL;
|
config_file_t *conf = NULL;
|
||||||
file_list_t *list = NULL;
|
|
||||||
file_list_t *menu_list = NULL;
|
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
list = (file_list_t*)data;
|
|
||||||
menu_list = (file_list_t*)userdata;
|
|
||||||
|
|
||||||
if (!list || !menu_list)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
menu_list_clear(list);
|
|
||||||
|
|
||||||
conf = config_file_new(path);
|
conf = config_file_new(path);
|
||||||
|
|
||||||
if (!conf)
|
if (!conf)
|
||||||
|
@ -1069,11 +1053,15 @@ static int deferred_push_cursor_manager_list_deferred(void *data, void *userdata
|
||||||
fill_pathname_join(rdb_path, settings->content_database,
|
fill_pathname_join(rdb_path, settings->content_database,
|
||||||
rdb, sizeof(rdb_path));
|
rdb, sizeof(rdb_path));
|
||||||
|
|
||||||
menu_database_populate_query(list, rdb_path, query);
|
info.list = (file_list_t*)data;
|
||||||
|
info.menu_list = (file_list_t*)userdata;
|
||||||
|
info.type = type;
|
||||||
|
strlcpy(info.path, rdb_path, sizeof(info.path));
|
||||||
|
strlcpy(info.path_b, path, sizeof(info.path_b));
|
||||||
|
strlcpy(info.path_c, query, sizeof(info.path_c));
|
||||||
|
strlcpy(info.label, label, sizeof(info.label));
|
||||||
|
|
||||||
menu_list_sort_on_alt(list);
|
menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_QUERY);
|
||||||
|
|
||||||
menu_list_populate_generic(list, path, label, type);
|
|
||||||
|
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1083,6 +1071,8 @@ static int deferred_push_cursor_manager_list_deferred_query_subsearch(
|
||||||
void *data, void *userdata,
|
void *data, void *userdata,
|
||||||
const char *path, const char *label, unsigned type)
|
const char *path, const char *label, unsigned type)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
menu_displaylist_info_t info = {0};
|
||||||
char query[PATH_MAX_LENGTH];
|
char query[PATH_MAX_LENGTH];
|
||||||
struct string_list *str_list = NULL;
|
struct string_list *str_list = NULL;
|
||||||
bool add_quotes = true;
|
bool add_quotes = true;
|
||||||
|
@ -1174,17 +1164,19 @@ static int deferred_push_cursor_manager_list_deferred_query_subsearch(
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_list_clear(list);
|
info.list = (file_list_t*)data;
|
||||||
|
info.menu_list = (file_list_t*)userdata;
|
||||||
|
info.type = type;
|
||||||
|
strlcpy(info.path, str_list->elems[1].data, sizeof(info.path));
|
||||||
|
strlcpy(info.path_b, str_list->elems[0].data, sizeof(info.path_b));
|
||||||
|
strlcpy(info.path_c, query, sizeof(info.path_c));
|
||||||
|
strlcpy(info.label, label, sizeof(info.label));
|
||||||
|
|
||||||
menu_database_populate_query(list, str_list->elems[1].data, query);
|
ret = menu_displaylist_push_list(&info, DISPLAYLIST_DATABASE_QUERY);
|
||||||
|
|
||||||
menu_list_sort_on_alt(list);
|
|
||||||
|
|
||||||
menu_list_populate_generic(list, str_list->elems[0].data, label, type);
|
|
||||||
|
|
||||||
string_list_free(str_list);
|
string_list_free(str_list);
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int deferred_push_performance_counters(void *data, void *userdata,
|
static int deferred_push_performance_counters(void *data, void *userdata,
|
||||||
|
|
Loading…
Reference in New Issue