21 #ifndef ABSTRACTLIBRARY_H
22 #define ABSTRACTLIBRARY_H
24 #include "Utils/Library/LibraryNamespaces.h"
25 #include "Utils/Library/Filter.h"
26 #include "Utils/Library/Sorting.h"
27 #include "Utils/Pimpl.h"
31 #define prepare_tracks_for_playlist_files static_cast<void (AbstractLibrary::*) (const QStringList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
32 #define prepare_tracks_for_playlistIdxs static_cast<void (AbstractLibrary::*) (const IdxList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
71 void changeCurrentDisc(Disc track);
73 bool isLoaded()
const;
78 virtual bool isReloading()
const;
79 virtual bool isEmpty()
const;
82 void sigTrackMimedataAvailable();
83 void sigAllTracksLoaded();
84 void sigAllAlbumsLoaded();
85 void sigAllArtistsLoaded();
87 void sigReloadingLibrary(
const QString& message,
int progress);
88 void sigReloadingLibraryFinished();
90 void sigDeleteAnswer(QString);
91 void sigImportDialogRequested();
93 void sigCurrentAlbumChanged(
int row);
94 void sigCurrentTrackChanged(
int row);
112 void metadataChanged();
113 void albumsChanged();
115 virtual void findTrack(TrackID
id);
118 virtual void selectedArtistsChanged(
const IndexSet& indexes);
119 virtual void selectedAlbumsChanged(
const IndexSet& indexes,
bool ignore_artists =
false);
120 virtual void selectedTracksChanged(
const IndexSet& indexes);
123 virtual void prepareCurrentTracksForPlaylist(
bool new_playlist);
124 virtual void prepareFetchedTracksForPlaylist(
bool new_playlist);
125 void prepareTracksForPlaylist(
const QStringList& file_paths,
bool new_playlist);
128 virtual void playNextFetchedTracks();
129 virtual void playNextCurrentTracks();
132 virtual void appendFetchedTracks();
133 virtual void appendCurrentTracks();
137 virtual void fetchTracksByPath(
const QStringList& paths);
144 virtual void deleteAllTracks();
147 virtual void importFiles(
const QStringList& files);
155 virtual void refreshArtists() = 0;
156 virtual void refreshAlbums() = 0;
157 virtual void refreshTracks() = 0;
161 virtual void emitAll();
163 virtual void getAllArtists(
ArtistList& artists)
const = 0;
166 virtual void getAllAlbums(
AlbumList& albums)
const = 0;
170 virtual int getTrackCount()
const = 0;
171 virtual void getAllTracks(
MetaDataList& v_md)
const = 0;
172 virtual void getAllTracks(
const QStringList& paths,
MetaDataList& v_md)
const = 0;
176 virtual void getAllTracksByPath(
const QStringList& paths,
MetaDataList& v_md)
const = 0;
178 virtual void getTrackById(TrackID trackId,
MetaData& md)
const = 0;
179 virtual void getAlbumById(AlbumId albumId,
Album& album)
const = 0;
180 virtual void getArtistById(ArtistId artistId,
Artist& artist)
const = 0;
182 void prepareTracks();
183 void prepareAlbums();
184 void prepareArtists();
186 void ignoreArtistArticleChanged();
189 void tagEditCommit();
191 void changeTrackSelection(
const IndexSet& indexes);
192 void changeArtistSelection(
const IndexSet& indexes);
193 void changeAlbumSelection(
const IndexSet& indexes,
bool ignore_artists =
false);
196 #endif // ABSTRACTLIBRARY_H