martin@0: //------------------------------------------------------------------------------------------------------- martin@0: // VST Plug-Ins SDK martin@0: // Version 2.4 $Date: 2006/11/13 09:08:27 $ martin@0: // martin@0: // Category : VST 2.x SDK Samples martin@0: // Filename : adelay.h martin@0: // Created by : Steinberg Media Technologies martin@0: // Description : Simple Delay plugin (Mono->Stereo) martin@0: // martin@0: // © 2006, Steinberg Media Technologies, All Rights Reserved martin@0: //------------------------------------------------------------------------------------------------------- martin@0: martin@0: #define kNumPrograms 1 //Number of Programs martin@0: //#define kNumParams 10 //Number of Parameters martin@0: #define MAX_CHANNELS 2 //Max Input/Output Count martin@0: #define VERSION 1001 //Plugin Version martin@0: martin@0: #ifndef __SoundField__ martin@0: #define __SoundField__ martin@0: martin@0: martin@0: //VST SDK Header(s) martin@0: #include "audioeffectx.h" martin@0: martin@0: //Parameters Header martin@0: #include "SoundFieldParameters.h" martin@0: martin@0: #include "Decoder.h" martin@0: martin@0: martin@0: martin@0: martin@0: //------------------------------------------------------------------------ martin@0: struct SoundFieldProgram martin@0: { martin@0: //float param[kNumPrograms]; //Array of martin@0: char name[20]; martin@0: public: martin@0: SoundFieldProgram (); martin@0: ~SoundFieldProgram () {} martin@0: martin@0: private: martin@0: martin@0: }; martin@0: martin@0: martin@0: //------------------------------------------------------------------------ martin@0: class SoundField : public AudioEffectX martin@0: { martin@0: friend class MyEditor; martin@0: public: martin@0: SoundField (audioMasterCallback audioMaster); martin@0: ~SoundField (); martin@0: martin@0: martin@0: //---from AudioEffect----------------------- martin@0: //Calls used from AudioEffectX martin@0: // martin@0: virtual void resume (); martin@0: virtual void suspend (); martin@0: virtual void close (); martin@0: virtual void open (); martin@0: virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); martin@0: martin@0: virtual void setProgram (VstInt32 program); martin@0: virtual void setProgramName (char* name); martin@0: virtual void getProgramName (char* name); martin@0: virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char* text); martin@0: martin@0: virtual void setParameter (VstInt32 index, float value); martin@0: virtual float getParameter (VstInt32 index); martin@0: virtual void getParameterLabel (VstInt32 index, char* label); martin@0: virtual void getParameterDisplay (VstInt32 index, char* text); martin@0: virtual void getParameterName (VstInt32 index, char* text); martin@0: martin@0: virtual bool getEffectName (char* name); martin@0: virtual bool getVendorString (char* text); martin@0: virtual bool getProductString (char* text); martin@0: virtual VstInt32 getVendorVersion (); martin@0: martin@0: martin@0: //virtual VstPlugCategory getPlugCategory () { return kPlugCategEffect; } martin@0: martin@0: martin@0: //virtual bool getSpeakerArrangement (VstSpeakerArrangement** pluginInput, VstSpeakerArrangement** pluginOutput); martin@0: virtual bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput); martin@0: martin@0: martin@0: // Variables martin@0: char label[20]; martin@0: int bits; martin@0: Decoder myDecoder; martin@0: martin@0: martin@0: martin@0: private: martin@0: //Variables/Functions for DSP i.e. private from the Host martin@0: SoundFieldProgram* programs; martin@0: martin@0: VstSpeakerArrangement* plugInput; martin@0: VstSpeakerArrangement* plugOutput; martin@0: martin@0: //Private Variables martin@0: float* sBuffers[MAX_CHANNELS]; martin@0: float* pBuffers[2]; martin@0: martin@0: char programName[kVstMaxProgNameLen + 1]; martin@0: martin@0: //Parameter float values martin@0: float fMode; martin@0: float fWidth; martin@0: float fPattern; martin@0: float fRotate; martin@0: float fTilt; martin@0: float fTumble; martin@0: float fZoom; martin@0: float fZoomMethod; martin@0: float fRearVerb; martin@0: float fHiVerb; martin@0: }; martin@0: martin@0: martin@0: #endif