/*----------------------------------------------------------------------------- � 1999, Steinberg Soft und Hardware GmbH, All Rights Reserved -----------------------------------------------------------------------------*/ #ifndef __PLUGIN_H #define __PLUGIN_H #include "public.sdk/source/vst2.x/audioeffectx.h" #include #include "param.hpp" class Plugin : public AudioEffectX { static const uint DELAY_MAX = 48000; static const uint NUM_PARMS = 8; public: Plugin(audioMasterCallback audioMaster); ~Plugin(); // Processing virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); // Program virtual void setProgramName (char* name); virtual void getProgramName (char* name); // Parameters virtual void setParameter (VstInt32 index, float value); virtual float getParameter (VstInt32 index); virtual void getParameterLabel (VstInt32 index, char* label); virtual void getParameterDisplay (VstInt32 index, char* text); virtual void getParameterName (VstInt32 index, char* text); virtual void setSampleRate(float sampleRate); virtual void setBlockSize(VstInt32 blockSize); protected: char programName[32]; char dbgStr[80]; private: Reverb m_reverb_1; Reverb m_reverb_2; uint m_feedback_delay[2]; Param *m_params[NUM_PARMS]; }; #endif // __PLUGIN_H