diff options
author | Max Kellermann <max@duempel.org> | 2014-01-07 21:39:47 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-01-09 09:05:58 +0100 |
commit | 322b0616322760dc162447563d8f4da7e024ca90 (patch) | |
tree | 2f87cb3ce061556161797aba9f57ee08de5b9e21 /src/PlaylistUpdate.cxx | |
parent | 43847f2244a34064af24704aac4cfad4a3c76f7d (diff) | |
download | mpd-322b0616322760dc162447563d8f4da7e024ca90.tar.gz mpd-322b0616322760dc162447563d8f4da7e024ca90.tar.xz mpd-322b0616322760dc162447563d8f4da7e024ca90.zip |
DetachedSong: fork of struct Song
From now on, struct Song will be used by the database only, and
DetachedSong will be used by everybody else. DetachedSong is easier
to use, but Song has lower overhead.
Diffstat (limited to 'src/PlaylistUpdate.cxx')
-rw-r--r-- | src/PlaylistUpdate.cxx | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/PlaylistUpdate.cxx b/src/PlaylistUpdate.cxx index 0e72ef671..91adc01b7 100644 --- a/src/PlaylistUpdate.cxx +++ b/src/PlaylistUpdate.cxx @@ -22,35 +22,36 @@ #include "DatabaseGlue.hxx" #include "DatabasePlugin.hxx" #include "Song.hxx" +#include "DetachedSong.hxx" #include "tag/Tag.hxx" #include "Idle.hxx" #include "util/Error.hxx" static bool -UpdatePlaylistSong(const Database &db, Song &song) +UpdatePlaylistSong(const Database &db, DetachedSong &song) { - if (!song.IsInDatabase() || !song.IsDetached()) + if (!song.IsInDatabase()) /* only update Songs instances that are "detached" from the Database */ return false; - Song *original = db.GetSong(song.uri, IgnoreError()); + Song *original = db.GetSong(song.GetURI(), IgnoreError()); if (original == nullptr) /* not found - shouldn't happen, because the update thread should ensure that all stale Song instances have been purged */ return false; - if (original->mtime == song.mtime) { + if (original->mtime == song.GetLastModified()) { /* not modified */ db.ReturnSong(original); return false; } - song.mtime = original->mtime; + song.SetLastModified(original->mtime); if (original->tag != nullptr) - song.ReplaceTag(Tag(*original->tag)); + song.SetTag(*original->tag); db.ReturnSong(original); return true; |