/********************************************************************** Audacity: A Digital Audio Editor Echo.h Dominic Mazzoni Vaughan Johnson (dialog) **********************************************************************/ #ifndef __AUDACITY_EFFECT_ECHO__ #define __AUDACITY_EFFECT_ECHO__ #include #include #include #include "../ShuttleGui.h" #include "Effect.h" #define ECHO_PLUGIN_SYMBOL XO("Echo") class EffectEcho : public Effect { public: EffectEcho(); virtual ~EffectEcho(); // IdentInterface implementation virtual wxString GetSymbol(); virtual wxString GetDescription(); // EffectIdentInterface implementation virtual EffectType GetType(); // EffectClientInterface implementation virtual int GetAudioInCount(); virtual int GetAudioOutCount(); virtual bool ProcessInitialize(sampleCount totalLen, ChannelNames chanMap = NULL); virtual bool ProcessFinalize(); virtual sampleCount ProcessBlock(float **inBlock, float **outBlock, sampleCount blockLen); virtual bool GetAutomationParameters(EffectAutomationParameters & parms); virtual bool SetAutomationParameters(EffectAutomationParameters & parms); // Effect implementation virtual void PopulateOrExchange(ShuttleGui & S); virtual bool TransferDataToWindow(); virtual bool TransferDataFromWindow(); private: // EffectEcho implementation private: double delay; double decay; float *history; sampleCount histPos; sampleCount histLen; }; #endif // __AUDACITY_EFFECT_ECHO__