| 374 | } |
| 375 | |
| 376 | void WaveTrackUtilities::VisitBlocks(TrackList &tracks, BlockVisitor visitor, |
| 377 | SampleBlockIDSet *pIDs) |
| 378 | { |
| 379 | for (auto wt : tracks.Any<WaveTrack>()) |
| 380 | // Scan all clips within current track |
| 381 | for (const auto &pClip : GetAllClips(*wt)) |
| 382 | // Scan all sample blocks within current clip |
| 383 | for (const auto &pChannel : pClip->Channels()) { |
| 384 | auto blocks = pChannel->GetSequenceBlockArray(); |
| 385 | for (const auto &block : *blocks) { |
| 386 | auto &pBlock = block.sb; |
| 387 | if (pBlock) { |
| 388 | if (pIDs && !pIDs->insert(pBlock->GetBlockID()).second) |
| 389 | continue; |
| 390 | if (visitor) |
| 391 | visitor(pBlock); |
| 392 | } |
| 393 | } |
| 394 | } |
| 395 | } |
| 396 | |
| 397 | void WaveTrackUtilities::InspectBlocks(const TrackList &tracks, |
| 398 | BlockInspector inspector, SampleBlockIDSet *pIDs) |
nothing calls this directly
no test coverage detected