MCPcopy Create free account
hub / github.com/audacity/audacity / TrackCompare

Method TrackCompare

src/effects/Equalization48x.cpp:317–392  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

315}
316
317bool EffectEqualization48x::TrackCompare()
318{
319 mEffectEqualization->CopyInputTracks(); // Set up mOutputTracks.
320 bool bBreakLoop = false;
321
322 TableUsage(sMathPath);
323 if(sMathPath) // !!! Filter MUST BE QUAD WORD ALIGNED !!!!
324 mEffectEqualization->mM=(mEffectEqualization->mM&(~15))+1;
325 AllocateBuffersWorkers(sMathPath&MATH_FUNCTION_THREADED);
326 auto cleanup = finally( [&] { FreeBuffersWorkers(); } );
327 // Reset map
328 // PRL: These two maps aren't really used
329 std::vector<const Track*> SecondIMap;
330 std::vector<Track*> SecondOMap;
331 SecondIMap.clear();
332 SecondOMap.clear();
333
334 auto pSecondOutputTracks = TrackList::Create( nullptr );
335 auto &SecondOutputTracks = *pSecondOutputTracks;
336
337 for (auto aTrack :
338 mEffectEqualization->inputTracks()->Any< const WaveTrack >()) {
339
340 // Include selected tracks, plus sync-lock selected tracks
341 if (aTrack->GetSelected() || aTrack->IsSyncLockSelected())
342 {
343 auto o = mEffectEqualization->mFactory->DuplicateWaveTrack( *aTrack );
344 SecondIMap.push_back(aTrack);
345 SecondIMap.push_back(o.get());
346 SecondOutputTracks.Add( o );
347 }
348 }
349
350 for(int i = 0; i < 2; i++) {
351 i?sMathPath=sMathPath:sMathPath=0;
352 int count = 0;
353 for( auto track :
354 ( i ? mEffectEqualization->mOutputTracks.get()
355 : &SecondOutputTracks ) -> Selected< WaveTrack >() ) {
356 double trackStart = track->GetStartTime();
357 double trackEnd = track->GetEndTime();
358 double t0 = mEffectEqualization->mT0 < trackStart? trackStart: mEffectEqualization->mT0;
359 double t1 = mEffectEqualization->mT1 > trackEnd? trackEnd: mEffectEqualization->mT1;
360
361 if (t1 > t0) {
362 auto start = track->TimeToLongSamples(t0);
363 auto end = track->TimeToLongSamples(t1);
364 auto len = end - start;
365 bBreakLoop=RunFunctionSelect(sMathPath, count, track, start, len);
366 if( bBreakLoop )
367 break;
368 }
369 count++;
370 }
371 }
372
373 auto iter2 = (SecondOutputTracks.Selected< const WaveTrack >()).first;
374 auto track2 = *iter2;

Callers

nothing calls this directly

Calls 12

TableUsageFunction · 0.85
finallyFunction · 0.85
CreateFunction · 0.85
IsSyncLockSelectedMethod · 0.80
TimeToLongSamplesMethod · 0.80
clearMethod · 0.45
GetSelectedMethod · 0.45
push_backMethod · 0.45
getMethod · 0.45
AddMethod · 0.45
GetStartTimeMethod · 0.45
GetEndTimeMethod · 0.45

Tested by

no test coverage detected