(menu_database.c) Cleanups

This commit is contained in:
Twinaphex 2015-01-24 08:26:54 +01:00
parent 199d8803c8
commit 75d9bdecbb

View File

@ -23,64 +23,67 @@ static int menu_database_fetch_from_query(libretrodb_t *db,
libretrodb_cursor_t *cur, libretrodb_query_t *query, libretrodb_cursor_t *cur, libretrodb_query_t *query,
file_list_t *list) file_list_t *list)
{ {
int i; int i;
struct rmsgpack_dom_value item; struct rmsgpack_dom_value item;
if ((libretrodb_cursor_open(db, cur, query)) != 0) if ((libretrodb_cursor_open(db, cur, query)) != 0)
return -1; return -1;
while (libretrodb_cursor_read_item(cur, &item) == 0) while (libretrodb_cursor_read_item(cur, &item) == 0)
{ {
if (item.type != RDT_MAP) if (item.type != RDT_MAP)
continue; continue;
for (i = 0; i < item.map.len; i++) for (i = 0; i < item.map.len; i++)
{ {
struct rmsgpack_dom_value *key = &item.map.items[i].key; struct rmsgpack_dom_value *key = &item.map.items[i].key;
struct rmsgpack_dom_value *val = &item.map.items[i].value; struct rmsgpack_dom_value *val = &item.map.items[i].value;
if (!strcmp(key->string.buff, "description")) if (!strcmp(key->string.buff, "description"))
{ {
menu_list_push(list, val->string.buff, "", menu_list_push(list, val->string.buff, "",
MENU_FILE_RDB_ENTRY, 0); MENU_FILE_RDB_ENTRY, 0);
break; break;
} }
} }
} }
return 0; return 0;
} }
#endif #endif
int menu_database_populate_query(file_list_t *list, const char *path, int menu_database_populate_query(file_list_t *list, const char *path,
const char *query) const char *query)
{ {
libretrodb_t db; #ifdef HAVE_LIBRETRODB
libretrodb_cursor_t cur; libretrodb_t db;
libretrodb_query_t *q; libretrodb_cursor_t cur;
const char *error = NULL; libretrodb_query_t *q;
const char *error = NULL;
if ((libretrodb_open(path, &db)) != 0) if ((libretrodb_open(path, &db)) != 0)
return -1; return -1;
q = libretrodb_query_compile(&db, query, strlen(query), &error); q = libretrodb_query_compile(&db, query, strlen(query), &error);
if (error) if (error)
return -1; return -1;
if ((menu_database_fetch_from_query(&db, &cur, q, list)) != 0) if ((menu_database_fetch_from_query(&db, &cur, q, list)) != 0)
return -1; return -1;
libretrodb_cursor_close(&cur); libretrodb_cursor_close(&cur);
libretrodb_close(&db); libretrodb_close(&db);
#endif
return 0; return 0;
} }
int menu_database_populate_list(file_list_t *list, const char *path) int menu_database_populate_list(file_list_t *list, const char *path)
{ {
#ifdef HAVE_LIBRETRODB #ifdef HAVE_LIBRETRODB
libretrodb_t db; libretrodb_t db;
libretrodb_cursor_t cur; libretrodb_cursor_t cur;
if ((libretrodb_open(path, &db)) != 0) if ((libretrodb_open(path, &db)) != 0)
return -1; return -1;