Audacity 3.2.0
StatefulEffect.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 StatefulEffect.h
6
7 Dominic Mazzoni
8 Vaughan Johnson
9
10 Paul Licameli split from Effect.h
11
12**********************************************************************/
13
14#ifndef __AUDACITY_STATEFUL_EFFECT__
15#define __AUDACITY_STATEFUL_EFFECT__
16
17#include "StatefulEffectBase.h"
18#include "Effect.h"
20
23class AUDACITY_DLL_API StatefulEffect
24 : public StatefulEffectBase
25 , public Effect
27{
28public:
29 class AUDACITY_DLL_API Instance : public StatefulEffectBase::Instance {
30 public:
32 bool Process(EffectSettings &settings) override;
34 const EffectSettings &settings, double sampleRate) const override;
36 size_t ProcessBlock(EffectSettings &settings,
37 const float *const *inBlock, float *const *outBlock, size_t blockLen)
38 override;
39 };
40
41 ~StatefulEffect() override;
42
43 std::shared_ptr<EffectInstance> MakeInstance() const override;
44};
45
46#endif
static Settings & settings()
Definition: TrackInfo.cpp:69
Base class for many of the effects in Audacity.
Definition: Effect.h:26
virtual std::shared_ptr< EffectInstance > MakeInstance() const =0
Make an object maintaining short-term state of an Effect.
uint64_t SampleCount
Calls through to members of StatefulEffectBase.
Instance(StatefulEffectBase &effect)
virtual bool Process(EffectInstance &instance, EffectSettings &settings)=0
virtual sampleCount GetLatency() const
~StatefulEffect() override
Externalized state of a plug-in.