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
|