aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist/cue/CueParser.cxx
diff options
context:
space:
mode:
authorWill Tiffany <will.tiffany@gmail.com>2015-08-25 06:11:45 -0400
committerMax Kellermann <max@duempel.org>2015-09-17 22:44:47 +0200
commit8461d71b5202a973a514804bf6cf3e1c8ab073bc (patch)
treeeef8246cbfe76138d301e0c1920157a44bdf66ed /src/playlist/cue/CueParser.cxx
parente31cdf0df9604450f5b5a34ab43877f22479236c (diff)
downloadmpd-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.cxx9
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;
}
}