martin@12: martin@12: #define kNumPrograms 5 //Number of Programs martin@12: #define MAX_CHANNELS 6 //Max Input/Output Count martin@12: #define VERSION 1000 //Plugin Version martin@12: #define kVstVersion 2400 //Plugin implemented in VST Version martin@12: martin@12: #ifndef __ClassicAmbiDec__ martin@12: #define __ClassicAmbiDec__ martin@12: martin@12: //VST SDK Header(s) martin@12: #include "audioeffectx.h" martin@12: martin@12: //Parameters Header martin@12: #include "ClassicAmbiDecParameters.h" martin@12: #include "Decoder.h" martin@12: martin@12: martin@12: //------------------------------------------------------------------------ martin@12: struct ClassicAmbiDecProgram martin@12: { martin@12: friend class ClassicAmbiDec; martin@12: martin@12: public: martin@12: ClassicAmbiDecProgram (); martin@12: ~ClassicAmbiDecProgram () {} martin@12: martin@12: private: martin@12: char name[kVstMaxProgNameLen]; martin@12: float mode; martin@12: float width; martin@12: float pattern; martin@12: float rearVerb; martin@12: float hiVerb; martin@12: float centrePattern; martin@12: float centreGain; martin@12: float subGain; martin@12: float surroundMode; martin@12: float surroundPattern; martin@12: float surroundWidth; martin@12: float surroundGain; martin@12: float fc; martin@12: }; martin@12: martin@12: martin@12: martin@12: martin@12: martin@12: //------------------------------------------------------------------------ martin@12: class ClassicAmbiDec : public AudioEffectX martin@12: { martin@12: friend class MyEditor; martin@12: public: martin@12: ClassicAmbiDec (audioMasterCallback audioMaster); martin@12: ~ClassicAmbiDec (); martin@12: martin@12: martin@12: //---from AudioEffect----------------------- martin@12: //Calls used from AudioEffectX martin@12: // martin@12: virtual void resume (); martin@12: virtual void suspend (); martin@12: virtual void close (); martin@12: virtual void open (); martin@12: virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); martin@12: virtual void processDoubleReplacing (double ** inputs, double ** outputs, VstInt32 sampleFrames); martin@12: martin@12: virtual void setProgram(VstInt32 program); martin@12: virtual void setProgramName (char* name); martin@12: virtual void getProgramName (char* name); martin@12: virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char *text); martin@12: //virtual VstInt32 getProgram(); martin@12: martin@12: virtual void setParameter (VstInt32 index, float value); martin@12: virtual float getParameter (VstInt32 index); martin@12: virtual void getParameterLabel (VstInt32 index, char* label); martin@12: virtual void getParameterDisplay (VstInt32 index, char* text); martin@12: virtual void getParameterName (VstInt32 index, char* text); martin@12: martin@12: virtual void setSampleRate (float sampleRate); martin@12: martin@12: virtual bool getEffectName (char* name); martin@12: virtual bool getVendorString (char* text); martin@12: virtual bool getProductString (char* text); martin@12: virtual VstInt32 getVendorVersion (); martin@12: virtual VstInt32 getVstVersion(); martin@12: martin@12: virtual VstPlugCategory getPlugCategory () { return kPlugCategSpacializer; } martin@12: virtual bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput); martin@12: virtual bool getSpeakerArrangement (VstSpeakerArrangement **pluginInput, VstSpeakerArrangement **pluginOutput); martin@12: martin@12: martin@12: // Variables martin@12: char label[20]; martin@12: int bits; martin@12: Decoder myDecoder; martin@12: VstSpeakerArrangement* myInputArrangement; martin@12: martin@12: martin@12: martin@12: private: martin@12: int numberOutputs; martin@12: int numberInputs; martin@12: martin@12: ClassicAmbiDecProgram* programs_20; martin@12: ClassicAmbiDecProgram* programs_21; martin@12: ClassicAmbiDecProgram* programs_40; martin@12: ClassicAmbiDecProgram* programs_50; martin@12: ClassicAmbiDecProgram* programs_51; martin@12: martin@12: //Parameter float values martin@12: float fMode; martin@12: float fWidth; martin@12: float fPattern; martin@12: float fRotate; martin@12: float fTilt; martin@12: float fTumble; martin@12: float fZoom; martin@12: float fZoomMethod; martin@12: float fRearVerb; martin@12: float fHiVerb; martin@12: float fCentrePattern; martin@12: float fCentreGain; martin@12: float fSubGain; martin@12: float fSurroundMode; martin@12: float fSurroundPattern; martin@12: float fSurroundWidth; martin@12: float fSurroundGain; martin@12: float fFc; martin@12: float fDecoderMode; martin@12: float fChannelOrder; martin@12: }; martin@12: martin@12: martin@12: #endif