aboutsummaryrefslogtreecommitdiffstats
path: root/src/queue/PlaylistEdit.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-08-29 12:14:27 +0200
committerMax Kellermann <max@duempel.org>2014-08-29 13:20:58 +0200
commit7c25d83f1cc4c7db2d2d3f4506525dd056b885e8 (patch)
treeb710e3f3d0f4edf7de0dcf6d61c823d8da7c9027 /src/queue/PlaylistEdit.cxx
parent8ce30c6a69a64f37a866541f66e3f242fe901f49 (diff)
downloadmpd-7c25d83f1cc4c7db2d2d3f4506525dd056b885e8.tar.gz
mpd-7c25d83f1cc4c7db2d2d3f4506525dd056b885e8.tar.xz
mpd-7c25d83f1cc4c7db2d2d3f4506525dd056b885e8.zip
Tag: use SignedSongTime for the song duration
Diffstat (limited to 'src/queue/PlaylistEdit.cxx')
-rw-r--r--src/queue/PlaylistEdit.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/queue/PlaylistEdit.cxx b/src/queue/PlaylistEdit.cxx
index 20d459732..22a88dc46 100644
--- a/src/queue/PlaylistEdit.cxx
+++ b/src/queue/PlaylistEdit.cxx
@@ -463,18 +463,19 @@ playlist::SetSongIdRange(PlayerControl &pc, unsigned id,
}
DetachedSong &song = queue.Get(position);
- if (song.GetTag().time > 0) {
+
+ const auto duration = song.GetTag().duration;
+ if (!duration.IsNegative()) {
/* validate the offsets */
- const unsigned duration = song.GetTag().time;
- if (start.ToMS() / 1000u > duration) {
+ if (start > duration) {
error.Set(playlist_domain,
int(PlaylistResult::BAD_RANGE),
"Invalid start offset");
return false;
}
- if (end.ToMS() / 1000u > duration)
+ if (end >= duration)
end = SongTime::zero();
}