mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-10 17:11:17 +02:00
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed). The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
Paulstretch.h
|
|
|
|
Nasca Octavian Paul (Paul Nasca)
|
|
|
|
**********************************************************************/
|
|
|
|
#ifndef __AUDACITY_EFFECT_PAULSTRETCH__
|
|
#define __AUDACITY_EFFECT_PAULSTRETCH__
|
|
|
|
#include <wx/string.h>
|
|
|
|
#include "Effect.h"
|
|
|
|
class ShuttleGui;
|
|
|
|
#define PAULSTRETCH_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("Paulstretch") }
|
|
|
|
class EffectPaulstretch final : public Effect
|
|
{
|
|
public:
|
|
EffectPaulstretch();
|
|
virtual ~EffectPaulstretch();
|
|
|
|
// ComponentInterface implementation
|
|
|
|
ComponentInterfaceSymbol GetSymbol() override;
|
|
wxString GetDescription() override;
|
|
wxString ManualPage() override;
|
|
|
|
// EffectDefinitionInterface implementation
|
|
|
|
EffectType GetType() override;
|
|
|
|
// EffectClientInterface implementation
|
|
|
|
bool DefineParams( ShuttleParams & S ) override;
|
|
bool GetAutomationParameters(CommandParameters & parms) override;
|
|
bool SetAutomationParameters(CommandParameters & parms) override;
|
|
|
|
// Effect implementation
|
|
|
|
double CalcPreviewInputLength(double previewLength) override;
|
|
bool Process() override;
|
|
void PopulateOrExchange(ShuttleGui & S) override;
|
|
bool TransferDataToWindow() override;
|
|
bool TransferDataFromWindow() override;
|
|
|
|
private:
|
|
// EffectPaulstretch implementation
|
|
|
|
void OnText(wxCommandEvent & evt);
|
|
size_t GetBufferSize(double rate);
|
|
|
|
bool ProcessOne(WaveTrack *track, double t0, double t1, int count);
|
|
|
|
private:
|
|
float mAmount;
|
|
float mTime_resolution; //seconds
|
|
double m_t1;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif
|
|
|