Commit 7968fa37 authored by Max Kellermann's avatar Max Kellermann

ProxyDatabase: implement GetSong()

parent 31009bb1
......@@ -183,15 +183,38 @@ ProxyDatabase::Close()
mpd_connection_free(connection);
}
static song *
Convert(const struct mpd_song *song);
struct song *
ProxyDatabase::GetSong(const char *uri, GError **error_r) const
{
// TODO: implement
// TODO: auto-reconnect
if (!mpd_send_list_meta(connection, uri)) {
CheckError(connection, error_r);
return nullptr;
}
struct mpd_song *song = mpd_recv_song(connection);
struct song *song2 = song != nullptr
? Convert(song)
: nullptr;
mpd_song_free(song);
if (!mpd_response_finish(connection)) {
if (song2 != nullptr)
song_free(song2);
CheckError(connection, error_r);
return nullptr;
}
if (song2 == nullptr)
g_set_error(error_r, db_quark(), DB_NOT_FOUND,
"No such song: %s", uri);
return nullptr;
return song2;
}
void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment