23 #ifndef ABSTRACTLIBRARY_H
24 #define ABSTRACTLIBRARY_H
27 #include "LibraryNamespaces.h"
28 #include "Helper/Filter.h"
29 #include "Helper/Settings/SayonaraClass.h"
30 #include "Helper/Tagging/Tagging.h"
31 #include "Helper/Set.h"
33 #include "Helper/MetaData/Artist.h"
34 #include "Helper/MetaData/Album.h"
35 #include "Helper/MetaData/MetaDataList.h"
37 #include "Components/Library/Sorting.h"
41 #define prepare_tracks_for_playlist_files static_cast<void (AbstractLibrary::*) (const QStringList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
42 #define prepare_tracks_for_playlist_idxs static_cast<void (AbstractLibrary::*) (const IdxList&)>(&AbstractLibrary::psl_prepare_tracks_for_playlist)
62 void sig_all_albums_loaded(
const AlbumList&);
63 void sig_all_artists_loaded(
const ArtistList&);
65 void sig_reloading_library(
const QString& message,
int progress);
66 void sig_reloading_library_finished();
68 void sig_delete_answer(QString);
69 void sig_import_dialog_requested();
77 virtual void psl_reload_library(
bool clear_first, Library::ReloadQuality quality)=0;
80 virtual void refetch();
85 virtual void refresh();
90 virtual void psl_selected_artists_changed(
const SP::Set<int>& idx_lst);
91 virtual void psl_selected_albums_changed(
const SP::Set<int>& idx_lst);
92 virtual void psl_selected_tracks_changed(
const SP::Set<int>& idx_lst);
96 virtual void psl_prepare_album_for_playlist(
int idx,
bool new_playlist);
97 virtual void psl_prepare_artist_for_playlist(
int idx,
bool new_playlist);
101 virtual void psl_prepare_track_for_playlist(
int idx,
bool new_playlist);
102 virtual void psl_prepare_tracks_for_playlist(
bool new_playlist);
103 virtual void psl_prepare_tracks_for_playlist(
const SP::Set<int>& indexes,
bool new_playlist);
104 virtual void psl_prepare_tracks_for_playlist(
const QStringList& file_paths,
bool new_playlist);
108 virtual void psl_play_next_all_tracks();
109 virtual void psl_play_next_tracks(
const SP::Set<int>& idx_lst);
113 virtual void psl_append_all_tracks();
114 virtual void psl_append_tracks(
const SP::Set<int>& idx_lst);
118 virtual void psl_metadata_changed(
const MetaData&);
121 virtual void psl_dur_changed(
const MetaData&);
128 virtual void psl_filter_changed(
const Filter&,
bool force=
false);
131 virtual void psl_track_rating_changed(
int idx,
int rating);
132 virtual void psl_album_rating_changed(
int idx,
int rating);
135 virtual void fetch_by_filter(
const Filter& filter,
bool force);
138 virtual void delete_tracks(
const MetaDataList& v_md, Library::TrackDeletionMode mode)=0;
140 virtual void delete_tracks_by_idx(
const SP::Set<int>& indexes, Library::TrackDeletionMode mode);
141 virtual void delete_all_tracks();
142 virtual void delete_current_tracks(Library::TrackDeletionMode mode);
145 virtual void import_files(
const QStringList& files);
150 virtual void refresh_artist()=0;
151 virtual void refresh_albums()=0;
152 virtual void refresh_tracks()=0;
156 virtual void _sl_sortorder_changed();
177 virtual void emit_stuff();
189 virtual void get_all_tracks(
const QStringList& paths,
MetaDataList& v_md)=0;
194 virtual void get_album_by_id(
int album_id,
Album& album)=0;
195 virtual void get_artist_by_id(
int artist_id,
Artist& artist)=0;
197 virtual void update_track(
const MetaData& md)=0;
198 virtual void update_album(
const Album& album)=0;
203 void set_playlist_action_after_double_click();
205 virtual void restore_artist_selection();
206 virtual void restore_track_selection();
207 virtual void restore_album_selection();
210 virtual void change_artist_selection(
const SP::Set<int>& idx_list);
211 virtual void change_album_selection(
const SP::Set<int>& idx_list);
215 #endif // ABSTRACTLIBRARY_H
The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:31
Definition: AbstractLibrary.h:50
The AlbumList class.
Definition: Album.h:73
ArtistList.
Definition: Artist.h:64
The Album class.
Definition: Album.h:41
Global handler for playlists.
Definition: PlaylistHandler.h:48
The Artist class.
Definition: Artist.h:36