21 #ifndef DATABASETRACKS_H
22 #define DATABASETRACKS_H
24 #include "Database/SearchableModule.h"
25 #include "Utils/Pimpl.h"
42 Tracks(
const QString& connection_name, DbId db_id, LibraryId _library_id);
47 virtual int getNumTracks()
const;
52 const ::Library::Filter& filter,
int discnumber)
const;
53 virtual bool getAllTracksByArtist(
const IdList& artistIds,
MetaDataList& result)
const;
55 const ::Library::Filter& filter)
const;
56 virtual bool getAllTracksBySearchString(const ::Library::Filter& filter,
MetaDataList& result)
const;
59 virtual MetaData getTrackById(TrackID
id)
const;
61 virtual MetaData getTrackByPath(
const QString& path)
const;
62 virtual bool getMultipleTracksByPath(
const QStringList& paths,
MetaDataList& v_md)
const;
64 virtual bool insertTrackIntoDatabase(
const MetaData& data, ArtistId artist_id, AlbumId album_id);
65 virtual bool insertTrackIntoDatabase(
const MetaData& data, ArtistId artist_id, AlbumId album_id, ArtistId album_artist_id);
66 virtual bool updateTrack(
const MetaData& data);
69 virtual bool deleteTrack(TrackID
id);
71 virtual bool deleteTracks(
const IdList& ids);
78 virtual bool deleteInvalidTracks(
const QString& library_path,
MetaDataList& double_metadata);
80 virtual QString fetch_query_tracks()
const;
83 virtual void updateTrackCissearch();
85 void deleteAllTracks(
bool also_views);
86 void drop_track_view();
87 void drop_search_view();
90 virtual QString artistid_field()
const=0;
91 virtual QString artistname_field()
const=0;
94 void create_track_view(
const QString& select_statement);
95 void create_track_search_view(
const QString& select_statement);
99 #endif // DATABASETRACKS_H