ptformat: Update to upstream c1c6475
This changes region to track entries to make importing easier. Entries are now sequential, gapless and numbered from zero.
This commit is contained in:
parent
5d7ff24130
commit
1532f218ab
@ -1066,6 +1066,42 @@ PTFFormat::parserest(void) {
|
||||
tr++;
|
||||
}
|
||||
}
|
||||
|
||||
if (_tracks.begin() == _tracks.end())
|
||||
return found;
|
||||
|
||||
/* Sort track entries by index */
|
||||
std::sort(_tracks.begin(), _tracks.end());
|
||||
|
||||
/* Renumber track entries to be gapless */
|
||||
for (std::vector<track_t>::iterator tr = _tracks.begin() + 1;
|
||||
tr != _tracks.end(); tr++) {
|
||||
while ((*tr).index == (*(tr-1)).index) {
|
||||
tr++;
|
||||
if (tr == _tracks.end()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (tr == _tracks.end()) {
|
||||
break;
|
||||
}
|
||||
int diffn = (*tr).index - (*(tr-1)).index - 1;
|
||||
if (diffn) {
|
||||
for (std::vector<track_t>::iterator rest = tr;
|
||||
rest != _tracks.end(); rest++) {
|
||||
(*rest).index -= diffn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Renumber track entries to be zero based */
|
||||
int first = _tracks[0].index;
|
||||
if (first > 0) {
|
||||
for (std::vector<track_t>::iterator tr = _tracks.begin();
|
||||
tr != _tracks.end(); tr++) {
|
||||
(*tr).index -= first;
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user