13#ifndef __AUDACITY_EFFECT_CHANGESPEED__
14#define __AUDACITY_EFFECT_CHANGESPEED__
18#include <wx/weakref.h>
65 using Gap = std::pair<double, double>;
66 using Gaps = std::vector<Gap>;
68 const WaveTrack &track,
const double curT0,
const double curT1);
126 DECLARE_EVENT_TABLE()
129 L
"Percentage", 0.0, -99.0, 4900.0, 1 };
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
static Settings & settings()
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
An Effect that affects both pitch & speed.
void OnText_PercentChange(wxCommandEvent &evt)
NumericTextCtrl * mpToLengthCtrl
EffectType GetType() const override
Type determines how it behaves.
bool CheckWhetherSkipEffect(const EffectSettings &settings) const override
After Init(), tell whether Process() should be skipped.
virtual ~EffectChangeSpeed()
static const ComponentInterfaceSymbol Symbol
OptionalMessage LoadFactoryDefaults(EffectSettings &settings) const override
void OnChoice_Vinyl(wxCommandEvent &evt)
void OnText_Multiplier(wxCommandEvent &evt)
bool TransferDataToWindow(const EffectSettings &settings) override
static EffectChangeSpeed * FetchParameters(EffectChangeSpeed &e, EffectSettings &)
void Update_Slider_PercentChange()
OptionalMessage DoLoadFactoryDefaults(EffectSettings &settings)
std::unique_ptr< EffectEditor > PopulateOrExchange(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) override
Add controls to effect panel; always succeeds.
wxTextCtrl * mpTextCtrl_Multiplier
void Update_TimeCtrl_ToLength()
wxChoice * mpChoice_ToVinyl
wxTextCtrl * mpTextCtrl_PercentChange
const EffectParameterMethods & Parameters() const override
std::pair< double, double > Gap
Gaps FindGaps(const WaveTrack &track, const double curT0, const double curT1)
bool ProcessOne(const WaveChannel &track, WaveChannel &outputTrack, sampleCount start, sampleCount end)
wxWeakRef< wxWindow > mUIParent
void Update_Text_PercentChange()
bool Process(EffectInstance &instance, EffectSettings &settings) override
wxChoice * mpChoice_FromVinyl
void OnTimeCtrl_ToLength(wxCommandEvent &evt)
void Update_Text_Multiplier()
void OnSlider_PercentChange(wxCommandEvent &evt)
ComponentInterfaceSymbol GetSymbol() const override
ManualPageID ManualPage() const override
Name of a page in the Audacity alpha manual, default is empty.
bool TransferDataFromWindow(EffectSettings &settings) override
void OnTimeCtrlUpdate(wxCommandEvent &evt)
static constexpr EffectParameter Percentage
bool ProcessLabelTrack(LabelTrack *t)
wxSlider * mpSlider_PercentChange
double CalcPreviewInputLength(const EffectSettings &settings, double previewLength) const override
TranslatableString GetDescription() const override
NumericTextCtrl * mpFromLengthCtrl
Performs effect computation.
Hold values to send to effect output meters.
Interface for manipulations of an Effect's settings.
A LabelTrack is a Track that holds labels (LabelStruct).
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.
A Track that contains audio waveform data.
Positions or offsets within audio files need a wide type.
const char * end(const char *str) noexcept
Externalized state of a plug-in.