Commit 8461d71b authored by Will Tiffany's avatar Will Tiffany Committed by Max Kellermann

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.
parent e31cdf0d
......@@ -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;
}
}
......
......@@ -89,12 +89,6 @@ class CueParser {
DetachedSong *finished;
/**
* Set to true after previous.end_time has been updated to the
* start time of the current song.
*/
bool last_updated;
/**
* Tracks whether cue_parser_finish() has been called. If
* true, then all remaining (partial) results will be
* delivered by cue_parser_get().
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment