1 #ifndef SOUNDCLOUDLIBRARYDATABASE_H
2 #define SOUNDCLOUDLIBRARYDATABASE_H
3 
4 #include "Database/LibraryDatabase.h"
5 
6 namespace SC
7 {
8 	class SearchInformationList;
9 
10 	class LibraryDatabase : public ::DB::LibraryDatabase
11 	{
12 	public:
13 		LibraryDatabase(const QString& connectionName, DbId databaseId, LibraryId libraryId);
14 		~LibraryDatabase() override;
15 
16 		QString fetchQueryAlbums(bool also_empty=false) const override;
17 		QString fetchQueryArtists(bool also_empty=false) const override;
18 		QString fetchQueryTracks() const override;
19 
20 		bool dbFetchTracks(::DB::Query& q, MetaDataList& result) const override;
21 		bool dbFetchAlbums(::DB::Query& q, AlbumList& result) const override;
22 		bool dbFetchArtists(::DB::Query& q, ArtistList& result) const override;
23 
24 		ArtistId updateArtist(const Artist& artist);
25 		ArtistId insertArtistIntoDatabase (const Artist& artist) override;
26 		ArtistId insertArtistIntoDatabase (const QString& artist) override;
27 
28 		bool getAllAlbums(AlbumList& result, bool alsoEmpty) const override;
29 		AlbumId updateAlbum(const Album& album);
30 		AlbumId insertAlbumIntoDatabase (const Album& album) override;
31 		AlbumId insertAlbumIntoDatabase (const QString& album) override;
32 
33 		bool updateTrack(const MetaData& md) override;
34 		bool storeMetadata(const MetaDataList& v_md) override;
35 		bool insertTrackIntoDatabase(const MetaData& md, int artistId, int albumId, int album_artistId) override;
36 		bool insertTrackIntoDatabase(const MetaData& md, int artistId, int albumId) override;
37 
38 		bool searchInformation(SC::SearchInformationList& list);
39 	};
40 }
41 
42 #endif // SOUNDCLOUDLIBRARYDATABASE_H
43