21 #ifndef ABSTRACTLIBRARY_H
22 #define ABSTRACTLIBRARY_H
25 #include "Utils/Library/LibraryNamespaces.h"
26 #include "Utils/Library/Filter.h"
27 #include "Utils/Library/Sorting.h"
28 #include "Utils/Pimpl.h"
32 #define prepare_tracks_for_playlist_files static_cast<void (AbstractLibrary::*) (const QStringList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
33 #define prepare_tracks_for_playlistIdxs static_cast<void (AbstractLibrary::*) (const IdxList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
71 void changeCurrentDisc(Disc disc);
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);
114 void metadataChanged();
115 void albumsChanged();
117 virtual void findTrack(TrackID
id);
120 virtual void selectedArtistsChanged(
const IndexSet& indexes);
121 virtual void selectedAlbumsChanged(
const IndexSet& indexes,
bool ignore_artists=
false);
122 virtual void selectedTracksChanged(
const IndexSet& indexes);
125 virtual void prepareCurrentTracksForPlaylist(
bool new_playlist);
126 virtual void prepareFetchedTracksForPlaylist(
bool new_playlist);
127 void prepareTracksForPlaylist(
const QStringList& file_paths,
bool new_playlist);
130 virtual void playNextFetchedTracks();
131 virtual void playNextCurrentTracks();
134 virtual void appendFetchedTracks();
135 virtual void appendCurrentTracks();
139 virtual void fetchTracksByPath(
const QStringList& paths);
146 virtual void deleteAllTracks();
149 virtual void importFiles(
const QStringList& files);
157 virtual void refreshArtists()=0;
158 virtual void refreshAlbums()=0;
159 virtual void refreshTracks()=0;
163 virtual void emitAll();
165 virtual void getAllArtists(
ArtistList& artists)
const=0;
168 virtual void getAllAlbums(
AlbumList& albums)
const=0;
172 virtual int getTrackCount()
const=0;
174 virtual void getAllTracks(
const QStringList& paths,
MetaDataList& v_md)
const=0;
178 virtual void getAllTracksByPath(
const QStringList& paths,
MetaDataList& v_md)
const=0;
180 virtual void getTrackById(TrackID trackId,
MetaData& md)
const=0;
181 virtual void getAlbumById(AlbumId albumId,
Album& album)
const=0;
182 virtual void getArtistById(ArtistId artistId,
Artist& artist)
const=0;
184 void prepareTracks();
185 void prepareAlbums();
186 void prepareArtists();
188 void ignoreArtistArticleChanged();
192 void tagEditCommit();
193 void setPlaylistActionAfterDoubleClick();
195 void changeTrackSelection(
const IndexSet& indexes);
196 void changeArtistSelection(
const IndexSet& indexes);
197 void changeAlbumSelection(
const IndexSet& indexes,
bool ignore_artists=
false);
200 #endif // ABSTRACTLIBRARY_H