1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-08 22:23:59 +01:00
Files
audacity/src/effects/Paulstretch.h
Leland Lucius 8fbfa460c4 Migrating the remaining effects
This brings the builtin, LV2, and VAMP effects inline with the
Audio Units, LADSPA, and VST effects.  All effects now share
a common UI.

This gives all effects (though not implemented for all):

User and factory preset capability
Preset import/export capability
Shared or private configuration options

Builtin effects can now be migrated to RTP, depending on algorithm.
LV2 effects now support graphical interfaces if the plugin supplies one.
Nyquist prompt enhanced to provide some features of the Nyquist Workbench.

It may not look like it, but this was a LOT of work, so trust me, there
WILL be problems and everything effect related should be suspect.  Keep
a sharp eye (or two) open.
2015-04-16 23:36:28 -05:00

66 lines
1.4 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 "../ShuttleGui.h"
#include "../WaveTrack.h"
#include "Effect.h"
#define PAULSTRETCH_PLUGIN_SYMBOL wxTRANSLATE("Paulstretch")
class EffectPaulstretch : public Effect
{
public:
EffectPaulstretch();
virtual ~EffectPaulstretch();
// IdentInterface implementation
virtual wxString GetSymbol();
virtual wxString GetDescription();
// EffectIdentInterface implementation
virtual EffectType GetType();
// EffectClientInterface implementation
virtual bool GetAutomationParameters(EffectAutomationParameters & parms);
virtual bool SetAutomationParameters(EffectAutomationParameters & parms);
// Effect implementation
virtual bool Process();
virtual void PopulateOrExchange(ShuttleGui & S);
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
private:
// EffectPaulstretch implementation
void OnText(wxCommandEvent & evt);
bool ProcessOne(WaveTrack *track, double t0, double t1, int count);
private:
float amount;
float time_resolution; //seconds
double m_t1;
DECLARE_EVENT_TABLE();
};
#endif