static int task_database_iterate( db_handle_t *_db, database_state_handle_t *db_state, database_info_handle_t *db) { const char *name = database_info_get_current_element_name(db); if (!name) return 0; if (database_info_get_type(db) == DATABASE_TYPE_ITERATE) if (path_contains_compressed_file(name)) database_info_set_type(db, DATABASE_TYPE_ITERATE_ARCHIVE); switch (database_info_get_type(db)) { case DATABASE_TYPE_ITERATE: return task_database_iterate_playlist(db_state, db, name); case DATABASE_TYPE_ITERATE_ARCHIVE: return task_database_iterate_playlist_archive(_db, db_state, db, name); case DATABASE_TYPE_ITERATE_LUTRO: return task_database_iterate_playlist_lutro(_db, db_state, db, name); case DATABASE_TYPE_SERIAL_LOOKUP: return task_database_iterate_serial_lookup(_db, db_state, db, name); case DATABASE_TYPE_CRC_LOOKUP: return task_database_iterate_crc_lookup(_db, db_state, db, name, NULL); case DATABASE_TYPE_NONE: default: break; } return 0; }
static int task_database_iterate(database_state_handle_t *db_state, database_info_handle_t *db) { const char *name = db ? db->list->elems[db->list_ptr].data : NULL; if (!db || !db->list) return -1; if (!name) return 0; switch (db->type) { case DATABASE_TYPE_ITERATE: return task_database_iterate_playlist(db_state, db, name); case DATABASE_TYPE_ITERATE_ZIP: return task_database_iterate_playlist_zip(db_state, db, name); case DATABASE_TYPE_ITERATE_LUTRO: return task_database_iterate_playlist_lutro(db_state, db, name); case DATABASE_TYPE_SERIAL_LOOKUP: return task_database_iterate_serial_lookup(db_state, db, name); case DATABASE_TYPE_CRC_LOOKUP: return task_database_iterate_crc_lookup(db_state, db, NULL); case DATABASE_TYPE_NONE: default: break; } return 0; }