db/LightSong: pass URI to constructor
This commit is contained in:
@@ -48,18 +48,24 @@
|
||||
|
||||
static const char *const rootid = "0";
|
||||
|
||||
class UpnpSong : public LightSong {
|
||||
std::string uri2, real_uri2;
|
||||
class UpnpSongData {
|
||||
protected:
|
||||
std::string uri;
|
||||
Tag tag;
|
||||
|
||||
Tag tag2;
|
||||
template<typename U, typename T>
|
||||
UpnpSongData(U &&_uri, T &&_tag) noexcept
|
||||
:uri(std::forward<U>(_uri)), tag(std::forward<T>(_tag)) {}
|
||||
};
|
||||
|
||||
class UpnpSong : UpnpSongData, public LightSong {
|
||||
std::string real_uri2;
|
||||
|
||||
public:
|
||||
UpnpSong(UPnPDirObject &&object, std::string &&_uri)
|
||||
:LightSong(tag2),
|
||||
uri2(std::move(_uri)),
|
||||
real_uri2(std::move(object.url)),
|
||||
tag2(std::move(object.tag)) {
|
||||
uri = uri2.c_str();
|
||||
:UpnpSongData(std::move(_uri), std::move(object.tag)),
|
||||
LightSong(UpnpSongData::uri.c_str(), UpnpSongData::tag),
|
||||
real_uri2(std::move(object.url)) {
|
||||
real_uri = real_uri2.c_str();
|
||||
}
|
||||
};
|
||||
@@ -318,8 +324,7 @@ visitSong(const UPnPDirObject &meta, const char *path,
|
||||
if (!visit_song)
|
||||
return;
|
||||
|
||||
LightSong song(meta.tag);
|
||||
song.uri = path;
|
||||
LightSong song(path, meta.tag);
|
||||
song.real_uri = meta.url.c_str();
|
||||
|
||||
if (selection.Match(song))
|
||||
|
Reference in New Issue
Block a user