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_playlist_idxs static_cast<void (AbstractLibrary::*) (const IdxList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
72 void change_current_disc(Disc disc);
74 bool is_loaded()
const;
79 virtual bool is_reloading()
const;
80 virtual bool is_empty()
const;
83 void sig_track_mime_data_available();
84 void sig_all_tracks_loaded();
85 void sig_all_albums_loaded();
86 void sig_all_artists_loaded();
88 void sig_reloading_library(
const QString& message,
int progress);
89 void sig_reloading_library_finished();
91 void sig_delete_answer(QString);
92 void sig_import_dialog_requested();
94 void sig_filter_changed();
114 void metadata_changed();
116 virtual void find_track(TrackID
id);
119 virtual void selected_artists_changed(
const IndexSet& indexes);
120 virtual void selected_albums_changed(
const IndexSet& indexes,
bool ignore_artists=
false);
121 virtual void selected_tracks_changed(
const IndexSet& indexes);
124 virtual void prepare_current_tracks_for_playlist(
bool new_playlist);
125 virtual void prepare_fetched_tracks_for_playlist(
bool new_playlist);
126 void prepare_tracks_for_playlist(
const QStringList& file_paths,
bool new_playlist);
129 virtual void play_next_fetched_tracks();
130 virtual void play_next_current_tracks();
133 virtual void append_fetched_tracks();
134 virtual void append_current_tracks();
138 virtual void fetch_tracks_by_paths(
const QStringList& paths);
145 virtual void delete_all_tracks();
148 virtual void import_files(
const QStringList& files);
156 virtual void refresh_artist()=0;
157 virtual void refresh_albums()=0;
158 virtual void refresh_tracks()=0;
162 virtual void emit_stuff();
164 virtual void get_all_artists(
ArtistList& artists)
const=0;
167 virtual void get_all_albums(
AlbumList& albums)
const=0;
171 virtual int get_num_tracks()
const=0;
172 virtual void get_all_tracks(
MetaDataList& v_md)
const=0;
173 virtual void get_all_tracks(
const QStringList& paths,
MetaDataList& v_md)
const=0;
178 virtual void get_track_by_id(TrackID track_id,
MetaData& md)
const=0;
179 virtual void get_album_by_id(AlbumId album_id,
Album& album)
const=0;
180 virtual void get_artist_by_id(ArtistId artist_id,
Artist& artist)
const=0;
182 void prepare_tracks();
183 void prepare_albums();
184 void prepare_artists();
188 void tag_edit_commit();
189 void set_playlist_action_after_double_click();
191 void change_track_selection(
const IndexSet& indexes);
192 void change_artist_selection(
const IndexSet& indexes);
193 void change_album_selection(
const IndexSet& indexes,
bool ignore_artists=
false);
196 #endif // ABSTRACTLIBRARY_H