#ifndef _EFFECT_BASE_H #define _EFFECT_BASE_H //#include #include #define EFFECT_NONE 0 #define EFFECT_CHORUS 1 #define EFFECT_DELAY 2 #define EFFECT_LPF 3 class AudioEffect { public: AudioEffect(float32_t samplerate); virtual ~AudioEffect(); void setBypass(bool bypass); bool getBypass(); virtual unsigned getId(); //virtual void setParameter(unsigned param, unsigned value); //virtual void getParameter(unsigned param); void process(const float32_t* inblockL, float32_t* outblockL, uint16_t len); void process(const float32_t* inblockL, const float32_t* inblockR, float32_t* outblockL, float32_t* outblockR, uint16_t len); protected: bool bypass = false; float32_t samplerate; virtual void doProcess(const float32_t* inblockL, const float32_t* inblockR, float32_t* outblockL, float32_t* outblockR, uint16_t len); }; class AudioEffectNone : public AudioEffect { public: AudioEffectNone(float32_t samplerate); virtual ~AudioEffectNone(); virtual unsigned getId(); protected: virtual void doProcess(const float32_t* inblockL, const float32_t* inblockR, float32_t* outblockL, float32_t* outblockR, uint16_t len); }; #endif // _EFFECT_BASE_H