Audacity 3.2.0
StatefulPerTrackEffect.cpp
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 StatefulPerTrackEffect.cpp
6
7 Dominic Mazzoni
8 Vaughan Johnson
9 Martyn Shaw
10
11 Paul Licameli split from PerTrackEffect.cpp
12
13*******************************************************************//*******************************************************************/
20#include "ShuttleGui.h"
21#include <wx/sizer.h>
22
24
27{
28 return GetEffect()
30}
31
33{
34 return GetEffect().ProcessFinalize();
35}
36
38 const float *const *inBlock, float *const *outBlock, size_t blockLen)
39{
40 return GetEffect().ProcessBlock(settings, inBlock, outBlock, blockLen);
41}
42
44
45std::shared_ptr<EffectInstance> StatefulPerTrackEffect::MakeInstance() const
46{
47 // Cheat with const_cast to return an object that calls through to
48 // non-const methods of a stateful effect.
49 // Stateless effects should override this function and be really const
50 // correct.
51 return std::make_shared<Instance>(
52 const_cast<StatefulPerTrackEffect&>(*this));
53}
54
57{
58 // Call through to a non-virtual function
59 return PerTrackEffect::Process(instance, settings);
60}
61
63{
65 return mBlockSize;
66}
67
69{
70 return mBlockSize;
71}
72
75{
76 return true;
77}
78
80{
81 return true;
82}
ChannelName
static Settings & settings()
Definition: TrackInfo.cpp:47
Performs effect computation.
bool Process(EffectInstance &instance, EffectSettings &settings) const
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap) override
StatefulPerTrackEffect & GetEffect() const
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
bool ProcessFinalize() noexcept override
Base class for many of the effects in Audacity.
bool ProcessInitialize(EffectSettings &settings, double sampleRate, ChannelNames chanMap=nullptr) override
~StatefulPerTrackEffect() override
bool ProcessFinalize() noexcept override
size_t GetBlockSize() const override
size_t SetBlockSize(size_t maxBlockSize) override
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
bool Process(EffectInstance &instance, EffectSettings &settings) final
Externalized state of a plug-in.