Audacity 3.2.0
Classes | Typedefs | Enumerations | Functions
EffectInterface.h File Reference
#include "ComponentInterface.h"
#include "ComponentInterfaceSymbol.h"
#include "EffectAutomationParameters.h"
#include "TypedAny.h"
#include <memory>
#include <optional>
#include <type_traits>
#include <wx/event.h>
#include "Observer.h"
Include dependency graph for EffectInterface.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  EffectSettingsExtra
 Non-polymorphic package of settings values common to many effects. More...
 
struct  EffectSettings
 Externalized state of a plug-in. More...
 
class  EffectOutputs
 Hold values to send to effect output meters. More...
 
class  EffectSettingsAccess
 
class  EffectSettingsAccess::Message
 Type of messages to send from main thread to processing. More...
 
class  SimpleEffectSettingsAccess
 Implementation of EffectSettings for cases where there is only one thread. More...
 
class  EffectDefinitionInterface
 EffectDefinitionInterface is a ComponentInterface that adds some basic read-only information about effect properties, and getting and setting of parameters. More...
 
class  EffectSettingsManager
 EffectSettingsManager is an EffectDefinitionInterface that adds a factory function for EffectSettings, and const functions for manipulating those settings. This externalizes certain effect state. More...
 
class  EffectInstance
 Performs effect computation. More...
 
struct  EffectInstance::MessagePackage
 
class  EffectInstanceEx
 Performs effect computation. More...
 
class  EffectInstanceWithBlockSize
 Inherit to add a state variable to an EffectInstance subclass. More...
 
class  EffectInstanceFactory
 
class  EffectSettingChanged
 Message sent by validator when a setting is changed by a user. More...
 
class  EffectUIValidator
 Interface for transferring values from a panel of effect controls. More...
 
class  EffectUIClientInterface
 EffectUIClientInterface is an abstract base class to populate a UI and validate UI values. It can import and export presets. More...
 

Typedefs

using SettingsVisitor = SettingsVisitorBase< false >
 
using ConstSettingsVisitor = SettingsVisitorBase< true >
 
typedef enum EffectType EffectType
 
using EffectFamilySymbol = ComponentInterfaceSymbol
 
using OptionalMessage = std::optional< std::unique_ptr< EffectSettingsAccess::Message > >
 
using ChannelNames = const ChannelName *
 

Enumerations

enum  EffectType : int {
  EffectTypeNone , EffectTypeHidden , EffectTypeGenerate , EffectTypeProcess ,
  EffectTypeAnalyze , EffectTypeTool
}
 
enum  ChannelName : int {
  ChannelNameEOL = -1 , ChannelNameMono , ChannelNameFrontLeft , ChannelNameFrontRight ,
  ChannelNameFrontCenter , ChannelNameLowFrequency1 , ChannelNameBackLeft , ChannelNameBackRight ,
  ChannelNameFrontLeftCenter , ChannelNameFrontRightCenter , ChannelNameBackCenter , ChannelNameLowFrequency2 ,
  ChannelNameSideLeft , ChannelNameSideRight , ChannelNameTopFrontLeft , ChannelNameTopFrontRight ,
  ChannelNameTopFrontCenter , ChannelNameTopCenter , ChannelNameTopBackLeft , ChannelNameTopBackRight ,
  ChannelNameTopSideLeft , ChannelNameTopSideRight , ChannelNameTopBackCenter , ChannelNameBottomFrontCenter ,
  ChannelNameBottomFrontLeft , ChannelNameBottomFrontRight
}
 

Functions

COMPONENTS_API const RegistryPathCurrentSettingsGroup ()
 Component of a configuration key path, for last-used destructive settings. More...
 
COMPONENTS_API const RegistryPathFactoryDefaultsGroup ()
 Component of a configuration key path, for default state of MakeSettings() More...
 
COMPONENTS_API RegistryPath UserPresetsGroup (const RegistryPath &name)
 Compute part of a registry path, given a name which may be empty. More...
 

Detailed Description


Audacity: A Digital Audio Editor

Leland Lucius

Copyright (c) 2014, Audacity Team All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file EffectInterface.h.

Typedef Documentation

◆ ChannelNames

using ChannelNames = const ChannelName *

Definition at line 445 of file EffectInterface.h.

◆ ConstSettingsVisitor

Definition at line 60 of file EffectInterface.h.

◆ EffectFamilySymbol

Definition at line 73 of file EffectInterface.h.

◆ EffectType

typedef enum EffectType EffectType

◆ OptionalMessage

using OptionalMessage = std::optional<std::unique_ptr<EffectSettingsAccess::Message> >

Definition at line 299 of file EffectInterface.h.

◆ SettingsVisitor

Definition at line 59 of file EffectInterface.h.

Enumeration Type Documentation

◆ ChannelName

