mpd: add Playlist
This commit is contained in:
45
src/mpdpp.h
45
src/mpdpp.h
@@ -121,6 +121,51 @@ private:
|
|||||||
std::shared_ptr<mpd_status> m_status;
|
std::shared_ptr<mpd_status> m_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Playlist
|
||||||
|
{
|
||||||
|
Playlist() { }
|
||||||
|
Playlist(mpd_playlist *playlist) : m_playlist(playlist, mpd_playlist_free) { }
|
||||||
|
|
||||||
|
Playlist(const Playlist &rhs) : m_playlist(rhs.m_playlist) { }
|
||||||
|
Playlist(Playlist &&rhs) : m_playlist(std::move(rhs.m_playlist)) { }
|
||||||
|
Playlist &operator=(Playlist rhs)
|
||||||
|
{
|
||||||
|
m_playlist = std::move(rhs.m_playlist);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const Playlist &rhs)
|
||||||
|
{
|
||||||
|
if (empty() && rhs.empty())
|
||||||
|
return true;
|
||||||
|
else if (!empty() && !rhs.empty())
|
||||||
|
return strcmp(path(), rhs.path()) == 0
|
||||||
|
&& lastModified() == rhs.lastModified();
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool operator!=(const Playlist &rhs)
|
||||||
|
{
|
||||||
|
return !(*this == rhs);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *path() const
|
||||||
|
{
|
||||||
|
assert(m_playlist.get() != nullptr);
|
||||||
|
return mpd_playlist_get_path(m_playlist.get());
|
||||||
|
}
|
||||||
|
time_t lastModified() const
|
||||||
|
{
|
||||||
|
assert(m_playlist.get() != nullptr);
|
||||||
|
return mpd_playlist_get_last_modified(m_playlist.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool empty() const { return m_playlist.get() == nullptr; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<mpd_playlist> m_playlist;
|
||||||
|
};
|
||||||
|
|
||||||
struct Item
|
struct Item
|
||||||
{
|
{
|
||||||
std::shared_ptr<Song> song;
|
std::shared_ptr<Song> song;
|
||||||
|
|||||||
Reference in New Issue
Block a user