aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist/cue_playlist_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/playlist/cue_playlist_plugin.c')
-rw-r--r--src/playlist/cue_playlist_plugin.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/playlist/cue_playlist_plugin.c b/src/playlist/cue_playlist_plugin.c
index 4dd5a7c79..d2959dab2 100644
--- a/src/playlist/cue_playlist_plugin.c
+++ b/src/playlist/cue_playlist_plugin.c
@@ -102,10 +102,21 @@ cue_playlist_read(struct playlist_provider *_playlist)
song = song_remote_new(filename);
song->tag = tag;
- song->start_ms = (track_get_start(track) * 1000) / 75;
- song->end_ms = ((track_get_start(track) + track_get_length(track))
+ song->start_ms = ((track_get_start(track)
+ + track_get_index(track, 1)
+ - track_get_zero_pre(track)) * 1000) / 75;
+ song->end_ms = ((track_get_start(track) + track_get_length(track)
+ - track_get_index(track, 1)
+ + track_get_zero_pre(track))
* 1000) / 75;
+ /* append pregap of the next track to the end of this one */
+ track = cd_get_track(playlist->cd, playlist->next);
+ if (track != NULL)
+ song->end_ms = ((track_get_start(track)
+ + track_get_index(track, 1)
+ - track_get_zero_pre(track)) * 1000) / 75;
+
return song;
}