From 50ea6a4b5c7ee1229b442c046cd9200f8262d8f7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 16 Dec 2009 22:04:24 +0100 Subject: cue_tag: added song duration support Get duration from track_get_length(). --- src/cue/cue_tag.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/cue') diff --git a/src/cue/cue_tag.c b/src/cue/cue_tag.c index 3f8fc327e..46dfb1b50 100644 --- a/src/cue/cue_tag.c +++ b/src/cue/cue_tag.c @@ -174,7 +174,7 @@ cue_tag_merge(struct tag *a, struct tag *b) struct tag * cue_tag(struct Cd *cd, unsigned tnum) { - struct tag *cd_tag, *track_tag; + struct tag *cd_tag, *track_tag, *tag; struct Track *track; assert(cd != NULL); @@ -190,7 +190,15 @@ cue_tag(struct Cd *cd, unsigned tnum) track_tag = cue_tag_track(track_get_cdtext(track), track_get_rem(track)); - return cue_tag_merge(cd_tag, track_tag); + tag = cue_tag_merge(cd_tag, track_tag); + if (tag == NULL) + return NULL; + + /* libcue returns the track duration in frames, and there are + 75 frames per second; this formula rounds up */ + tag->time = (track_get_length(track) + 74) / 75; + + return tag; } struct tag * -- cgit v1.2.3