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  EffectInstanceWithBlockSize
 Inherit to add a state variable to an EffectInstance subclass. More...
 
class  EffectInstanceFactory
 

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 446 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 302 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 415 of file EffectInterface.h.

415 : int {
416 // Use to mark end of list
417 ChannelNameEOL = -1,
418 // The default channel assignment
420 // From this point, the channels follow the 22.2 surround sound format
445};
@ 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 216 of file EffectInterface.cpp.

217{
218 static RegistryPath id{ "CurrentSettings" };
219 return id;
220}
wxString RegistryPath
Definition: Identifier.h:218
int id

References id.

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

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 222 of file EffectInterface.cpp.

223{
224 static RegistryPath id{ "FactoryDefaults" };
225 return id;
226}

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 228 of file EffectInterface.cpp.

229{
230 RegistryPath group = wxT("UserPresets");
231 if (!name.empty())
232 group += wxCONFIG_PATH_SEPARATOR + name;
233 return group;
234}
wxT("CloseDown"))
const TranslatableString name
Definition: Distortion.cpp:76

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: