martin@0
|
1 //-----------------------------------------------------------------------------
|
martin@0
|
2 // VSTGUI: Graphical User Interface Framework for VST plugins :
|
martin@0
|
3 //
|
martin@0
|
4 // Version 3.5
|
martin@0
|
5 //
|
martin@0
|
6 //-----------------------------------------------------------------------------
|
martin@0
|
7 // VSTGUI LICENSE
|
martin@0
|
8 // © 2008, Steinberg Media Technologies, All Rights Reserved
|
martin@0
|
9 //-----------------------------------------------------------------------------
|
martin@0
|
10 // Redistribution and use in source and binary forms, with or without modification,
|
martin@0
|
11 // are permitted provided that the following conditions are met:
|
martin@0
|
12 //
|
martin@0
|
13 // * Redistributions of source code must retain the above copyright notice,
|
martin@0
|
14 // this list of conditions and the following disclaimer.
|
martin@0
|
15 // * Redistributions in binary form must reproduce the above copyright notice,
|
martin@0
|
16 // this list of conditions and the following disclaimer in the documentation
|
martin@0
|
17 // and/or other materials provided with the distribution.
|
martin@0
|
18 // * Neither the name of the Steinberg Media Technologies nor the names of its
|
martin@0
|
19 // contributors may be used to endorse or promote products derived from this
|
martin@0
|
20 // software without specific prior written permission.
|
martin@0
|
21 //
|
martin@0
|
22 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
martin@0
|
23 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
martin@0
|
24 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
martin@0
|
25 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
martin@0
|
26 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
martin@0
|
27 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
martin@0
|
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
martin@0
|
29 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
martin@0
|
30 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
martin@0
|
31 // OF THE POSSIBILITY OF SUCH DAMAGE.
|
martin@0
|
32 //-----------------------------------------------------------------------------
|
martin@0
|
33
|
martin@0
|
34 #ifndef __MyEditor__
|
martin@0
|
35 #define __MyEditor__
|
martin@0
|
36
|
martin@10
|
37 #define IMAGE 281
|
martin@9
|
38
|
martin@9
|
39 #define cSep 12
|
martin@9
|
40 #define tDepth 15
|
martin@9
|
41 #define tDepthLarge 20
|
martin@9
|
42 #define dOffset 3
|
martin@9
|
43 #define kOffset (1*dOffset + tDepth + tDepthLarge)
|
martin@9
|
44 #define lOffset kOffset-(1*dOffset + tDepth)
|
martin@9
|
45 #define tOffset kOffset-(1*dOffset + tDepth + tDepthLarge)
|
martin@9
|
46 #define pOffset kOffset+(64+dOffset)
|
martin@9
|
47
|
martin@9
|
48
|
martin@0
|
49 #include "aeffguieditor.h"
|
martin@0
|
50 #include <vstgui.h>
|
martin@12
|
51 #include "ClassicAmbiDec.h"
|
martin@12
|
52 #include "ClassicAmbiDecParameters.h"
|
martin@7
|
53 #include "MyPlot.h"
|
martin@6
|
54
|
martin@6
|
55
|
martin@6
|
56
|
martin@0
|
57
|
martin@0
|
58
|
martin@9
|
59
|
martin@0
|
60 class MyEditor : public AEffGUIEditor, public CControlListener
|
martin@0
|
61 {
|
martin@0
|
62 public:
|
martin@0
|
63 MyEditor (void*);
|
martin@0
|
64
|
martin@0
|
65 // from AEffGUIEditor
|
martin@9
|
66 bool open (void* ptr);
|
martin@9
|
67 void close ();
|
martin@9
|
68 void setParameter (VstInt32 index, float value);
|
martin@9
|
69 void setParameterAutomated();
|
martin@9
|
70 void getParameterDisplay (VstInt32 index, char *text);
|
martin@0
|
71
|
martin@0
|
72 // from CControlListener
|
martin@0
|
73 void valueChanged (CControl* pControl);
|
martin@0
|
74
|
martin@0
|
75
|
martin@0
|
76
|
martin@0
|
77 CControl* controls[kNumParameters];
|
martin@0
|
78 char displayText;
|
martin@0
|
79
|
martin@9
|
80
|
martin@0
|
81
|
martin@0
|
82
|
martin@0
|
83 // own function
|
martin@9
|
84 void transformsDisplay(CFrame* newFrame);
|
martin@9
|
85 void zoomDisplay(CFrame* newFrame);
|
martin@9
|
86 void plotDisplay(CFrame* newFrame);
|
martin@9
|
87 void settingsDisplay(CFrame* newFrame);
|
martin@9
|
88 void nameDisplay(CFrame* newFrame);
|
martin@9
|
89 void modeChange();
|
martin@9
|
90 void stereoDisplay();
|
martin@9
|
91 void twooneDisplay();
|
martin@9
|
92 void fourDisplay();
|
martin@9
|
93 void fiveDisplay();
|
martin@9
|
94 void fiveoneDisplay();
|
martin@9
|
95 void hellerDisplay();
|
martin@9
|
96 void clearStereo();
|
martin@9
|
97 void clearTwoOne();
|
martin@9
|
98 void clearFour();
|
martin@9
|
99 void clearFive();
|
martin@9
|
100 void clearFiveOne();
|
martin@9
|
101 void clearHeller();
|
martin@9
|
102 void suspendDisplay();
|
martin@9
|
103 void resumeDisplay();
|
martin@0
|
104
|
martin@0
|
105
|
martin@6
|
106 private:
|
martin@6
|
107
|
martin@6
|
108
|
martin@6
|
109 protected:
|
martin@9
|
110 //Parameters
|
martin@0
|
111 CAnimKnob *knobRotate;
|
martin@0
|
112 CAnimKnob *knobTilt;
|
martin@0
|
113 CAnimKnob *knobTumble;
|
martin@0
|
114 CHorizontalSwitch *knobZoomMethod;
|
martin@0
|
115 CAnimKnob *knobZoom;
|
martin@0
|
116 CAnimKnob *knobWidth;
|
martin@0
|
117 CAnimKnob *knobPattern;
|
martin@0
|
118 CHorizontalSwitch *knobMode;
|
martin@0
|
119 CAnimKnob *knobRearVerb;
|
martin@0
|
120 CAnimKnob *knobHiVerb;
|
martin@9
|
121 CAnimKnob *knobCentrePattern;
|
martin@9
|
122 CAnimKnob *knobCentreGain;
|
martin@9
|
123 CAnimKnob *knobSubGain;
|
martin@9
|
124 CAnimKnob *knobFc;
|
martin@9
|
125 CHorizontalSwitch *knobSurroundMode;
|
martin@9
|
126 CAnimKnob *knobSurroundPattern;
|
martin@9
|
127 CAnimKnob *knobSurroundWidth;
|
martin@9
|
128 CAnimKnob *knobSurroundGain;
|
martin@8
|
129 CHorizontalSwitch *knobDecoder;
|
martin@9
|
130 CHorizontalSwitch *knobChannel;
|
martin@9
|
131
|
martin@9
|
132 //Main Controls Section Background
|
martin@9
|
133 CView *control_view;
|
martin@9
|
134 CView *control_view2;
|
martin@9
|
135
|
martin@9
|
136 //Controls Text Labels
|
martin@9
|
137 CTextLabel *labelMode;
|
martin@9
|
138 CTextLabel *labelWidth;
|
martin@9
|
139 CTextLabel *labelPattern;
|
martin@9
|
140 CTextLabel *labelRearVerb;
|
martin@9
|
141 CTextLabel *labelHiVerb;
|
martin@9
|
142 CTextLabel *labelSurMode;
|
martin@9
|
143 CTextLabel *labelSurWidth;
|
martin@9
|
144 CTextLabel *labelSurPattern;
|
martin@9
|
145 CTextLabel *labelSurGain;
|
martin@9
|
146 CTextLabel *labelCtrPattern;
|
martin@9
|
147 CTextLabel *labelCtreGain;
|
martin@9
|
148 CTextLabel *labelSubGain;
|
martin@9
|
149 CTextLabel *labelFc;
|
martin@9
|
150
|
martin@9
|
151 //Controls Parameters
|
martin@9
|
152 CTextLabel *paramMode;
|
martin@9
|
153 CTextLabel *paramWidth;
|
martin@9
|
154 CTextLabel *paramPattern;
|
martin@9
|
155 CTextLabel *paramRotate;
|
martin@9
|
156 CTextLabel *paramTilt;
|
martin@9
|
157 CTextLabel *paramTumble;
|
martin@9
|
158 CTextLabel *paramZoom;
|
martin@9
|
159 CTextLabel *paramZoomMethod;
|
martin@9
|
160 CTextLabel *paramRearVerb;
|
martin@9
|
161 CTextLabel *paramHiVerb;
|
martin@9
|
162 CTextLabel *paramSurMode;
|
martin@9
|
163 CTextLabel *paramSurWidth;
|
martin@9
|
164 CTextLabel *paramSurPattern;
|
martin@9
|
165 CTextLabel *paramSurGain;
|
martin@9
|
166 CTextLabel *paramCtrPattern;
|
martin@9
|
167 CTextLabel *paramCtrGain;
|
martin@9
|
168 CTextLabel *paramSubGain;
|
martin@9
|
169 CTextLabel *paramFc;
|
martin@9
|
170 CTextLabel *paramDecoder;
|
martin@9
|
171 CTextLabel *paramChannel;
|
martin@9
|
172
|
martin@9
|
173
|
martin@9
|
174 //Main Controls Section Text
|
martin@9
|
175 CTextLabel *decoderLabel1;
|
martin@9
|
176
|
martin@9
|
177 //Polar Plot
|
martin@9
|
178 polarPlot* myPlot;
|
martin@9
|
179
|
martin@9
|
180
|
martin@9
|
181
|
martin@0
|
182 CRect frameSize;
|
martin@0
|
183 CRect DisplaySize;
|
martin@0
|
184 CRect LabelSize;
|
martin@0
|
185 CRect r;
|
martin@0
|
186
|
martin@0
|
187 CColor kDisplayText;
|
martin@0
|
188 CColor kDisplayBackground;
|
martin@0
|
189 CColor kLabelText;
|
martin@0
|
190 CColor kBlank;
|
martin@0
|
191
|
martin@0
|
192
|
martin@0
|
193 CBitmap* knob_360;
|
martin@0
|
194 CBitmap* knob_red;
|
martin@0
|
195 CBitmap* knob_blue;
|
martin@0
|
196 CBitmap* knob_red_blue;
|
martin@9
|
197 CBitmap* knob_blue_red;
|
martin@0
|
198 CBitmap* knob_mode2;
|
martin@9
|
199 CBitmap* knob_mode2b;
|
martin@0
|
200 CBitmap* knob_mode4;
|
martin@8
|
201 CBitmap* knob_mode5;
|
martin@0
|
202
|
martin@9
|
203 CBitmap *bTransforms;
|
martin@0
|
204 CBitmap *bZoom;
|
martin@9
|
205 CBitmap *bControls;
|
martin@9
|
206 CBitmap *bControls2;
|
martin@0
|
207 CBitmap *bName;
|
martin@9
|
208 CBitmap *bPlot;
|
martin@9
|
209 CBitmap *bSettings;
|
martin@0
|
210
|
martin@0
|
211 CTextLabel* suspend;
|
martin@9
|
212 CTextLabel* heller1;
|
martin@9
|
213 CTextLabel* heller2;
|
martin@0
|
214 };
|
martin@0
|
215
|
martin@0
|
216
|
martin@0
|
217
|
martin@0
|
218
|
martin@6
|
219
|
martin@0
|
220 #endif // __MyEditor__
|
martin@0
|
221
|