Audacity 3.2.0
Public Member Functions | List of all members
EffectProcessor Class Referenceabstract

provides the ident interface to Effect, and is what makes Effect into a plug-in command. It has functions for effect calculations that are not part of AudacityCommand. More...

#include <EffectInterface.h>

Inheritance diagram for EffectProcessor:
[legend]
Collaboration diagram for EffectProcessor:
[legend]

Public Member Functions

virtual ~EffectProcessor ()
 
virtual unsigned GetAudioInCount () const =0
 
virtual unsigned GetAudioOutCount () const =0
 
virtual int GetMidiInCount ()=0
 
virtual int GetMidiOutCount ()=0
 
virtual void SetSampleRate (double rate)=0
 
virtual size_t SetBlockSize (size_t maxBlockSize)=0
 
virtual size_t GetBlockSize () const =0
 
virtual sampleCount GetLatency ()=0
 Called for destructive, non-realtime effect computation. More...
 
virtual size_t GetTailSize ()=0
 
virtual bool ProcessInitialize (EffectSettings &settings, sampleCount totalLen, ChannelNames chanMap=nullptr)=0
 Called for destructive, non-realtime effect computation. More...
 
virtual bool ProcessFinalize ()=0
 Called for destructive, non-realtime effect computation. More...
 
virtual size_t ProcessBlock (EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen)=0
 Called for destructive, non-realtime effect computation. More...
 
virtual bool RealtimeInitialize (EffectSettings &settings)=0
 
virtual bool RealtimeAddProcessor (EffectSettings &settings, unsigned numChannels, float sampleRate)=0
 
virtual bool RealtimeFinalize (EffectSettings &settings) noexcept=0
 
virtual bool RealtimeSuspend ()=0
 
virtual bool RealtimeResume () noexcept=0
 
virtual bool RealtimeProcessStart (EffectSettings &settings)=0
 settings are possibly changed, since last call, by an asynchronous dialog More...
 
virtual size_t RealtimeProcess (int group, EffectSettings &settings, const float *const *inBuf, float *const *outBuf, size_t numSamples)=0
 
virtual bool RealtimeProcessEnd (EffectSettings &settings) noexcept=0
 settings can be updated to let a dialog change appearance at idle More...
 
- Public Member Functions inherited from EffectDefinitionInterface
virtual ~EffectDefinitionInterface ()
 
virtual EffectType GetType () const =0
 Type determines how it behaves. More...
 
virtual EffectType GetClassification () const
 Determines which menu it appears in; default same as GetType(). More...
 
virtual EffectFamilySymbol GetFamily () const =0
 Report identifier and user-visible name of the effect protocol. More...
 
virtual bool IsInteractive () const =0
 Whether the effect needs a dialog for entry of settings. More...
 
virtual bool IsDefault () const =0
 Whether the effect sorts "above the line" in the menus. More...
 
virtual bool SupportsRealtime () const =0
 Whether the effect supports realtime previewing (while audio is playing). More...
 
virtual bool SupportsAutomation () const =0
 Whether the effect has any automatable controls. More...
 
virtual bool EnablesDebug () const
 Whether the effect dialog should have a Debug button; default, always false. More...
 
virtual ManualPageID ManualPage () const
 Name of a page in the Audacity alpha manual, default is empty. More...
 
virtual FilePath HelpPage () const
 Fully qualified local help file name, default is empty. More...
 
virtual bool IsHiddenFromMenus () const
 Default is false. More...
 
virtual bool VisitSettings (SettingsVisitor &visitor, EffectSettings &settings)
 
virtual bool VisitSettings (ConstSettingsVisitor &visitor, const EffectSettings &settings) const
 
virtual EffectSettings MakeSettings () const
 
virtual bool CopySettingsContents (const EffectSettings &src, EffectSettings &dst) const
 Update one settings object from another. More...
 
virtual bool SaveSettings (const EffectSettings &settings, CommandParameters &parms) const =0
 Store settings as keys and values. More...
 
virtual bool LoadSettings (const CommandParameters &parms, EffectSettings &settings) const =0
 Restore settings from keys and values. More...
 
virtual RegistryPaths GetFactoryPresets () const =0
 Report names of factory presets. More...
 
virtual bool LoadUserPreset (const RegistryPath &name, EffectSettings &settings) const =0
 Change settings to a user-named preset. More...
 
virtual bool SaveUserPreset (const RegistryPath &name, const EffectSettings &settings) const =0
 Save settings in the configuration file as a user-named preset. More...
 
virtual bool LoadFactoryPreset (int id, EffectSettings &settings) const =0
 Change settings to the preset whose name is GetFactoryPresets()[id] More...
 
virtual bool LoadFactoryDefaults (EffectSettings &settings) const =0
 Change settings back to "factory default". More...
 
- Public Member Functions inherited from ComponentInterface
virtual ~ComponentInterface ()
 
virtual PluginPath GetPath () const =0
 
virtual ComponentInterfaceSymbol GetSymbol () const =0
 
virtual VendorSymbol GetVendor () const =0
 
virtual wxString GetVersion () const =0
 
virtual TranslatableString GetDescription () const =0
 
TranslatableString GetName () const
 

Additional Inherited Members

- Static Public Member Functions inherited from EffectDefinitionInterface
static Identifier GetSquashedName (const Identifier &ident)
 A utility that strips spaces and CamelCases a name. More...
 

Detailed Description

provides the ident interface to Effect, and is what makes Effect into a plug-in command. It has functions for effect calculations that are not part of AudacityCommand.

Definition at line 331 of file EffectInterface.h.

Constructor & Destructor Documentation

◆ ~EffectProcessor()

