23 #include "util/Compiler.h" 25 #include <mpd/client.h> 42 using Vector = std::vector<std::unique_ptr<struct mpd_song, SongDeleter>>;
73 const struct mpd_song *GetChecked(
int i)
const;
76 items.emplace_back(mpd_song_dup(&song));
80 items[i].reset(mpd_song_dup(&song));
84 items.erase(std::next(items.begin(), i));
87 void Move(
unsigned dest,
unsigned src);
97 size_type FindByReference(
const struct mpd_song &song)
const;
105 int FindById(
unsigned id)
const;
113 int FindByUri(
const char *uri)
const;
122 int i = FindByUri(uri);
124 i = mpd_song_get_id(items[i].
get());
130 return FindByUri(uri) >= 0;
std::vector< std::unique_ptr< struct mpd_song, SongDeleter > > Vector
Definition: Queue.hxx:42
size_type size() const
Definition: Queue.hxx:49
Vector items
Definition: Queue.hxx:45
void Replace(size_type i, const struct mpd_song &song)
Definition: Queue.hxx:79
struct mpd_song & operator[](size_type i)
Definition: Queue.hxx:66
gcc_pure int FindIdByUri(const char *uri) const
Definition: Queue.hxx:121
void operator()(struct mpd_song *song) const
Definition: Queue.hxx:33
const struct mpd_song & operator[](size_type i) const
Definition: Queue.hxx:60
Vector::size_type size_type
Definition: Queue.hxx:47
gcc_pure bool ContainsUri(const char *uri) const
Definition: Queue.hxx:129
void RemoveIndex(size_type i)
Definition: Queue.hxx:83
bool empty() const
Definition: Queue.hxx:53
void push_back(const struct mpd_song &song)
Definition: Queue.hxx:75