Commit dc5ef9ad authored by Max Kellermann's avatar Max Kellermann

db/upnp: simplify GetSong()

parent 7471f65d
......@@ -219,31 +219,29 @@ UpnpDatabase::ReturnSong(const LightSong *_song) const
const LightSong *
UpnpDatabase::GetSong(const char *uri, Error &error) const
{
UpnpSong *song = nullptr;
auto vpath = stringToTokens(uri, "/", true);
if (vpath.size() >= 2) {
ContentDirectoryService server;
if (!m_superdir->getServer(vpath[0].c_str(), server, error))
return nullptr;
if (vpath.size() < 2) {
error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri);
return nullptr;
}
vpath.erase(vpath.begin());
UPnPDirObject dirent;
if (vpath[0].compare(rootid)) {
std::string objid;
if (!Namei(server, vpath, objid, dirent, error))
return nullptr;
} else {
if (!ReadNode(server, vpath.back().c_str(), dirent,
error))
return nullptr;
}
ContentDirectoryService server;
if (!m_superdir->getServer(vpath[0].c_str(), server, error))
return nullptr;
song = new UpnpSong(std::move(dirent), uri);
vpath.erase(vpath.begin());
UPnPDirObject dirent;
if (vpath[0].compare(rootid)) {
std::string objid;
if (!Namei(server, vpath, objid, dirent, error))
return nullptr;
} else {
if (!ReadNode(server, vpath.back().c_str(), dirent,
error))
return nullptr;
}
if (song == nullptr)
error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri);
return song;
return new UpnpSong(std::move(dirent), uri);
}
/**
......
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