EffectProcessor::~EffectProcessor ( )
virtualdefault

Member Function Documentation

◆ GetAudioInCount()

virtual unsigned EffectProcessor::GetAudioInCount ( ) const
pure virtual

Implemented in EffectAmplify, AudioUnitEffect, EffectBassTreble, EffectDistortion, EffectEcho, Effect, EffectFade, EffectInvert, LadspaEffect, LV2Effect, EffectPhaser, EffectReverb, EffectScienFilter, EffectStereoToMono, VampEffect, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::AddTrack(), and RealtimeEffectState::Process().

Here is the caller graph for this function:

◆ GetAudioOutCount()

virtual unsigned EffectProcessor::GetAudioOutCount ( ) const
pure virtual

Implemented in EffectAmplify, AudioUnitEffect, EffectBassTreble, EffectDistortion, EffectDtmf, EffectEcho, Effect, EffectFade, EffectInvert, LadspaEffect, LV2Effect, EffectNoise, EffectPhaser, EffectReverb, EffectScienFilter, EffectStereoToMono, EffectToneGen, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::AddTrack(), and RealtimeEffectState::Process().

Here is the caller graph for this function:

◆ GetBlockSize()

virtual size_t EffectProcessor::GetBlockSize ( ) const
pure virtual

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, PerTrackEffect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::Process().

Here is the caller graph for this function:

◆ GetLatency()

virtual sampleCount EffectProcessor::GetLatency ( )
pure virtual

Called for destructive, non-realtime effect computation.

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

◆ GetMidiInCount()

virtual int EffectProcessor::GetMidiInCount ( )
pure virtual

◆ GetMidiOutCount()

virtual int EffectProcessor::GetMidiOutCount ( )
pure virtual

◆ GetTailSize()

virtual size_t EffectProcessor::GetTailSize ( )
pure virtual

◆ ProcessBlock()

virtual size_t EffectProcessor::ProcessBlock ( EffectSettings settings,
const float *const *  inBlock,
float *const *  outBlock,
size_t  blockLen 
)
pure virtual

◆ ProcessFinalize()

virtual bool EffectProcessor::ProcessFinalize ( )
pure virtual

Called for destructive, non-realtime effect computation.

Implemented in AudioUnitEffect, EffectEcho, Effect, LadspaEffect, LV2Effect, EffectReverb, VSTEffect, and VST3Effect.

◆ ProcessInitialize()

virtual bool EffectProcessor::ProcessInitialize ( EffectSettings settings,
sampleCount  totalLen,
ChannelNames  chanMap = nullptr 
)
pure virtual

◆ RealtimeAddProcessor()

virtual bool EffectProcessor::RealtimeAddProcessor ( EffectSettings settings,
unsigned  numChannels,
float  sampleRate 
)
pure virtual

Implemented in AudioUnitEffect, EffectBassTreble, EffectDistortion, Effect, LadspaEffect, LV2Effect, EffectPhaser, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::AddTrack().

Here is the caller graph for this function:

◆ RealtimeFinalize()

virtual bool EffectProcessor::RealtimeFinalize ( EffectSettings settings)
pure virtualnoexcept

Implemented in AudioUnitEffect, EffectBassTreble, EffectDistortion, Effect, LadspaEffect, LV2Effect, EffectPhaser, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::Finalize().

Here is the caller graph for this function:

◆ RealtimeInitialize()

virtual bool EffectProcessor::RealtimeInitialize ( EffectSettings settings)
pure virtual

Implemented in AudioUnitEffect, EffectBassTreble, EffectDistortion, Effect, LadspaEffect, LV2Effect, EffectPhaser, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::Initialize().

Here is the caller graph for this function:

◆ RealtimeProcess()

virtual size_t EffectProcessor::RealtimeProcess ( int  group,
EffectSettings settings,
const float *const *  inBuf,
float *const *  outBuf,
size_t  numSamples 
)
pure virtual

Implemented in AudioUnitEffect, EffectBassTreble, EffectDistortion, Effect, LadspaEffect, LV2Effect, EffectPhaser, VSTEffect, VST3Effect, and EffectWahwah.

Referenced by RealtimeEffectState::Process().

Here is the caller graph for this function:

◆ RealtimeProcessEnd()

virtual bool EffectProcessor::RealtimeProcessEnd ( EffectSettings settings)
pure virtualnoexcept

settings can be updated to let a dialog change appearance at idle

Implemented in LadspaEffect, AudioUnitEffect, Effect, LV2Effect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::ProcessEnd().

Here is the caller graph for this function:

◆ RealtimeProcessStart()

virtual bool EffectProcessor::RealtimeProcessStart ( EffectSettings settings)
pure virtual

settings are possibly changed, since last call, by an asynchronous dialog

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::ProcessStart().

Here is the caller graph for this function:

◆ RealtimeResume()

virtual bool EffectProcessor::RealtimeResume ( )
pure virtualnoexcept

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::Resume().

Here is the caller graph for this function:

◆ RealtimeSuspend()

virtual bool EffectProcessor::RealtimeSuspend ( )
pure virtual

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::Suspend().

Here is the caller graph for this function:

◆ SetBlockSize()

virtual size_t EffectProcessor::SetBlockSize ( size_t  maxBlockSize)
pure virtual

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, PerTrackEffect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::Initialize().

Here is the caller graph for this function:

◆ SetSampleRate()

virtual void EffectProcessor::SetSampleRate ( double  rate)
pure virtual

Implemented in AudioUnitEffect, Effect, LadspaEffect, LV2Effect, VSTEffect, and VST3Effect.

Referenced by RealtimeEffectState::Initialize().

Here is the caller graph for this function:

The documentation for this class was generated from the following files: