diff options
author | Max Kellermann <max@duempel.org> | 2014-08-29 12:14:27 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-08-29 13:20:58 +0200 |
commit | 7c25d83f1cc4c7db2d2d3f4506525dd056b885e8 (patch) | |
tree | b710e3f3d0f4edf7de0dcf6d61c823d8da7c9027 /src/queue/PlaylistEdit.cxx | |
parent | 8ce30c6a69a64f37a866541f66e3f242fe901f49 (diff) | |
download | mpd-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.cxx | 9 |
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(); } |