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"
19
22class EFFECTS_API StatefulEffect : public StatefulEffectBase, public Effect
23{
24public:
25 class EFFECTS_API Instance : public StatefulEffectBase::Instance {
26 public:
28 bool Process(EffectSettings &settings) override;
30 const EffectSettings &settings, double sampleRate) const override;
32 size_t ProcessBlock(EffectSettings &settings,
33 const float *const *inBlock, float *const *outBlock, size_t blockLen)
34 override;
35 };
36
37 ~StatefulEffect() override;
38
39 std::shared_ptr<EffectInstance> MakeInstance() const override;
40};
41
42#endif
static Settings & settings()
Definition: TrackInfo.cpp:51
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.