Tag: use SignedSongTime for the song duration

This commit is contained in:
Max Kellermann
2014-08-29 12:14:27 +02:00
parent 8ce30c6a69
commit 7c25d83f1c
25 changed files with 103 additions and 84 deletions

View File

@@ -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();
}