From 8461d71b5202a973a514804bf6cf3e1c8ab073bc Mon Sep 17 00:00:00 2001 From: Will Tiffany Date: Tue, 25 Aug 2015 06:11:45 -0400 Subject: CueParser.cxx: Append pregap to previous track Only ignore indexes after first nonzero, preserving pregaps but appending them to the previous track instead of prepending to the current. The first index of the first track is used for the start time regardless of its number. Unneeded bool last_updated removed. --- src/playlist/cue/CueParser.cxx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/playlist/cue/CueParser.cxx') diff --git a/src/playlist/cue/CueParser.cxx b/src/playlist/cue/CueParser.cxx index e0c84a01e..81797fe28 100644 --- a/src/playlist/cue/CueParser.cxx +++ b/src/playlist/cue/CueParser.cxx @@ -250,7 +250,6 @@ CueParser::Feed2(char *p) song_tag = header_tag; song_tag.AddItem(TAG_TRACK, nr); - last_updated = false; } else if (state == IGNORE_TRACK) { return; } else if (state == TRACK && strcmp(command, "INDEX") == 0) { @@ -266,14 +265,12 @@ CueParser::Feed2(char *p) if (position_ms < 0) return; - if (!last_updated && previous != nullptr && - previous->GetStartTime().ToMS() < (unsigned)position_ms) { - last_updated = true; + if (previous != nullptr && previous->GetStartTime().ToMS() < (unsigned)position_ms) previous->SetEndTime(SongTime::FromMS(position_ms)); - } current->SetStartTime(SongTime::FromMS(position_ms)); - state = IGNORE_TRACK; + if(strcmp(nr, "00") != 0 || previous == nullptr) + state = IGNORE_TRACK; } } -- cgit v1.2.3