34 bool bGoodResult =
true;
37 for (
auto pOutWaveTrack : outputs.Get().Selected<
WaveTrack>())
40 double trackStart = pOutWaveTrack->GetStartTime();
41 double trackEnd = pOutWaveTrack->GetEndTime();
52 auto start = pOutWaveTrack->TimeToLongSamples(
mCurT0);
53 auto end = pOutWaveTrack->TimeToLongSamples(
mCurT1);
84 auto len = (
end - start).as_double();
100 track->
GetFloats(buffer.get(), s, block);
116 (s - start).as_double() /
size_t limitSampleBufferSize(size_t bufferSize, sampleCount limit)
bool TrackProgress(int whichTrack, double frac, const TranslatableString &={}) const
Performs effect computation.
Use this object to copy the input tracks to tentative outputTracks.
virtual bool NewTrackSimpleMono()=0
bool ProcessOne(WaveTrack *t, sampleCount start, sampleCount end)
bool Process(EffectInstance &instance, EffectSettings &settings) override
virtual bool ProcessSimpleMono(float *buffer, size_t len)=0
bool GetFloats(float *buffer, sampleCount start, size_t len, fillFormat fill=fillZero, bool mayThrow=true, sampleCount *pNumWithinClips=nullptr) const
"narrow" overload fetches first channel only
A Track that contains audio waveform data.
size_t GetMaxBlockSize() const
void Set(constSamplePtr buffer, sampleFormat format, sampleCount start, size_t len, sampleFormat effectiveFormat=widestSampleFormat)
size_t GetBestBlockSize(sampleCount t) const
Positions or offsets within audio files need a wide type.
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
Externalized state of a plug-in.