22 #include "../blockfile/ODPCMAliasBlockFile.h"
23 #include "../Sequence.h"
24 #include "../WaveClip.h"
25 #include "../WaveTrack.h"
29 #define nBlockFilesPerDoSome 36
40 auto clone = std::make_unique<ODComputeSummaryTask>();
43 return std::move(clone);
81 success = GuardedCall<bool>( [&] {
85 blockStartSample = bf->GetStart();
86 blockEndSample = blockStartSample + bf->GetLength();
109 wxThread::This()->Yield();
120 if(success && waveTrack)
122 #if 0 // LLL: Commented out while removing OD file handling
123 waveTrack->AddInvalidRegion(blockStartSample,blockEndSample);
184 std::vector< std::weak_ptr< ODPCMAliasBlockFile > > tempBlocks;
197 for (
const auto &clip : waveTrack->GetAllClips()) {
198 seq = clip->GetSequence();
201 Sequence::DeleteUpdateMutexLocker locker(*seq);
207 blocks = clip->GetSequenceBlockArray();
213 for(i=0; i<(int)blocks->size(); i++)
217 const auto &file = block.f;
218 if(file->IsDataAvailable() && !file->IsSummaryAvailable())
220 const auto odpcmaFile =
221 std::static_pointer_cast<ODPCMAliasBlockFile>(file);
222 odpcmaFile->SetStart(block.
start);
224 clip->GetStartTime()*clip->GetRate()
229 std::shared_ptr< ODPCMAliasBlockFile > ptr;
230 while(insertCursor < (
int)tempBlocks.size() &&
231 (!(ptr = tempBlocks[insertCursor].lock()) ||
233 odpcmaFile->GetStart() + odpcmaFile->GetClipOffset()))
237 tempBlocks.insert(tempBlocks.begin() + insertCursor++, odpcmaFile);
257 (std::vector< std::weak_ptr< ODPCMAliasBlockFile > > &unorderedBlocks)
267 std::shared_ptr< ODPCMAliasBlockFile > firstBlock;
268 for(
auto i = unorderedBlocks.size(); i--;)
270 auto ptr = unorderedBlocks[i].lock();