From 46ab8d18e2539359eadb48b323ee9cace8b3a65b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Nov 2010 20:16:26 +0100 Subject: playlist_song: calculate duration of last CUE track --- src/playlist_song.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/playlist_song.c b/src/playlist_song.c index 20fac59d8..1e8e98795 100644 --- a/src/playlist_song.c +++ b/src/playlist_song.c @@ -72,6 +72,14 @@ apply_song_metadata(struct song *dest, const struct song *src) song_free(dest); } + if (dest->tag != NULL && dest->tag->time > 0 && + src->start_ms > 0 && src->end_ms == 0 && + src->start_ms / 1000 < (unsigned)dest->tag->time) + /* the range is open-ended, and the playlist plugin + did not know the total length of the song file + (e.g. last track on a CUE file); fix it up here */ + tmp->tag->time = dest->tag->time - src->start_ms / 1000; + return tmp; } -- cgit v1.2.3