db/upnp: simplify GetSong()
This commit is contained in:
parent
7471f65d95
commit
dc5ef9ad01
|
@ -219,31 +219,29 @@ UpnpDatabase::ReturnSong(const LightSong *_song) const
|
||||||
const LightSong *
|
const LightSong *
|
||||||
UpnpDatabase::GetSong(const char *uri, Error &error) const
|
UpnpDatabase::GetSong(const char *uri, Error &error) const
|
||||||
{
|
{
|
||||||
UpnpSong *song = nullptr;
|
|
||||||
auto vpath = stringToTokens(uri, "/", true);
|
auto vpath = stringToTokens(uri, "/", true);
|
||||||
if (vpath.size() >= 2) {
|
if (vpath.size() < 2) {
|
||||||
ContentDirectoryService server;
|
|
||||||
if (!m_superdir->getServer(vpath[0].c_str(), server, error))
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
song = new UpnpSong(std::move(dirent), uri);
|
|
||||||
}
|
|
||||||
if (song == nullptr)
|
|
||||||
error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri);
|
error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
return song;
|
ContentDirectoryService server;
|
||||||
|
if (!m_superdir->getServer(vpath[0].c_str(), server, error))
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new UpnpSong(std::move(dirent), uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue