diff options
author | Max Kellermann <max@duempel.org> | 2014-01-19 10:51:34 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-01-19 17:04:51 +0100 |
commit | f5ae1ce00b85699291a7cdf9782574e70a8c28f5 (patch) | |
tree | 9cb95dd1d98b1b0cd522ee27d7e8a374a3c8eb4a /src/Song.cxx | |
parent | 738d6f10409037fbf8aa30cec5aceb121e21e230 (diff) | |
download | mpd-f5ae1ce00b85699291a7cdf9782574e70a8c28f5.tar.gz mpd-f5ae1ce00b85699291a7cdf9782574e70a8c28f5.tar.xz mpd-f5ae1ce00b85699291a7cdf9782574e70a8c28f5.zip |
LightSong: new class to be used by DatabasePlugin callbacks
Detach the Song class completely from the public API, only to be used
by SimpleDatabase and the update thread.
Diffstat (limited to 'src/Song.cxx')
-rw-r--r-- | src/Song.cxx | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/Song.cxx b/src/Song.cxx index 384307642..565b9af98 100644 --- a/src/Song.cxx +++ b/src/Song.cxx @@ -23,6 +23,7 @@ #include "tag/Tag.hxx" #include "util/VarSize.hxx" #include "DetachedSong.hxx" +#include "LightSong.hxx" #include <assert.h> #include <string.h> @@ -94,14 +95,16 @@ Song::GetURI() const } } -double -Song::GetDuration() const +LightSong +Song::Export() const { - if (end_ms > 0) - return (end_ms - start_ms) / 1000.0; - - if (tag.time <= 0) - return 0; - - return tag.time - start_ms / 1000.0; + LightSong dest; + dest.directory = parent->IsRoot() + ? nullptr : parent->GetPath(); + dest.uri = uri; + dest.tag = &tag; + dest.mtime = mtime; + dest.start_ms = start_ms; + dest.end_ms = end_ms; + return dest; } |