Audacity 3.2.0
Limiter.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*!********************************************************************
3
4 Audacity: A Digital Audio Editor
5
6 Limiter.h
7
8 Matthieu Hodgkinson
9
10**********************************************************************/
11#pragma once
12
13#include "CompressorProcessor.h"
15
16class ShuttleGui;
17
18class EffectLimiter final :
19 public EffectWithSettings<LimiterSettings, StatelessPerTrackEffect>
20{
21public:
23
25
26 // ComponentInterface implementation
27
28 ComponentInterfaceSymbol GetSymbol() const override;
29 TranslatableString GetDescription() const override;
30 ManualPageID ManualPage() const override;
31
32 // EffectDefinitionInterface implementation
33
34 EffectType GetType() const override;
35 RealtimeSince RealtimeSupport() const override;
36 RegistryPaths GetFactoryPresets() const override;
38 LoadFactoryPreset(int id, EffectSettings& settings) const override;
39
40 // Effect implementation
41
42 std::unique_ptr<EffectEditor> MakeEditor(
44 const EffectOutputs* pOutputs) const override;
45
46 std::shared_ptr<EffectInstance> MakeInstance() const override;
47
48 std::unique_ptr<EffectOutputs> MakeOutputs() const override;
49
50 bool CheckWhetherSkipEffect(const EffectSettings& settings) const override;
51
52 const EffectParameterMethods& Parameters() const override;
53};
EffectType
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
std::vector< RegistryPath > RegistryPaths
Definition: Identifier.h:219
#define S(N)
Definition: ToChars.cpp:64
static Settings & settings()
Definition: TrackInfo.cpp:51
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
RealtimeSince
In which versions of Audacity was an effect realtime capable?
Performs effect computation.
EffectType GetType() const override
Type determines how it behaves.
Definition: Limiter.cpp:73
bool CheckWhetherSkipEffect(const EffectSettings &settings) const override
After Init(), tell whether Process() should be skipped.
Definition: Limiter.cpp:45
static const ComponentInterfaceSymbol Symbol
Definition: Limiter.h:22
std::unique_ptr< EffectEditor > MakeEditor(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override
Called only from PopulateUI, to add controls to effect panel.
Definition: Limiter.cpp:104
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
Definition: Limiter.cpp:67
std::shared_ptr< EffectInstance > MakeInstance() const override
Make an object maintaining short-term state of an Effect.
Definition: Limiter.cpp:40
RegistryPaths GetFactoryPresets() const override
Report names of factory presets.
Definition: Limiter.cpp:83
OptionalMessage LoadFactoryPreset(int id, EffectSettings &settings) const override
Definition: Limiter.cpp:95
RealtimeSince RealtimeSupport() const override
Since which version of Audacity has the effect supported realtime?
Definition: Limiter.cpp:78
const EffectParameterMethods & Parameters() const override
Definition: Limiter.cpp:28
TranslatableString GetDescription() const override
Definition: Limiter.cpp:62
ComponentInterfaceSymbol GetSymbol() const override
Definition: Limiter.cpp:57
std::unique_ptr< EffectOutputs > MakeOutputs() const override
Produce an object to hold values to send to effect output meters.
Definition: Limiter.cpp:112
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:640
Holds a msgid for the translation catalog; may also bind format arguments.
Externalized state of a plug-in.