26 #include "Helper/PlaylistMode.h"
27 #include "Helper/Settings/SayonaraClass.h"
28 #include "PlaylistDBInterface.h"
48 void sig_data_changed(
int idx);
52 enum class Type : quint8
59 bool _playlist_changed;
75 virtual void play()=0;
76 virtual void pause()=0;
77 virtual void stop()=0;
80 virtual void next()=0;
84 virtual void replace_track(
int idx,
const MetaData& md);
88 QStringList toStringList()
const;
90 IdxList find_tracks(
int id)
const;
91 IdxList find_tracks(
const QString& filepath)
const;
93 Type get_type()
const;
94 int get_cur_track_idx()
const;
95 bool get_cur_track(
MetaData& md)
const;
97 void set_idx(
int idx);
100 qint64 get_running_time()
const;
104 virtual bool is_empty()
const override;
105 virtual int get_count()
const override;
106 virtual const MetaDataList& get_playlist()
const override;
108 virtual void set_changed(
bool b)
override;
109 virtual bool was_changed()
const override;
110 virtual bool is_storable()
const override;
114 const MetaData& operator[](
int idx)
const{
118 const MetaData& at_const_ref(
int idx)
const {
127 virtual void clear();
129 virtual void move_track(
const int idx,
int tgt);
130 virtual void move_tracks(
const SP::Set<int>& indexes,
int tgt);
132 virtual void delete_track(
const int idx);
133 virtual void delete_tracks(
const SP::Set<int>& indexes);
135 virtual void insert_track(
const MetaData& md,
int tgt);
136 virtual void insert_tracks(
const MetaDataList& lst,
int tgt);
138 virtual void append_track(
const MetaData& md);
141 virtual bool change_track(
int idx)=0;
144 virtual void metadata_changed_single(
const MetaData& md)=0;
148 void _sl_playlist_mode_changed();
155 typedef std::shared_ptr<Playlist> PlaylistPtr;
160 typedef std::shared_ptr<const Playlist> PlaylistConstPtr;
The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:31
Definition: PlaylistMode.h:34
Global handler for playlists.
Definition: PlaylistHandler.h:48
The Playlist class.
Definition: Playlist.h:38
The PlaylistDBInterface class.
Definition: PlaylistDBInterface.h:34