From befa2f111cfaa48596a2f0a5ec5eacd8561f776a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 25 May 2015 03:20:43 +0200 Subject: [PATCH] Create database_info_iterate_crc_lookup --- database_info.h | 1 + tasks/task_database.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/database_info.h b/database_info.h index ebd08fc99c..36603469bc 100644 --- a/database_info.h +++ b/database_info.h @@ -41,6 +41,7 @@ enum database_type { DATABASE_TYPE_NONE = 0, DATABASE_TYPE_ITERATE, + DATABASE_TYPE_CRC_LOOKUP, }; typedef struct diff --git a/tasks/task_database.c b/tasks/task_database.c index e1c17919fa..6634c1ab84 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -80,11 +80,11 @@ static int database_info_iterate_playlist( #ifdef HAVE_ZLIB db_state->crc = zlib_crc32_calculate(db_state->buf, ret); - RARCH_LOG("CRC32: 0x%x .\n", (unsigned)db_state->crc); #endif + db->type = DATABASE_TYPE_CRC_LOOKUP; + return 1; } - return 0; } @@ -98,6 +98,14 @@ static int database_info_iterate_next( return -1; } +static int database_info_iterate_crc_lookup( + database_state_handle_t *db_state, + database_info_handle_t *db) +{ + RARCH_LOG("CRC32: 0x%x .\n", (unsigned)db_state->crc); + return 0; +} + static int database_info_iterate(database_state_handle_t *state, database_info_handle_t *db) { const char *name = db ? db->list->elems[db->list_ptr].data : NULL; @@ -114,6 +122,8 @@ static int database_info_iterate(database_state_handle_t *state, database_info_h break; case DATABASE_TYPE_ITERATE: return database_info_iterate_playlist(state, db, name); + case DATABASE_TYPE_CRC_LOOKUP: + return database_info_iterate_crc_lookup(state, db); } return 0; @@ -188,7 +198,10 @@ void rarch_main_data_db_iterate(bool is_thread, void *data) break; case DATABASE_STATUS_ITERATE: if (database_info_iterate(&runloop->db.state, db) == 0) + { db->status = DATABASE_STATUS_ITERATE_NEXT; + db->type = DATABASE_TYPE_ITERATE; + } break; case DATABASE_STATUS_ITERATE_NEXT: if (database_info_iterate_next(db) == 0)