diff options
author | Max Kellermann <max@duempel.org> | 2014-01-10 10:17:30 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-01-11 01:31:13 +0100 |
commit | f031eb1ef22373f94838b7e3357f2913ced6db71 (patch) | |
tree | e6261d0a22ba0f08dad462e678611efd9db84ab8 /src/db/UpnpDatabasePlugin.cxx | |
parent | b50d79542c95ab88387418b34999e942e6b6a583 (diff) | |
download | mpd-f031eb1ef22373f94838b7e3357f2913ced6db71.tar.gz mpd-f031eb1ef22373f94838b7e3357f2913ced6db71.tar.xz mpd-f031eb1ef22373f94838b7e3357f2913ced6db71.zip |
db/upnp/Directory: parse duration
Don't put all <res/> attributes to the attributes map; parse the
"duration" attribute as soon as we receive it, and store it in an
integer attribute. This reduces bloat.
Diffstat (limited to '')
-rw-r--r-- | src/db/UpnpDatabasePlugin.cxx | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/db/UpnpDatabasePlugin.cxx b/src/db/UpnpDatabasePlugin.cxx index be035bb00..5228d8b60 100644 --- a/src/db/UpnpDatabasePlugin.cxx +++ b/src/db/UpnpDatabasePlugin.cxx @@ -229,16 +229,6 @@ titleToPathElt(const std::string &in) return out; } -gcc_pure -static int -upnpDurationToSeconds(const std::string &duration) -{ - const auto v = stringToTokens(duration, ":"); - if (v.size() != 3) - return 0; - return atoi(v[0].c_str())*3600 + atoi(v[1].c_str())*60 + atoi(v[2].c_str()); -} - // If uri is empty, we use the object's url instead. This happens // when the target of a Visit() is a song, which only happens when // "add"ing AFAIK. Visit() calls us with a null uri so that the url @@ -253,9 +243,8 @@ upnpItemToSong(const UPnPDirObject &dirent, const char *uri) TagBuilder tag; - const char *duration = dirent.getprop("duration"); - if (duration != nullptr) - tag.SetTime(upnpDurationToSeconds(duration)); + if (dirent.duration > 0) + tag.SetTime(dirent.duration); tag.AddItem(TAG_TITLE, titleToPathElt(dirent.m_title).c_str()); |