annotate Source/SoundField.h @ 2:93bfd9ede8e2

New and Working!
author martinm_home <martin.morrell@eecs.qmul.ac.uk>
date Thu, 06 Sep 2012 11:33:45 +0100
parents 2fa9c10568d1
children 503cbcdd0b2a
rev   line source
martin@0 1 //-------------------------------------------------------------------------------------------------------
martin@0 2 // VST Plug-Ins SDK
martin@0 3 // Version 2.4 $Date: 2006/11/13 09:08:27 $
martin@0 4 //
martin@0 5 // Category : VST 2.x SDK Samples
martin@0 6 // Filename : adelay.h
martin@0 7 // Created by : Steinberg Media Technologies
martin@0 8 // Description : Simple Delay plugin (Mono->Stereo)
martin@0 9 //
martin@0 10 // © 2006, Steinberg Media Technologies, All Rights Reserved
martin@0 11 //-------------------------------------------------------------------------------------------------------
martin@0 12
martin@0 13 #define kNumPrograms 1 //Number of Programs
martin@0 14 //#define kNumParams 10 //Number of Parameters
martin@0 15 #define MAX_CHANNELS 2 //Max Input/Output Count
martin@0 16 #define VERSION 1001 //Plugin Version
martin@0 17
martin@0 18 #ifndef __SoundField__
martin@0 19 #define __SoundField__
martin@0 20
martin@0 21
martin@0 22 //VST SDK Header(s)
martin@0 23 #include "audioeffectx.h"
martin@0 24
martin@0 25 //Parameters Header
martin@0 26 #include "SoundFieldParameters.h"
martin@0 27
martin@0 28 #include "Decoder.h"
martin@0 29
martin@0 30
martin@0 31
martin@0 32
martin@0 33 //------------------------------------------------------------------------
martin@0 34 struct SoundFieldProgram
martin@0 35 {
martin@0 36 //float param[kNumPrograms]; //Array of
martin@0 37 char name[20];
martin@0 38 public:
martin@0 39 SoundFieldProgram ();
martin@0 40 ~SoundFieldProgram () {}
martin@0 41
martin@0 42 private:
martin@0 43
martin@0 44 };
martin@0 45
martin@0 46
martin@0 47 //------------------------------------------------------------------------
martin@0 48 class SoundField : public AudioEffectX
martin@0 49 {
martin@0 50 friend class MyEditor;
martin@0 51 public:
martin@0 52 SoundField (audioMasterCallback audioMaster);
martin@0 53 ~SoundField ();
martin@0 54
martin@0 55
martin@0 56 //---from AudioEffect-----------------------
martin@0 57 //Calls used from AudioEffectX
martin@0 58 //
martin@0 59 virtual void resume ();
martin@0 60 virtual void suspend ();
martin@0 61 virtual void close ();
martin@0 62 virtual void open ();
martin@0 63 virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
martin@0 64
martin@0 65 virtual void setProgram (VstInt32 program);
martin@0 66 virtual void setProgramName (char* name);
martin@0 67 virtual void getProgramName (char* name);
martin@0 68 virtual bool getProgramNameIndexed (VstInt32 category, VstInt32 index, char* text);
martin@0 69
martin@0 70 virtual void setParameter (VstInt32 index, float value);
martin@0 71 virtual float getParameter (VstInt32 index);
martin@0 72 virtual void getParameterLabel (VstInt32 index, char* label);
martin@0 73 virtual void getParameterDisplay (VstInt32 index, char* text);
martin@0 74 virtual void getParameterName (VstInt32 index, char* text);
martin@0 75
martin@0 76 virtual bool getEffectName (char* name);
martin@0 77 virtual bool getVendorString (char* text);
martin@0 78 virtual bool getProductString (char* text);
martin@0 79 virtual VstInt32 getVendorVersion ();
martin@0 80
martin@0 81
martin@0 82 //virtual VstPlugCategory getPlugCategory () { return kPlugCategEffect; }
martin@0 83
martin@0 84
martin@0 85 //virtual bool getSpeakerArrangement (VstSpeakerArrangement** pluginInput, VstSpeakerArrangement** pluginOutput);
martin@0 86 virtual bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput);
martin@0 87
martin@0 88
martin@0 89 // Variables
martin@0 90 char label[20];
martin@0 91 int bits;
martin@0 92 Decoder myDecoder;
martin@0 93
martin@0 94
martin@0 95
martin@0 96 private:
martin@0 97 //Variables/Functions for DSP i.e. private from the Host
martin@0 98 SoundFieldProgram* programs;
martin@0 99
martin@0 100 VstSpeakerArrangement* plugInput;
martin@0 101 VstSpeakerArrangement* plugOutput;
martin@0 102
martin@0 103 //Private Variables
martin@0 104 float* sBuffers[MAX_CHANNELS];
martin@0 105 float* pBuffers[2];
martin@0 106
martin@0 107 char programName[kVstMaxProgNameLen + 1];
martin@0 108
martin@0 109 //Parameter float values
martin@0 110 float fMode;
martin@0 111 float fWidth;
martin@0 112 float fPattern;
martin@0 113 float fRotate;
martin@0 114 float fTilt;
martin@0 115 float fTumble;
martin@0 116 float fZoom;
martin@0 117 float fZoomMethod;
martin@0 118 float fRearVerb;
martin@0 119 float fHiVerb;
martin@0 120 };
martin@0 121
martin@0 122
martin@0 123 #endif