1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-10 21:50:29 +01:00

Rewrite many iterations over tracks and channels in various places

This commit is contained in:
Paul Licameli
2018-09-18 12:03:37 -04:00
parent fee0f284fe
commit 968d63d5fd
14 changed files with 137 additions and 267 deletions

View File

@@ -73,21 +73,13 @@ using BoolBlockFileHash = std::unordered_map<BlockFile *, bool>;
static void GetAllSeqBlocks(AudacityProject *project,
BlockPtrArray *outBlocks)
{
TrackList *tracks = project->GetTracks();
TrackListIterator iter(tracks);
Track *t = iter.First();
while (t) {
if (t->GetKind() == Track::Wave) {
WaveTrack *waveTrack = static_cast<WaveTrack*>(t);
for(const auto &clip : waveTrack->GetAllClips()) {
Sequence *sequence = clip->GetSequence();
BlockArray &blocks = sequence->GetBlockArray();
int i;
for (i = 0; i < (int)blocks.size(); i++)
outBlocks->push_back(&blocks[i]);
}
for (auto waveTrack : project->GetTracks()->Any< WaveTrack >()) {
for(const auto &clip : waveTrack->GetAllClips()) {
Sequence *sequence = clip->GetSequence();
BlockArray &blocks = sequence->GetBlockArray();
for (size_t i = 0; i < blocks.size(); i++)
outBlocks->push_back(&blocks[i]);
}
t = iter.Next();
}
}