mirror of
https://github.com/libretro/RetroArch
synced 2025-02-10 21:40:22 +00:00
(Database) cleanup
This commit is contained in:
parent
e5e9e80cfb
commit
7696d55047
@ -83,7 +83,6 @@ void database_info_free(database_info_handle_t *db)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
string_list_free(db->list);
|
string_list_free(db->list);
|
||||||
free(db);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *bin_to_hex_alloc(const uint8_t *data, size_t len)
|
static char *bin_to_hex_alloc(const uint8_t *data, size_t len)
|
||||||
|
@ -516,7 +516,7 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_TEST:
|
case MENU_ACTION_TEST:
|
||||||
rarch_main_data_msg_queue_push(DATA_TYPE_DB, "", "cb_db_scan", 0, 1,
|
rarch_main_data_msg_queue_push(DATA_TYPE_DB, "/home/squarepusher/roms", "cb_db_scan", 0, 1,
|
||||||
true);
|
true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -38,10 +38,6 @@ static int database_info_iterate_playlist(
|
|||||||
database_info_handle_t *db, const char *name)
|
database_info_handle_t *db, const char *name)
|
||||||
{
|
{
|
||||||
char parent_dir[PATH_MAX_LENGTH];
|
char parent_dir[PATH_MAX_LENGTH];
|
||||||
bool to_continue = (db->list_ptr < db->list->size);
|
|
||||||
|
|
||||||
if (!to_continue)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
path_parent_dir(parent_dir);
|
path_parent_dir(parent_dir);
|
||||||
|
|
||||||
@ -85,7 +81,9 @@ static int database_info_iterate_playlist(
|
|||||||
|
|
||||||
db->list_ptr++;
|
db->list_ptr++;
|
||||||
|
|
||||||
return 0;
|
if (db->list_ptr < db->list->size)
|
||||||
|
return 0;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int database_info_iterate(database_info_handle_t *db)
|
static int database_info_iterate(database_info_handle_t *db)
|
||||||
@ -105,12 +103,7 @@ static int database_info_iterate(database_info_handle_t *db)
|
|||||||
case DATABASE_TYPE_NONE:
|
case DATABASE_TYPE_NONE:
|
||||||
break;
|
break;
|
||||||
case DATABASE_TYPE_ITERATE:
|
case DATABASE_TYPE_ITERATE:
|
||||||
if (database_info_iterate_playlist(db, name) != 0)
|
return database_info_iterate_playlist(db, name);
|
||||||
{
|
|
||||||
rarch_main_msg_queue_push("Scanning of directory finished.\n", 0, 180, true);
|
|
||||||
db->status = DATABASE_STATUS_FREE;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,8 +117,6 @@ static int database_info_poll(db_handle_t *db)
|
|||||||
if (!path)
|
if (!path)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
RARCH_LOG("Gets here.\n");
|
|
||||||
|
|
||||||
db->handle = database_info_init("/home/squarepusher/roms", DATABASE_TYPE_ITERATE);
|
db->handle = database_info_init("/home/squarepusher/roms", DATABASE_TYPE_ITERATE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -137,29 +128,35 @@ void rarch_main_data_db_iterate(bool is_thread, void *data)
|
|||||||
database_info_handle_t *db = runloop ? runloop->db.handle : NULL;
|
database_info_handle_t *db = runloop ? runloop->db.handle : NULL;
|
||||||
|
|
||||||
if (!db || !runloop)
|
if (!db || !runloop)
|
||||||
{
|
goto do_poll;
|
||||||
if (database_info_poll(&runloop->db) != -1)
|
|
||||||
{
|
|
||||||
if (runloop->db.handle)
|
|
||||||
runloop->db.handle->status = DATABASE_STATUS_ITERATE;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (db->status)
|
switch (db->status)
|
||||||
{
|
{
|
||||||
case DATABASE_STATUS_ITERATE:
|
case DATABASE_STATUS_ITERATE:
|
||||||
database_info_iterate(db);
|
if (database_info_iterate(db) != 0)
|
||||||
|
{
|
||||||
|
rarch_main_msg_queue_push("Scanning of directory finished.\n", 0, 180, true);
|
||||||
|
db->status = DATABASE_STATUS_FREE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DATABASE_STATUS_FREE:
|
case DATABASE_STATUS_FREE:
|
||||||
database_info_free(db);
|
database_info_free(db);
|
||||||
db = NULL;
|
if (runloop->db.handle)
|
||||||
|
free(runloop->db.handle);
|
||||||
|
runloop->db.handle = NULL;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case DATABASE_STATUS_NONE:
|
case DATABASE_STATUS_NONE:
|
||||||
if (database_info_poll(&runloop->db) != -1)
|
goto do_poll;
|
||||||
db->status = DATABASE_STATUS_ITERATE;
|
}
|
||||||
break;
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
do_poll:
|
||||||
|
if (database_info_poll(&runloop->db) != -1)
|
||||||
|
{
|
||||||
|
if (runloop->db.handle)
|
||||||
|
runloop->db.handle->status = DATABASE_STATUS_ITERATE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user