// // NSTableViewDataSource+sqlite.h // Cog // // Created by Christopher Snowhill on 12/22/21. // #ifndef NSTableViewDataSource_sqlite_h #import "PlaylistEntry.h" #import #import @interface SQLiteStore : NSObject { @private NSString *g_databasePath; @private sqlite3 *g_database; @private sqlite3_stmt *stmt[39]; @private NSMutableArray *databaseMirror; NSMutableDictionary *artTable; } @property(nonatomic, readwrite) NSString *databasePath; @property(nonatomic, assign, readwrite) sqlite3 *database; + (SQLiteStore *)sharedStore; - (id)init; - (void)dealloc; - (void)trackUpdate:(PlaylistEntry *)track; - (void)playlistInsertTracks:(NSArray *)tracks atIndex:(int64_t)index progressCall:(void (^)(double progress))callback; - (void)playlistInsertTracks:(NSArray *)tracks atObjectIndexes:(NSIndexSet *)indexes progressCall:(void (^)(double progress))callback; - (void)playlistRemoveTracks:(int64_t)index forCount:(int64_t)count progressCall:(void (^)(double progress))callback; - (void)playlistRemoveTracksAtIndexes:(NSIndexSet *)indexes progressCall:(void (^)(double progress))callback; - (PlaylistEntry *)playlistGetItem:(int64_t)index; - (PlaylistEntry *)playlistGetCachedItem:(int64_t)index; - (int64_t)playlistGetCount; - (void)playlistMoveObjectsInArrangedObjectsFromIndexes:(NSIndexSet *)indexSet toIndex:(NSUInteger)insertIndex progressCall:(void (^)(double))callback; - (void)playlistMoveObjectsFromIndex:(NSUInteger)fromIndex toArrangedObjectIndexes:(NSIndexSet *)indexSet progressCall:(void (^)(double))callback; - (void)syncPlaylistEntries:(NSArray *)entries progressCall:(void (^)(double progress))callback; - (void)queueAddItem:(int64_t)playlistIndex; - (void)queueAddItems:(NSArray *)playlistIndexes; - (void)queueRemoveItem:(int64_t)queueIndex; - (void)queueRemovePlaylistItems:(NSArray *)playlistIndexes; - (int64_t)queueGetEntry:(int64_t)queueIndex; - (int64_t)queueGetCount; - (void)queueEmpty; @end #define NSTableViewDataSource_sqlite_h #endif /* NSTableViewDataSource_sqlite_h */