martin@0: //----------------------------------------------------------------------------- martin@0: // VSTGUI: Graphical User Interface Framework for VST plugins : martin@0: // martin@0: // Version 3.5 martin@0: // martin@0: //----------------------------------------------------------------------------- martin@0: // VSTGUI LICENSE martin@0: // © 2008, Steinberg Media Technologies, All Rights Reserved martin@0: //----------------------------------------------------------------------------- martin@0: // Redistribution and use in source and binary forms, with or without modification, martin@0: // are permitted provided that the following conditions are met: martin@0: // martin@0: // * Redistributions of source code must retain the above copyright notice, martin@0: // this list of conditions and the following disclaimer. martin@0: // * Redistributions in binary form must reproduce the above copyright notice, martin@0: // this list of conditions and the following disclaimer in the documentation martin@0: // and/or other materials provided with the distribution. martin@0: // * Neither the name of the Steinberg Media Technologies nor the names of its martin@0: // contributors may be used to endorse or promote products derived from this martin@0: // software without specific prior written permission. martin@0: // martin@0: // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND martin@0: // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED martin@0: // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. martin@0: // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, martin@0: // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, martin@0: // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, martin@0: // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF martin@0: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE martin@0: // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED martin@0: // OF THE POSSIBILITY OF SUCH DAMAGE. martin@0: //----------------------------------------------------------------------------- martin@0: martin@0: #ifndef __MyEditor__ martin@0: #define __MyEditor__ martin@0: martin@10: #define IMAGE 281 martin@9: martin@9: #define cSep 12 martin@9: #define tDepth 15 martin@9: #define tDepthLarge 20 martin@9: #define dOffset 3 martin@9: #define kOffset (1*dOffset + tDepth + tDepthLarge) martin@9: #define lOffset kOffset-(1*dOffset + tDepth) martin@9: #define tOffset kOffset-(1*dOffset + tDepth + tDepthLarge) martin@9: #define pOffset kOffset+(64+dOffset) martin@9: martin@9: martin@0: #include "aeffguieditor.h" martin@0: #include martin@12: #include "ClassicAmbiDec.h" martin@12: #include "ClassicAmbiDecParameters.h" martin@7: #include "MyPlot.h" martin@6: martin@6: martin@6: martin@0: martin@0: martin@9: martin@0: class MyEditor : public AEffGUIEditor, public CControlListener martin@0: { martin@0: public: martin@0: MyEditor (void*); martin@0: martin@0: // from AEffGUIEditor martin@9: bool open (void* ptr); martin@9: void close (); martin@9: void setParameter (VstInt32 index, float value); martin@9: void setParameterAutomated(); martin@9: void getParameterDisplay (VstInt32 index, char *text); martin@0: martin@0: // from CControlListener martin@0: void valueChanged (CControl* pControl); martin@0: martin@0: martin@0: martin@0: CControl* controls[kNumParameters]; martin@0: char displayText; martin@0: martin@9: martin@0: martin@0: martin@0: // own function martin@9: void transformsDisplay(CFrame* newFrame); martin@9: void zoomDisplay(CFrame* newFrame); martin@9: void plotDisplay(CFrame* newFrame); martin@9: void settingsDisplay(CFrame* newFrame); martin@9: void nameDisplay(CFrame* newFrame); martin@9: void modeChange(); martin@9: void stereoDisplay(); martin@9: void twooneDisplay(); martin@9: void fourDisplay(); martin@9: void fiveDisplay(); martin@9: void fiveoneDisplay(); martin@9: void hellerDisplay(); martin@9: void clearStereo(); martin@9: void clearTwoOne(); martin@9: void clearFour(); martin@9: void clearFive(); martin@9: void clearFiveOne(); martin@9: void clearHeller(); martin@9: void suspendDisplay(); martin@9: void resumeDisplay(); martin@0: martin@0: martin@6: private: martin@6: martin@6: martin@6: protected: martin@9: //Parameters martin@0: CAnimKnob *knobRotate; martin@0: CAnimKnob *knobTilt; martin@0: CAnimKnob *knobTumble; martin@0: CHorizontalSwitch *knobZoomMethod; martin@0: CAnimKnob *knobZoom; martin@0: CAnimKnob *knobWidth; martin@0: CAnimKnob *knobPattern; martin@0: CHorizontalSwitch *knobMode; martin@0: CAnimKnob *knobRearVerb; martin@0: CAnimKnob *knobHiVerb; martin@9: CAnimKnob *knobCentrePattern; martin@9: CAnimKnob *knobCentreGain; martin@9: CAnimKnob *knobSubGain; martin@9: CAnimKnob *knobFc; martin@9: CHorizontalSwitch *knobSurroundMode; martin@9: CAnimKnob *knobSurroundPattern; martin@9: CAnimKnob *knobSurroundWidth; martin@9: CAnimKnob *knobSurroundGain; martin@8: CHorizontalSwitch *knobDecoder; martin@9: CHorizontalSwitch *knobChannel; martin@9: martin@9: //Main Controls Section Background martin@9: CView *control_view; martin@9: CView *control_view2; martin@9: martin@9: //Controls Text Labels martin@9: CTextLabel *labelMode; martin@9: CTextLabel *labelWidth; martin@9: CTextLabel *labelPattern; martin@9: CTextLabel *labelRearVerb; martin@9: CTextLabel *labelHiVerb; martin@9: CTextLabel *labelSurMode; martin@9: CTextLabel *labelSurWidth; martin@9: CTextLabel *labelSurPattern; martin@9: CTextLabel *labelSurGain; martin@9: CTextLabel *labelCtrPattern; martin@9: CTextLabel *labelCtreGain; martin@9: CTextLabel *labelSubGain; martin@9: CTextLabel *labelFc; martin@9: martin@9: //Controls Parameters martin@9: CTextLabel *paramMode; martin@9: CTextLabel *paramWidth; martin@9: CTextLabel *paramPattern; martin@9: CTextLabel *paramRotate; martin@9: CTextLabel *paramTilt; martin@9: CTextLabel *paramTumble; martin@9: CTextLabel *paramZoom; martin@9: CTextLabel *paramZoomMethod; martin@9: CTextLabel *paramRearVerb; martin@9: CTextLabel *paramHiVerb; martin@9: CTextLabel *paramSurMode; martin@9: CTextLabel *paramSurWidth; martin@9: CTextLabel *paramSurPattern; martin@9: CTextLabel *paramSurGain; martin@9: CTextLabel *paramCtrPattern; martin@9: CTextLabel *paramCtrGain; martin@9: CTextLabel *paramSubGain; martin@9: CTextLabel *paramFc; martin@9: CTextLabel *paramDecoder; martin@9: CTextLabel *paramChannel; martin@9: martin@9: martin@9: //Main Controls Section Text martin@9: CTextLabel *decoderLabel1; martin@9: martin@9: //Polar Plot martin@9: polarPlot* myPlot; martin@9: martin@9: martin@9: martin@0: CRect frameSize; martin@0: CRect DisplaySize; martin@0: CRect LabelSize; martin@0: CRect r; martin@0: martin@0: CColor kDisplayText; martin@0: CColor kDisplayBackground; martin@0: CColor kLabelText; martin@0: CColor kBlank; martin@0: martin@0: martin@0: CBitmap* knob_360; martin@0: CBitmap* knob_red; martin@0: CBitmap* knob_blue; martin@0: CBitmap* knob_red_blue; martin@9: CBitmap* knob_blue_red; martin@0: CBitmap* knob_mode2; martin@9: CBitmap* knob_mode2b; martin@0: CBitmap* knob_mode4; martin@8: CBitmap* knob_mode5; martin@0: martin@9: CBitmap *bTransforms; martin@0: CBitmap *bZoom; martin@9: CBitmap *bControls; martin@9: CBitmap *bControls2; martin@0: CBitmap *bName; martin@9: CBitmap *bPlot; martin@9: CBitmap *bSettings; martin@0: martin@0: CTextLabel* suspend; martin@9: CTextLabel* heller1; martin@9: CTextLabel* heller2; martin@0: }; martin@0: martin@0: martin@0: martin@0: martin@6: martin@0: #endif // __MyEditor__ martin@0: