diff --git a/database_info.c b/database_info.c index 3ed61a5553..2e8997ad89 100644 --- a/database_info.c +++ b/database_info.c @@ -29,6 +29,80 @@ #include "config.h" #endif +int database_info_build_query( + char *query, size_t len, const char *label, const char *path) +{ + bool add_quotes = true; + + strlcpy(query, "{'", len); + + if (!strcmp(label, "displaylist_parse_database_entry")) + strlcat(query, "name", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_publisher")) + strlcat(query, "publisher", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_developer")) + strlcat(query, "developer", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_origin")) + strlcat(query, "origin", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_franchise")) + strlcat(query, "franchise", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_esrb_rating")) + strlcat(query, "esrb_rating", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_bbfc_rating")) + strlcat(query, "bbfc_rating", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_elspa_rating")) + strlcat(query, "elspa_rating", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_pegi_rating")) + strlcat(query, "pegi_rating", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_enhancement_hw")) + strlcat(query, "enhancement_hw", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_cero_rating")) + strlcat(query, "cero_rating", len); + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_rating")) + { + strlcat(query, "edge_rating", len); + add_quotes = false; + } + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_issue")) + { + strlcat(query, "edge_issue", len); + add_quotes = false; + } + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_famitsu_magazine_rating")) + { + strlcat(query, "famitsu_rating", len); + add_quotes = false; + } + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_releasemonth")) + { + strlcat(query, "releasemonth", len); + add_quotes = false; + } + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_releaseyear")) + { + strlcat(query, "releaseyear", len); + add_quotes = false; + } + else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_max_users")) + { + strlcat(query, "users", len); + add_quotes = false; + } + + strlcat(query, "':", len); + if (add_quotes) + strlcat(query, "\"", len); + strlcat(query, path, len); + if (add_quotes) + strlcat(query, "\"", len); + strlcat(query, "}", len); + +#if 0 + RARCH_LOG("query: %s\n", query); +#endif + return 0; +} + int database_open_cursor(libretrodb_t *db, libretrodb_cursor_t *cur, const char *query) { diff --git a/database_info.h b/database_info.h index df1650eb1d..e0e1d1fe1e 100644 --- a/database_info.h +++ b/database_info.h @@ -99,6 +99,9 @@ database_info_handle_t *database_info_init(const char *dir, void database_info_free(database_info_handle_t *dbl); +int database_info_build_query( + char *query, size_t len, const char *label, const char *path); + #ifdef __cplusplus } #endif diff --git a/menu/menu_database.c b/menu/menu_database.c index 9eff7bd347..31fbaefdad 100644 --- a/menu/menu_database.c +++ b/menu/menu_database.c @@ -19,80 +19,6 @@ #include "../playlist.h" #include -int menu_database_build_query( - char *query, size_t len, const char *label, const char *path) -{ - bool add_quotes = true; - - strlcpy(query, "{'", len); - - if (!strcmp(label, "displaylist_parse_database_entry")) - strlcat(query, "name", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_publisher")) - strlcat(query, "publisher", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_developer")) - strlcat(query, "developer", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_origin")) - strlcat(query, "origin", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_franchise")) - strlcat(query, "franchise", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_esrb_rating")) - strlcat(query, "esrb_rating", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_bbfc_rating")) - strlcat(query, "bbfc_rating", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_elspa_rating")) - strlcat(query, "elspa_rating", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_pegi_rating")) - strlcat(query, "pegi_rating", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_enhancement_hw")) - strlcat(query, "enhancement_hw", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_cero_rating")) - strlcat(query, "cero_rating", len); - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_rating")) - { - strlcat(query, "edge_rating", len); - add_quotes = false; - } - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_issue")) - { - strlcat(query, "edge_issue", len); - add_quotes = false; - } - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_famitsu_magazine_rating")) - { - strlcat(query, "famitsu_rating", len); - add_quotes = false; - } - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_releasemonth")) - { - strlcat(query, "releasemonth", len); - add_quotes = false; - } - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_releaseyear")) - { - strlcat(query, "releaseyear", len); - add_quotes = false; - } - else if (!strcmp(label, "deferred_cursor_manager_list_rdb_entry_max_users")) - { - strlcat(query, "users", len); - add_quotes = false; - } - - strlcat(query, "':", len); - if (add_quotes) - strlcat(query, "\"", len); - strlcat(query, path, len); - if (add_quotes) - strlcat(query, "\"", len); - strlcat(query, "}", len); - -#if 0 - RARCH_LOG("query: %s\n", query); -#endif - return 0; -} - static void menu_database_playlist_free(menu_handle_t *menu) { if (menu->db_playlist) diff --git a/menu/menu_database.h b/menu/menu_database.h index 16be48f975..38ab7cb2bc 100644 --- a/menu/menu_database.h +++ b/menu/menu_database.h @@ -31,9 +31,6 @@ extern "C" { /* HACK */ extern unsigned int rdb_entry_start_game_selection_ptr; -int menu_database_build_query( - char *query, size_t len, const char *label, const char *path); - void menu_database_free(void *data); bool menu_database_realloc(const char *path, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 35b0a88e60..32501b0f29 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -910,7 +910,7 @@ static int menu_displaylist_parse_database_entry(menu_displaylist_info_t *info) if (!menu) return -1; - menu_database_build_query(query, sizeof(query), "displaylist_parse_database_entry", info->path_b); + database_info_build_query(query, sizeof(query), "displaylist_parse_database_entry", info->path_b); if (!(db_info = database_info_list_new(info->path, query))) return -1; diff --git a/menu/menu_entries_cbs_deferred_push.c b/menu/menu_entries_cbs_deferred_push.c index 48da207aa3..7b7143f4d4 100644 --- a/menu/menu_entries_cbs_deferred_push.c +++ b/menu/menu_entries_cbs_deferred_push.c @@ -112,7 +112,7 @@ static int deferred_push_cursor_manager_list_deferred_query_subsearch(menu_displ char query[PATH_MAX_LENGTH]; struct string_list *str_list = string_split(info->path, "|"); - menu_database_build_query(query, sizeof(query), info->label, str_list->elems[0].data); + database_info_build_query(query, sizeof(query), info->label, str_list->elems[0].data); if (query[0] == '\0') {