Commit ecac7a62 authored by Max Kellermann's avatar Max Kellermann

db/upnp: fix empty song URI

Fall back to UPnPDirObject::url if there is no override.
parent 21209ff4
...@@ -65,7 +65,10 @@ public: ...@@ -65,7 +65,10 @@ public:
} }
UpnpSong(UPnPDirObject &&object, const char *_uri) UpnpSong(UPnPDirObject &&object, const char *_uri)
:uri2(_uri), tag2(std::move(object.tag)) { :uri2(_uri == nullptr
? std::move(object.url)
: std::string(_uri)),
tag2(std::move(object.tag)) {
directory = nullptr; directory = nullptr;
uri = uri2.c_str(); uri = uri2.c_str();
tag = &tag2; tag = &tag2;
...@@ -563,7 +566,7 @@ UpnpDatabase::VisitServer(ContentDirectoryService &server, ...@@ -563,7 +566,7 @@ UpnpDatabase::VisitServer(ContentDirectoryService &server,
error)) error))
return false; return false;
if (!visitSong(std::move(dirent), "", selection, if (!visitSong(std::move(dirent), nullptr, selection,
visit_song, error)) visit_song, error))
return false; return false;
} }
...@@ -594,7 +597,7 @@ UpnpDatabase::VisitServer(ContentDirectoryService &server, ...@@ -594,7 +597,7 @@ UpnpDatabase::VisitServer(ContentDirectoryService &server,
switch (tdirent.item_class) { switch (tdirent.item_class) {
case UPnPDirObject::ItemClass::MUSIC: case UPnPDirObject::ItemClass::MUSIC:
if (visit_song) if (visit_song)
return visitSong(std::move(tdirent), "", return visitSong(std::move(tdirent), nullptr,
selection, visit_song, selection, visit_song,
error); error);
break; break;
......
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