mirror of
https://github.com/libretro/RetroArch
synced 2025-02-11 06:40:48 +00:00
Create database_info_iterate_crc_lookup
This commit is contained in:
parent
ddc0fad327
commit
befa2f111c
@ -41,6 +41,7 @@ enum database_type
|
|||||||
{
|
{
|
||||||
DATABASE_TYPE_NONE = 0,
|
DATABASE_TYPE_NONE = 0,
|
||||||
DATABASE_TYPE_ITERATE,
|
DATABASE_TYPE_ITERATE,
|
||||||
|
DATABASE_TYPE_CRC_LOOKUP,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -80,11 +80,11 @@ static int database_info_iterate_playlist(
|
|||||||
|
|
||||||
#ifdef HAVE_ZLIB
|
#ifdef HAVE_ZLIB
|
||||||
db_state->crc = zlib_crc32_calculate(db_state->buf, ret);
|
db_state->crc = zlib_crc32_calculate(db_state->buf, ret);
|
||||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)db_state->crc);
|
|
||||||
#endif
|
#endif
|
||||||
|
db->type = DATABASE_TYPE_CRC_LOOKUP;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +98,14 @@ static int database_info_iterate_next(
|
|||||||
return -1;
|
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)
|
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;
|
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;
|
break;
|
||||||
case DATABASE_TYPE_ITERATE:
|
case DATABASE_TYPE_ITERATE:
|
||||||
return database_info_iterate_playlist(state, db, name);
|
return database_info_iterate_playlist(state, db, name);
|
||||||
|
case DATABASE_TYPE_CRC_LOOKUP:
|
||||||
|
return database_info_iterate_crc_lookup(state, db);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -188,7 +198,10 @@ void rarch_main_data_db_iterate(bool is_thread, void *data)
|
|||||||
break;
|
break;
|
||||||
case DATABASE_STATUS_ITERATE:
|
case DATABASE_STATUS_ITERATE:
|
||||||
if (database_info_iterate(&runloop->db.state, db) == 0)
|
if (database_info_iterate(&runloop->db.state, db) == 0)
|
||||||
|
{
|
||||||
db->status = DATABASE_STATUS_ITERATE_NEXT;
|
db->status = DATABASE_STATUS_ITERATE_NEXT;
|
||||||
|
db->type = DATABASE_TYPE_ITERATE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DATABASE_STATUS_ITERATE_NEXT:
|
case DATABASE_STATUS_ITERATE_NEXT:
|
||||||
if (database_info_iterate_next(db) == 0)
|
if (database_info_iterate_next(db) == 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user