30#include <wx/checkbox.h>
33#include <wx/stattext.h>
34#include <wx/textctrl.h>
35#include <wx/valtext.h>
40#include "../widgets/valnum.h"
71 return batchParameters;
96 Parameters().Reset(*
this);
100 SetLinearEffectFlag(
true);
117 return XO(
"Increases or decreases the volume of the audio you have selected");
143 const float *
const *inBlock,
float *
const *outBlock,
size_t blockLen)
145 for (
decltype(blockLen) i = 0; i < blockLen; i++)
147 outBlock[0][i] = inBlock[0][i] *
mRatio;
186 for (
auto t :
inputTracks()->Selected< const WaveTrack >())
188 auto pair = t->GetMinMax(
mT0,
mT1);
189 const float min = pair.first, max = pair.second;
190 float newpeak = (fabs(
min) > fabs(max) ? fabs(
min) : fabs(max));
214 enum{ precision = 3 };
240 S.StartVerticalLay(0);
243 S.StartMultiColumn(2, wxCENTER);
246 .Validator<FloatingPointValidator<double>>(
248 .AddTextBox(
XXO(
"&Amplification (dB):"), L
"", 12);
253 S.StartHorizontalLay(wxEXPAND);
256 .Style(wxSL_HORIZONTAL)
257 .Name(
XO(
"Amplification dB"))
260 S.EndHorizontalLay();
263 S.StartMultiColumn(2, wxCENTER);
266 .Validator<FloatingPointValidator<double>>(
270 &
mNewPeak, NumValidatorStyle::ONE_TRAILING_ZERO,
274 .AddTextBox(
XXO(
"&New Peak Amplitude (dB):"), L
"", 12);
279 S.StartHorizontalLay(wxCENTER);
283 .AddCheckBox(
XXO(
"Allo&w clipping"),
false);
285 S.EndHorizontalLay();
296 double dB = std::clamp<double>(dBInit,
Amp.
min,
Amp.
max);
306 mAmpT->GetValidator()->TransferToWindow();
310 mNewPeakT->GetValidator()->TransferToWindow();
350 if (!
mAmpT->GetValidator()->TransferFromWindow())
361 mNewPeakT->GetValidator()->TransferToWindow();
368 if (!
mNewPeakT->GetValidator()->TransferFromWindow())
384 mAmpT->GetValidator()->TransferToWindow();
393 double dB = evt.GetInt() /
Amp.
scale;
396 double dB2 = (evt.GetInt() - 1) /
Amp.
scale;
405 mAmpT->GetValidator()->TransferToWindow();
408 mNewPeakT->GetValidator()->TransferToWindow();
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
XXO("&Cut/Copy/Paste Toolbar")
static Settings & settings()
Generates EffectParameterMethods overrides from variadic template arguments.
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
An Effect that makes a sound louder or softer.
OptionalMessage LoadFactoryDefaults(EffectSettings &settings) const override
unsigned GetAudioOutCount() const override
How many output buffers to allocate at once.
static const ComponentInterfaceSymbol Symbol
wxWeakRef< wxWindow > mUIParent
static constexpr EffectParameter Ratio
static constexpr EffectParameter Clipping
static constexpr EffectParameter Amp
void OnClipCheckBox(wxCommandEvent &evt)
void OnAmpSlider(wxCommandEvent &evt)
EffectType GetType() const override
Type determines how it behaves.
unsigned GetAudioInCount() const override
How many input buffers to allocate at once.
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
std::unique_ptr< EffectEditor > PopulateOrExchange(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override
Add controls to effect panel; always succeeds.
bool TransferDataToWindow(const EffectSettings &settings) override
bool TransferDataFromWindow(EffectSettings &settings) override
const EffectParameterMethods & Parameters() const override
void OnAmpText(wxCommandEvent &evt)
OptionalMessage DoLoadFactoryDefaults(EffectSettings &settings)
TranslatableString GetDescription() const override
std::any BeginPreview(const EffectSettings &settings) override
Called when Preview() starts, to allow temporary effect state changes.
void OnPeakText(wxCommandEvent &evt)
ComponentInterfaceSymbol GetSymbol() const override
size_t ProcessBlock(EffectSettings &settings, const float *const *inBlock, float *const *outBlock, size_t blockLen) override
Called for destructive effect computation.
const TrackList * inputTracks() const
static bool EnableApply(wxWindow *parent, bool enable=true)
Enable or disable the Apply button of the dialog that contains parent.
bool IsBatchProcessing() const override
Performs effect computation.
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.
Holds a msgid for the translation catalog; may also bind format arguments.
BuiltinEffectsModule::Registration< EffectAmplify > reg
const Type scale
Scaling factor, for slider control.
const Type min
Minimum value.
const Type max
Maximum value.
Externalized state of a plug-in.