12#ifndef __AUDACITY_EFFECTMANAGER__
13#define __AUDACITY_EFFECTMANAGER__
18#include <unordered_map>
40using EffectMap = std::unordered_map<wxString, EffectAndDefaultSettings>;
42using EffectOwnerMap = std::unordered_map< wxString, std::shared_ptr<EffectPlugin> >;
59 kDontRepeatLast = 0x04,
63 kRepeatNyquistPrompt = 0x10,
87 const PluginID & RegisterEffect(std::unique_ptr<EffectPlugin> uEffect);
89 void UnregisterEffect(
const PluginID & ID);
99 bool shouldPrompt =
true );
113 bool SupportsAutomation(
const PluginID & ID);
114 wxString GetEffectParameters(
const PluginID & ID);
115 bool SetEffectParameters(
const PluginID & ID,
const wxString &
params);
118 bool HasPresets(
const PluginID & ID);
119 wxString GetPreset(
const PluginID & ID,
const wxString &
params, wxWindow * parent);
120 wxString GetDefaultPreset(
const PluginID & ID);
123 void BatchProcessingOn(
const PluginID & ID);
124 void BatchProcessingOff(
const PluginID & ID);
132 std::unique_ptr< EffectManager, UnsetBatchProcessing >;
146 void SetSkipStateFlag(
bool flag);
147 bool GetSkipStateFlag();
162 std::pair<EffectPlugin *, EffectSettings *>
163 GetEffectAndDefaultSettings(
const PluginID & ID);
EffectDistortionSettings params
std::unordered_map< wxString, std::shared_ptr< EffectPlugin > > EffectOwnerMap
std::unordered_map< wxString, EffectAndDefaultSettings > EffectMap
std::unordered_map< wxString, AudacityCommand * > AudacityCommandMap
std::function< DialogFactoryResults(wxWindow &parent, EffectBase &, EffectUIServices &, EffectSettingsAccess &) > EffectDialogFactory
Type of function that creates a dialog for an effect.
Base class for command in Audacity.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
Interface for objects that can receive (string) messages from a command.
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
EffectManager is the class that handles effects and effect categories.
void BatchProcessingOff(const PluginID &ID)
EffectOwnerMap mHostEffects
BatchProcessingScope SetBatchProcessing(const PluginID &ID)
Begin a scope that ends when the returned object is destroyed.
AudacityCommandMap mCommands
std::unique_ptr< EffectManager, UnsetBatchProcessing > BatchProcessingScope
Factory of instances of an effect.
Defines a selected portion of a project.
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Holds a msgid for the translation catalog; may also bind format arguments.
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
AUDACITY_DLL_API bool DoAudacityCommand(const PluginID &ID, const CommandContext &context, unsigned flags)
static RegisteredToolbarFactory factory
A custom deleter for std::unique_ptr.
Externalized state of a plug-in.