diff options
author | Will Tiffany <will.tiffany@gmail.com> | 2015-08-25 06:11:45 -0400 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2015-09-17 22:44:47 +0200 |
commit | 8461d71b5202a973a514804bf6cf3e1c8ab073bc (patch) | |
tree | eef8246cbfe76138d301e0c1920157a44bdf66ed /src/playlist/cue/CueParser.cxx | |
parent | e31cdf0df9604450f5b5a34ab43877f22479236c (diff) | |
download | mpd-8461d71b5202a973a514804bf6cf3e1c8ab073bc.tar.gz mpd-8461d71b5202a973a514804bf6cf3e1c8ab073bc.tar.xz mpd-8461d71b5202a973a514804bf6cf3e1c8ab073bc.zip |
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.
Diffstat (limited to '')
-rw-r--r-- | src/playlist/cue/CueParser.cxx | 9 |
1 files changed, 3 insertions, 6 deletions
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; } } |