enum ChannelName : int
Enumerator
ChannelNameEOL 
ChannelNameMono 
ChannelNameFrontLeft 
ChannelNameFrontRight 
ChannelNameFrontCenter 
ChannelNameLowFrequency1 
ChannelNameBackLeft 
ChannelNameBackRight 
ChannelNameFrontLeftCenter 
ChannelNameFrontRightCenter 
ChannelNameBackCenter 
ChannelNameLowFrequency2 
ChannelNameSideLeft 
ChannelNameSideRight 
ChannelNameTopFrontLeft 
ChannelNameTopFrontRight 
ChannelNameTopFrontCenter 
ChannelNameTopCenter 
ChannelNameTopBackLeft 
ChannelNameTopBackRight 
ChannelNameTopSideLeft 
ChannelNameTopSideRight 
ChannelNameTopBackCenter 
ChannelNameBottomFrontCenter 
ChannelNameBottomFrontLeft 
ChannelNameBottomFrontRight 

Definition at line 414 of file EffectInterface.h.

414 : int {
415 // Use to mark end of list
416 ChannelNameEOL = -1,
417 // The default channel assignment
419 // From this point, the channels follow the 22.2 surround sound format
444};
@ ChannelNameLowFrequency2
@ ChannelNameBackRight
@ ChannelNameSideLeft
@ ChannelNameTopSideLeft
@ ChannelNameFrontLeft
@ ChannelNameSideRight
@ ChannelNameFrontRightCenter
@ ChannelNameFrontLeftCenter
@ ChannelNameEOL
@ ChannelNameMono
@ ChannelNameFrontCenter
@ ChannelNameTopBackRight
@ ChannelNameTopFrontCenter
@ ChannelNameBottomFrontLeft
@ ChannelNameBackCenter
@ ChannelNameBackLeft
@ ChannelNameTopFrontRight
@ ChannelNameTopBackLeft
@ ChannelNameTopBackCenter
@ ChannelNameTopCenter
@ ChannelNameBottomFrontRight
@ ChannelNameLowFrequency1
@ ChannelNameTopFrontLeft
@ ChannelNameBottomFrontCenter
@ ChannelNameFrontRight
@ ChannelNameTopSideRight

◆ EffectType

enum EffectType : int
Enumerator
EffectTypeNone 
EffectTypeHidden 
EffectTypeGenerate 
EffectTypeProcess 
EffectTypeAnalyze 
EffectTypeTool 

Definition at line 62 of file EffectInterface.h.

63{
EffectType
@ EffectTypeHidden
@ EffectTypeAnalyze
@ EffectTypeGenerate
@ EffectTypeNone
@ EffectTypeTool
@ EffectTypeProcess

Function Documentation

◆ CurrentSettingsGroup()

COMPONENTS_API const RegistryPath & CurrentSettingsGroup ( )

Component of a configuration key path, for last-used destructive settings.

Definition at line 247 of file EffectInterface.cpp.

248{
249 static RegistryPath id{ "CurrentSettings" };
250 return id;
251}
wxString RegistryPath
Definition: Identifier.h:218
int id

References id.

Referenced by EffectUIHost::DoCancel(), EffectBase::DoEffect(), HasCurrentSettings(), anonymous_namespace{EffectManager.cpp}::InitializePreset(), Effect::LoadSettingsFromString(), EffectUIHost::OnApply(), EffectChangeSpeed::OnChoice_Vinyl(), EffectChangeSpeed::PopulateOrExchange(), EffectChangeSpeed::TransferDataFromWindow(), EffectChangeSpeed::Update_Vinyl(), and EffectEqualization::ValidateUI().

Here is the caller graph for this function:

◆ FactoryDefaultsGroup()

COMPONENTS_API const RegistryPath & FactoryDefaultsGroup ( )

Component of a configuration key path, for default state of MakeSettings()

Definition at line 253 of file EffectInterface.cpp.

254{
255 static RegistryPath id{ "FactoryDefaults" };
256 return id;
257}

References id.

Referenced by HasFactoryDefaults(), anonymous_namespace{EffectManager.cpp}::InitializePreset(), Effect::LoadFactoryDefaults(), AudioUnitWrapper::LoadFactoryPreset(), and Effect::LoadSettingsFromString().

Here is the caller graph for this function:

◆ UserPresetsGroup()

COMPONENTS_API RegistryPath UserPresetsGroup ( const RegistryPath name)

Compute part of a registry path, given a name which may be empty.

Definition at line 259 of file EffectInterface.cpp.

260{
261 RegistryPath group = wxT("UserPresets");
262 if (!name.empty())
263 group += wxCONFIG_PATH_SEPARATOR + name;
264 return group;
265}
wxT("CloseDown"))
const TranslatableString name
Definition: Distortion.cpp:82

References TranslatableString::empty(), name, and wxT().

Referenced by GetUserPresets(), Effect::LoadSettingsFromString(), EffectUIHost::LoadUserPresets(), EffectUIHost::OnDeletePreset(), EffectUIHost::OnSaveAs(), and EffectUIHost::OnUserPreset().

Here is the call graph for this function:
Here is the caller graph for this function: