24#include "../WaveTrack.h"
68 auto outTrack = *outTracks;
71 double trackStart = track->GetStartTime();
72 double trackEnd = track->GetEndTime();
83 auto start = track->TimeToLongSamples(
mCurT0);
84 auto end = track->TimeToLongSamples(
mCurT1);
122 auto len = (
end - start).as_double();
127 Floats buffer1{ maxblock };
128 Floats buffer2{ maxblock };
133 track->
GetFloats(buffer1.get(), start, samples1);
146 auto s = start + samples1;
155 track->
GetFloats(buffer2.get(), s, samples2);
192 buffer1.swap(buffer2);
size_t limitSampleBufferSize(size_t bufferSize, sampleCount limit)
static Settings & settings()
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
std::shared_ptr< TrackList > mOutputTracks
void ReplaceProcessedTracks(const bool bGoodResult)
const AudacityProject * FindProject() const
void CopyInputTracks(bool allSyncLockSelected=false)
bool TotalProgress(double frac, const TranslatableString &={}) const
int GetNumWaveTracks() const
Performs effect computation.
bool ProcessPass(EffectSettings &settings)
virtual bool NewTrackPass1()
virtual bool TwoBufferProcessPass1(float *buffer1, size_t len1, float *WXUNUSED(buffer2), size_t WXUNUSED(len2))
bool ProcessOne(WaveTrack *t, WaveTrack *outTrack, sampleCount start, sampleCount end)
bool Process(EffectInstance &instance, EffectSettings &settings) override
std::shared_ptr< TrackList > * mTrackLists[2]
virtual bool TwoBufferProcessPass2(float *buffer1, size_t len1, float *WXUNUSED(buffer2), size_t WXUNUSED(len2))
std::shared_ptr< TrackList > mWorkTracks
virtual bool NewTrackPass2()
bool GetFloats(float *buffer, sampleCount start, size_t len, fillFormat fill=fillZero, bool mayThrow=true, sampleCount *pNumWithinClips=nullptr) const
Retrieve samples from a track in floating-point format, regardless of the storage format.
static std::shared_ptr< TrackList > Create(AudacityProject *pOwner)
A Track that contains audio waveform data.
bool Append(constSamplePtr buffer, sampleFormat format, size_t len, unsigned int stride=1, sampleFormat effectiveFormat=widestSampleFormat) override
size_t GetMaxBlockSize() const override
This returns a nonnegative number of samples meant to size a memory buffer.
size_t GetBestBlockSize(sampleCount t) const override
This returns a nonnegative number of samples meant to size a memory buffer.
void Set(constSamplePtr buffer, sampleFormat format, sampleCount start, size_t len, sampleFormat effectiveFormat=widestSampleFormat)
Positions or offsets within audio files need a wide type.
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
void swap(std::unique_ptr< Alg_seq > &a, std::unique_ptr< Alg_seq > &b)
Externalized state of a plug-in.