diff --git a/database_info.c b/database_info.c index 38483b3d58..47224e7dd9 100644 --- a/database_info.c +++ b/database_info.c @@ -669,6 +669,13 @@ enum database_type database_info_get_type(database_info_handle_t *handle) return handle->type; } +const char *database_info_get_current_name(database_state_handle_t *handle) +{ + if (!handle || !handle->list) + return NULL; + return handle->list->elems[handle->list_index].data; +} + const char *database_info_get_current_element_name(database_info_handle_t *handle) { if (!handle || !handle->list) diff --git a/database_info.h b/database_info.h index 7f0e8e03be..48faa40e18 100644 --- a/database_info.h +++ b/database_info.h @@ -97,6 +97,19 @@ typedef struct size_t count; } database_info_list_t; +typedef struct database_state_handle +{ + database_info_list_t *info; + struct string_list *list; + size_t list_index; + size_t entry_index; + uint32_t crc; + uint32_t archive_crc; + uint8_t *buf; + char archive_name[PATH_MAX_LENGTH]; + char serial[4096]; +} database_state_handle_t; + database_info_list_t *database_info_list_new(const char *rdb_path, const char *query); @@ -112,6 +125,8 @@ void database_info_set_type(database_info_handle_t *handle, enum database_type t const char *database_info_get_current_element_name(database_info_handle_t *handle); +const char *database_info_get_current_name(database_state_handle_t *handle); + enum database_type database_info_get_type(database_info_handle_t *handle); void database_info_free(database_info_handle_t *handle); diff --git a/tasks/task_database.c b/tasks/task_database.c index 49fd1fff47..86bc18bd02 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -40,19 +40,6 @@ #define COLLECTION_SIZE 99999 #endif -typedef struct database_state_handle -{ - database_info_list_t *info; - struct string_list *list; - size_t list_index; - size_t entry_index; - uint32_t crc; - uint32_t archive_crc; - uint8_t *buf; - char archive_name[PATH_MAX_LENGTH]; - char serial[4096]; -} database_state_handle_t; - typedef struct db_handle { database_state_handle_t state; @@ -218,7 +205,7 @@ static int task_database_iterate_next(database_info_handle_t *db) static int database_info_list_iterate_new(database_state_handle_t *db_state, const char *query) { - const char *new_database = db_state->list->elems[db_state->list_index].data; + const char *new_database = database_info_get_current_name(db_state); #if 0 RARCH_LOG("Check database [%d/%d] : %s\n", (unsigned)db_state->list_index, (unsigned)db_state->list->size, new_database); @@ -244,8 +231,8 @@ static int database_info_list_iterate_found_match( char entry_path_str[PATH_MAX_LENGTH] = {0}; playlist_t *playlist = NULL; settings_t *settings = config_get_ptr(); - const char *db_path = - db_state->list->elems[db_state->list_index].data; + const char *db_path = + database_info_get_current_name(db_state); const char *entry_path = database_info_get_current_element_name(db); database_info_t *db_info_entry =