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;
185 for (
auto t :
inputTracks()->Selected<const WaveTrack>()) {
186 for (
const auto pChannel : t->Channels()) {
187 auto pair = pChannel->GetMinMax(
mT0,
mT1);
188 const float min = pair.first, max = pair.second;
189 const float newpeak = std::max(fabs(
min), fabs(max));
209 enum{ precision = 3 };
235 S.StartVerticalLay(0);
238 S.StartMultiColumn(2, wxCENTER);
241 .Validator<FloatingPointValidator<double>>(
243 .AddTextBox(
XXO(
"&Amplification (dB):"), L
"", 12);
248 S.StartHorizontalLay(wxEXPAND);
251 .Style(wxSL_HORIZONTAL)
252 .Name(
XO(
"Amplification dB"))
255 S.EndHorizontalLay();
258 S.StartMultiColumn(2, wxCENTER);
261 .Validator<FloatingPointValidator<double>>(
265 &
mNewPeak, NumValidatorStyle::ONE_TRAILING_ZERO,
269 .AddTextBox(
XXO(
"&New Peak Amplitude (dB):"), L
"", 12);
274 S.StartHorizontalLay(wxCENTER);
278 .AddCheckBox(
XXO(
"Allo&w clipping"),
false);
280 S.EndHorizontalLay();
291 double dB = std::clamp<double>(dBInit,
Amp.
min,
Amp.
max);
301 mAmpT->GetValidator()->TransferToWindow();
305 mNewPeakT->GetValidator()->TransferToWindow();
345 if (!
mAmpT->GetValidator()->TransferFromWindow())
356 mNewPeakT->GetValidator()->TransferToWindow();
363 if (!
mNewPeakT->GetValidator()->TransferFromWindow())
379 mAmpT->GetValidator()->TransferToWindow();
388 double dB = evt.GetInt() /
Amp.
scale;
391 double dB2 = (evt.GetInt() - 1) /
Amp.
scale;
400 mAmpT->GetValidator()->TransferToWindow();
403 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.