Mercurial > hg > ambi-plugin
view Source/GUI.cpp @ 12:87dc3d84c120
Addressed the load program defaults over user settings 'feature'.
Removed isChild on objects that are added before the frame creation since a)they're always there and b) doesn't write to all displays present.
author | martinm_home <martin.morrell@eecs.qmul.ac.uk> |
---|---|
date | Thu, 27 Sep 2012 23:29:16 +0100 |
parents | 76e2e62635b4 |
children |
line wrap: on
line source
//----------------------------------------------------------------------------- // VSTGUI: Graphical User Interface Framework for VST plugins : // // Version 3.5 // //----------------------------------------------------------------------------- // VSTGUI LICENSE // © 2008, Steinberg Media Technologies, All Rights Reserved //----------------------------------------------------------------------------- // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of the Steinberg Media Technologies nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED // OF THE POSSIBILITY OF SUCH DAMAGE. //----------------------------------------------------------------------------- #include "GUI.h" #include <stdio.h> #include <vstgui.h> #define _USE_MATH_DEFINES #include <cmath> //------------------------------------------------------------------------------------ AEffGUIEditor* createEditor (AudioEffectX* effect) { return new MyEditor (effect); } //------------------------------------------------------------------------------------ MyEditor::MyEditor (void* ptr) : AEffGUIEditor (ptr) { rect.left = 0; rect.top = 0; rect.right = 578; rect.bottom = 502; } //------------------------------------------------------------------------------------ bool MyEditor::open (void* ptr) { //Knob Images knob_360 = new CBitmap ("360_knob.png"); knob_red = new CBitmap ("red_knob.png"); knob_blue = new CBitmap ("blue_knob.png"); knob_red_blue = new CBitmap ("red_blue_knob.png"); knob_blue_red = new CBitmap("blue_red_knob.png"); knob_mode2 = new CBitmap ("mode2_knob.png"); knob_mode2b = new CBitmap ("mode2b_knob.png"); knob_mode4 = new CBitmap ("mode4_knob.png"); knob_mode5 = new CBitmap ("mode5_knob.png"); //Create the main frame frameSize (0, 0, 578, 502); CFrame* newFrame = new CFrame (frameSize, ptr, this); newFrame->setBackgroundColor (CColor(23,25,26,255)); newFrame->setDirty(); //Set up the Colours that are used kDisplayText = CColor(255,255,255,255);//(R,G,B,Alpha) kDisplayBackground = CColor(94,102,106,255);//(R,G,B,Alpha) kLabelText = CColor(82,116,193,255);//(R,G,B,Alpha) kBlank = CColor(0,0,0,0); //Transforms transformsDisplay(newFrame); //Zooming zoomDisplay(newFrame); //Polar Plot plotDisplay(newFrame); //Settings settingsDisplay(newFrame); //Info Display nameDisplay(newFrame); //Create main frame frame = newFrame; //-- sync parameters myPlot->decoder_mode5x = effect->getParameter(103); //Sync the hidden 5.x decoder mode first for (int i = 0; i <= 4; i++) //Sync Transforms & Zoom setParameter (i, effect->getParameter (i)); for (int i = 18; i <= 19; i++) //Sync Decoder Mode & Output Type setParameter (i, effect->getParameter (i)); return true; } //------------------------------------------------------------------------------------ void MyEditor::close () { knob_360->forget(); knob_red->forget(); knob_blue->forget(); knob_red_blue->forget(); knob_blue_red->forget(); knob_mode2->forget(); knob_mode2b->forget(); knob_mode4->forget(); knob_mode5->forget(); //-- on close we need to delete the frame object. //-- once again we make sure that the member frame variable is set to zero before we delete it //-- so that calls to setParameter won't crash. CFrame* oldFrame = frame; frame = 0; oldFrame->forget(); } //------------------------------------------------------------------------------------ void MyEditor::transformsDisplay(CFrame* newFrame) { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = cSep; bTransforms = new CBitmap ("transforms.png"); CRect transSize = CRect (0, 0, bTransforms->getWidth (),bTransforms->getHeight ()); transSize.offset(hPos, ePos);//transformsEl+labelOffset-textDepthLarge CView* transforms_view = new CView (transSize); transforms_view->setBackground (bTransforms); newFrame->addView (transforms_view); newFrame->remember(); //Rotate r (0, 0, knob_red_blue->getWidth (), knob_red_blue->getHeight () / IMAGE); r.offset(hPos+cSep, ePos+kOffset); knobRotate = new CAnimKnob (r, this, kRotate, IMAGE, knob_360->getHeight () / IMAGE, knob_360, CPoint (0, 0)); newFrame->addView (knobRotate); newFrame->remember(); //Tilt r.offset(knob_red_blue->getWidth()+cSep, 0); knobTilt = new CAnimKnob (r, this, kTilt, IMAGE, knob_360->getHeight () / IMAGE, knob_360, CPoint (0, 0)); newFrame->addView (knobTilt); newFrame->remember(); //Tumble r.offset(knob_red_blue->getWidth()+cSep, 0); knobTumble = new CAnimKnob (r, this, kTumble, IMAGE, knob_360->getHeight () / IMAGE, knob_360, CPoint (0, 0)); newFrame->addView (knobTumble); newFrame->remember(); //--CTextLabel-------------------------------------- //Label Rotate LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); CTextLabel* labelRotate = new CTextLabel (LabelSize, 0, 0, kCenterText); labelRotate->setFont (kNormalFontSmall); labelRotate->setFontColor (kLabelText); labelRotate->setBackColor (kBlank); labelRotate->setFrameColor (kBlank); labelRotate->setText("Rotate"); newFrame->addView (labelRotate); newFrame->remember(); //Label Tilt LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); CTextLabel* labelTilt = new CTextLabel (LabelSize, 0, 0, kCenterText); labelTilt->setFont (kNormalFontSmall); labelTilt->setFontColor (kLabelText); labelTilt->setBackColor (kBlank); labelTilt->setFrameColor (kBlank); labelTilt->setText("Tilt"); newFrame->addView (labelTilt); newFrame->remember(); //Label Tumble LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); CTextLabel* labelTumble = new CTextLabel (LabelSize, 0, 0, kCenterText); labelTumble->setFont (kNormalFontSmall); labelTumble->setFontColor (kLabelText); labelTumble->setBackColor (kBlank); labelTumble->setFrameColor (kBlank); labelTumble->setText("Tumble"); newFrame->addView (labelTumble); newFrame->remember(); //Label Section LabelSize (0, 0, bTransforms->getWidth(), tDepthLarge); LabelSize.offset (hPos, ePos+tOffset); CTextLabel* labelTransforms = new CTextLabel (LabelSize, 0, 0, kCenterText); labelTransforms->setFont (kNormalFontBig); labelTransforms->setFontColor (kLabelText); labelTransforms->setBackColor (kBlank); labelTransforms->setFrameColor (kBlank); labelTransforms->setText("Transforms"); newFrame->addView (labelTransforms); newFrame->remember(); //--CTextLabel-------------------------------------- //Rotate Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramRotate = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramRotate->setHoriAlign(kCenterText); paramRotate->setFont (kNormalFontVerySmall); paramRotate->setFontColor (kDisplayText); paramRotate->setBackColor (kDisplayBackground); paramRotate->setFrameColor (kBlackCColor); newFrame->addView (paramRotate); newFrame->remember(); //Tilt Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramTilt = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramTilt->setHoriAlign(kCenterText); paramTilt->setFont (kNormalFontVerySmall); paramTilt->setFontColor (kDisplayText); paramTilt->setBackColor (kDisplayBackground); paramTilt->setFrameColor (kBlackCColor); newFrame->addView (paramTilt); newFrame->remember(); //Tumble Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramTumble = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramTumble->setHoriAlign(kCenterText); paramTumble->setFont (kNormalFontVerySmall); paramTumble->setFontColor (kDisplayText); paramTumble->setBackColor (kDisplayBackground); paramTumble->setFrameColor (kBlackCColor); newFrame->addView (paramTumble); newFrame->remember(); //-- remember our controls so that we can sync them with the state of the effect controls[kRotate] = knobRotate; controls[kTilt] = knobTilt; controls[kTumble] = knobTumble; //Forget this section's Background, Knobs, Labels bTransforms->forget(); knobRotate->forget (); knobTilt->forget (); knobTumble->forget (); labelRotate->forget(); labelTilt->forget(); labelTumble->forget(); labelTransforms->forget(); paramRotate->forget(); paramTilt->forget(); paramTumble->forget(); } //------------------------------------------------------------------------------------ void MyEditor::zoomDisplay(CFrame* newFrame) { //FIRST OFF - define a top coordinate int hPos = 402; int ePos = cSep; bZoom = new CBitmap ("zoom.png"); CRect zoomSize = CRect (0, 0, bZoom->getWidth (),bZoom->getHeight ()); zoomSize.offset(hPos, ePos); CView* zoom_view = new CView (zoomSize); zoom_view->setBackground (bZoom); newFrame->addView (zoom_view); newFrame->remember(); //ZoomMethod CRect r (0, 0, knob_red_blue->getWidth (), knob_red_blue->getHeight () / IMAGE); r.offset(hPos+cSep, kOffset+cSep); knobZoomMethod = new CHorizontalSwitch (r, this, kZoomMethod, 4, knob_mode4->getHeight () / 4, 4, knob_mode4, CPoint (0, 0)); newFrame->addView (knobZoomMethod); newFrame->remember(); //Zoom r.offset(knob_mode4->getWidth()+cSep, 0); knobZoom = new CAnimKnob (r, this, kZoom, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red_blue, CPoint (0, 0)); newFrame->addView (knobZoom); newFrame->remember(); //--CTextLabel-------------------------------------- //Label ZoomMethod LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); CTextLabel* labelZoomMethod = new CTextLabel (LabelSize, 0, 0, kCenterText); labelZoomMethod->setFont (kNormalFontSmall); labelZoomMethod->setFontColor (kLabelText); labelZoomMethod->setBackColor (kBlank); labelZoomMethod->setFrameColor (kBlank); labelZoomMethod->setText("Zoom Type"); newFrame->addView (labelZoomMethod); newFrame->remember(); //Label Zoom LabelSize.offset (knob_mode4->getWidth()+cSep, 0); CTextLabel* labelZoom = new CTextLabel (LabelSize, 0, 0, kCenterText); labelZoom->setFont (kNormalFontSmall); labelZoom->setFontColor (kLabelText); labelZoom->setBackColor (kBlank); labelZoom->setFrameColor (kBlank); labelZoom->setText("Zoom"); newFrame->addView (labelZoom); newFrame->remember(); //Label Section LabelSize (0, 0, bZoom->getWidth(), tDepthLarge); LabelSize.offset (hPos, ePos+tOffset); CTextLabel* labelZooming = new CTextLabel (LabelSize, 0, 0, kCenterText); labelZooming->setFont (kNormalFontBig); labelZooming->setFontColor (kLabelText); labelZooming->setBackColor (kBlank); labelZooming->setFrameColor (kBlank); labelZooming->setText("Zooming"); newFrame->addView (labelZooming); newFrame->remember(); //--CTextLabel-------------------------------------- //Zoom Method DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramZoomMethod = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramZoomMethod->setHoriAlign(kCenterText); paramZoomMethod->setFont (kNormalFontVerySmall); paramZoomMethod->setFontColor (kDisplayText); paramZoomMethod->setBackColor (kDisplayBackground); paramZoomMethod->setFrameColor (kBlackCColor); newFrame->addView (paramZoomMethod); newFrame->remember(); //Zoom Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramZoom = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramZoom->setHoriAlign(kCenterText); paramZoom->setFont (kNormalFontVerySmall); paramZoom->setFontColor (kDisplayText); paramZoom->setBackColor (kDisplayBackground); paramZoom->setFrameColor (kBlackCColor); newFrame->addView (paramZoom); newFrame->remember(); //-- remember our controls so that we can sync them with the state of the effect controls[kZoom] = knobZoom; controls[kZoomMethod] = knobZoomMethod; //Forget this section's Background, Knobs, Labels bZoom->forget(); knobZoomMethod->forget(); knobZoom->forget(); labelZoomMethod->forget(); labelZoom->forget(); labelZooming->forget(); paramZoomMethod->forget(); paramZoom->forget(); } //------------------------------------------------------------------------------------ void MyEditor::stereoDisplay() { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 288; bControls = new CBitmap ("controls.png"); CRect controlSize = CRect (0, 0, bControls->getWidth (),bControls->getHeight ()); controlSize.offset(hPos, ePos); control_view = new CView (controlSize); control_view->setBackground (bControls); getFrame()->addView (control_view); getFrame()->remember(); //Mode r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos+cSep,ePos+kOffset); knobMode = new CHorizontalSwitch (r, this, kMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobMode); getFrame()->remember(); //Width r.offset(knob_mode2->getWidth()+cSep, 0); knobWidth = new CAnimKnob (r, this, kWidth, IMAGE, knob_red->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobWidth); getFrame()->remember(); //Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobPattern = new CAnimKnob (r, this, kPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobPattern); getFrame()->remember(); //RearVerb r.offset(2*knob_mode2->getWidth()+2*cSep+10, 0); knobRearVerb = new CAnimKnob (r, this, kRearVerb, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobRearVerb); getFrame()->remember(); //HiVerb r.offset(knob_mode2->getWidth()+cSep, 0); knobHiVerb = new CAnimKnob (r, this, kHiVerb, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobHiVerb); getFrame()->remember(); //--CTextLabel-------------------------------------- //Label Mode LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); labelMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelMode->setFont (kNormalFontSmall); labelMode->setFontColor (kLabelText); labelMode->setBackColor (kBlank); labelMode->setFrameColor (kBlank); labelMode->setText("Mode"); getFrame()->addView (labelMode); getFrame()->remember(); //Label Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelWidth->setFont (kNormalFontSmall); labelWidth->setFontColor (kLabelText); labelWidth->setBackColor (kBlank); labelWidth->setFrameColor (kBlank); labelWidth->setText("Width"); getFrame()->addView (labelWidth); getFrame()->remember(); //Label Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelPattern->setFont (kNormalFontSmall); labelPattern->setFontColor (kLabelText); labelPattern->setBackColor (kBlank); labelPattern->setFrameColor (kBlank); labelPattern->setText("Pattern"); getFrame()->addView (labelPattern); getFrame()->remember(); //Label RearVerb LabelSize.offset (2*knob_mode2->getWidth()+2*cSep+10, 0); labelRearVerb = new CTextLabel (LabelSize, 0, 0, kCenterText); labelRearVerb->setFont (kNormalFontSmall); labelRearVerb->setFontColor (kLabelText); labelRearVerb->setBackColor (kBlank); labelRearVerb->setFrameColor (kBlank); labelRearVerb->setText("RearVerb"); getFrame()->addView (labelRearVerb); getFrame()->remember(); //Label HiVerb LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelHiVerb = new CTextLabel (LabelSize, 0, 0, kCenterText); labelHiVerb->setFont (kNormalFontSmall); labelHiVerb->setFontColor (kLabelText); labelHiVerb->setBackColor (kBlank); labelHiVerb->setFrameColor (kBlank); labelHiVerb->setText("HiVerb"); getFrame()->addView (labelHiVerb); getFrame()->remember(); //Label Section LabelSize (0, 0, bControls->getWidth(), tDepthLarge); LabelSize.offset (hPos, ePos+tOffset); decoderLabel1 = new CTextLabel (LabelSize, 0, 0, kCenterText); decoderLabel1->setFont (kNormalFontBig); decoderLabel1->setFontColor (kLabelText); decoderLabel1->setBackColor (kBlank); decoderLabel1->setFrameColor (kBlank); decoderLabel1->setText("Stereo Decoding & Reverb"); getFrame()->addView (decoderLabel1); getFrame()->remember(); //--CTextLabel-------------------------------------- //Mode Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramMode->setHoriAlign(kCenterText); paramMode->setFont (kNormalFontVerySmall); paramMode->setFontColor (kDisplayText); paramMode->setBackColor (kDisplayBackground); paramMode->setFrameColor (kBlackCColor); getFrame()->addView (paramMode); getFrame()->remember(); //Width Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramWidth->setHoriAlign(kCenterText); paramWidth->setFont (kNormalFontVerySmall); paramWidth->setFontColor (kDisplayText); paramWidth->setBackColor (kDisplayBackground); paramWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramWidth); getFrame()->remember(); //Pattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramPattern->setHoriAlign(kCenterText); paramPattern->setFont (kNormalFontVerySmall); paramPattern->setFontColor (kDisplayText); paramPattern->setBackColor (kDisplayBackground); paramPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramPattern); getFrame()->remember(); //RearVerb Value DisplaySize.offset (2*knob_mode2->getWidth()+2*cSep+10, 0); paramRearVerb = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramRearVerb->setHoriAlign(kCenterText); paramRearVerb->setFont (kNormalFontVerySmall); paramRearVerb->setFontColor (kDisplayText); paramRearVerb->setBackColor (kDisplayBackground); paramRearVerb->setFrameColor (kBlackCColor); getFrame()->addView (paramRearVerb); getFrame()->remember(); //HiVerb Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramHiVerb = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramHiVerb->setHoriAlign(kCenterText); paramHiVerb->setFont (kNormalFontVerySmall); paramHiVerb->setFontColor (kDisplayText); paramHiVerb->setBackColor (kDisplayBackground); paramHiVerb->setFrameColor (kBlackCColor); getFrame()->addView (paramHiVerb); getFrame()->remember(); controls[kMode] = knobMode; controls[kWidth] = knobWidth; controls[kPattern] = knobPattern; controls[kRearVerb] = knobRearVerb; controls[kHiVerb] = knobHiVerb; //Forget Label, Knobs etc. bControls->forget(); } //------------------------------------------------------------------------------------ void MyEditor::twooneDisplay() { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 288; int hPos2 = cSep+37; int ePos2 = 150; bControls = new CBitmap ("controls.png"); CRect controlSize = CRect (0, 0, bControls->getWidth (),bControls->getHeight ()); controlSize.offset(cSep, cSep+(cSep+bControls->getHeight())*2); control_view = new CView (controlSize); control_view->setBackground (bControls); getFrame()->addView (control_view); getFrame()->remember(); bControls2 = new CBitmap ("controls2.png"); controlSize = CRect (0, 0, bControls2->getWidth (),bControls2->getHeight ()); controlSize.offset(hPos2, ePos2); control_view2 = new CView (controlSize); control_view2->setBackground (bControls2); getFrame()->addView (control_view2); getFrame()->remember(); //Mode r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos+cSep,ePos+kOffset); knobMode = new CHorizontalSwitch (r, this, kMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobMode); getFrame()->remember(); //Width r.offset(knob_mode2->getWidth()+cSep, 0); knobWidth = new CAnimKnob (r, this, kWidth, IMAGE, knob_red->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobWidth); getFrame()->remember(); //Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobPattern = new CAnimKnob (r, this, kPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobPattern); getFrame()->remember(); //RearVerb r.offset(2*knob_mode2->getWidth()+2*cSep+10, 0); knobRearVerb = new CAnimKnob (r, this, kRearVerb, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobRearVerb); getFrame()->remember(); //HiVerb r.offset(knob_mode2->getWidth()+cSep, 0); knobHiVerb = new CAnimKnob (r, this, kHiVerb, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobHiVerb); getFrame()->remember(); //SubGain r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos2+2*cSep+knob_mode2->getWidth (), ePos2+kOffset); knobSubGain = new CAnimKnob (r, this, kSubGain, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobSubGain); getFrame()->remember(); //FC r.offset(knob_mode2->getWidth()+cSep, 0); knobFc = new CAnimKnob (r, this, kFc, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobFc); getFrame()->remember(); //--CTextLabel-------------------------------------- //Label Mode LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); labelMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelMode->setFont (kNormalFontSmall); labelMode->setFontColor (kLabelText); labelMode->setBackColor (kBlank); labelMode->setFrameColor (kBlank); labelMode->setText("Mode"); getFrame()->addView (labelMode); getFrame()->remember(); //Label Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelWidth->setFont (kNormalFontSmall); labelWidth->setFontColor (kLabelText); labelWidth->setBackColor (kBlank); labelWidth->setFrameColor (kBlank); labelWidth->setText("Width"); getFrame()->addView (labelWidth); getFrame()->remember(); //Label Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelPattern->setFont (kNormalFontSmall); labelPattern->setFontColor (kLabelText); labelPattern->setBackColor (kBlank); labelPattern->setFrameColor (kBlank); labelPattern->setText("Pattern"); getFrame()->addView (labelPattern); getFrame()->remember(); //Label RearVerb LabelSize.offset (2*knob_mode2->getWidth()+2*cSep+10, 0); labelRearVerb = new CTextLabel (LabelSize, 0, 0, kCenterText); labelRearVerb->setFont (kNormalFontSmall); labelRearVerb->setFontColor (kLabelText); labelRearVerb->setBackColor (kBlank); labelRearVerb->setFrameColor (kBlank); labelRearVerb->setText("RearVerb"); getFrame()->addView (labelRearVerb); getFrame()->remember(); //Label HiVerb LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelHiVerb = new CTextLabel (LabelSize, 0, 0, kCenterText); labelHiVerb->setFont (kNormalFontSmall); labelHiVerb->setFontColor (kLabelText); labelHiVerb->setBackColor (kBlank); labelHiVerb->setFrameColor (kBlank); labelHiVerb->setText("HiVerb"); getFrame()->addView (labelHiVerb); getFrame()->remember(); //Label SubGain LabelSize(0, 0, knob_mode2->getWidth (), tDepth); LabelSize.offset (hPos2+2*cSep+knob_mode2->getWidth (), ePos2+lOffset); labelSubGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSubGain->setFont (kNormalFontSmall); labelSubGain->setFontColor (kLabelText); labelSubGain->setBackColor (kBlank); labelSubGain->setFrameColor (kBlank); labelSubGain->setText("SubGain"); getFrame()->addView (labelSubGain); getFrame()->remember(); //Label Fc LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelFc = new CTextLabel (LabelSize, 0, 0, kCenterText); labelFc->setFont (kNormalFontSmall); labelFc->setFontColor (kLabelText); labelFc->setBackColor (kBlank); labelFc->setFrameColor (kBlank); labelFc->setText("xOver"); getFrame()->addView (labelFc); getFrame()->remember(); //Label Section LabelSize (0, 0, bControls2->getWidth(), tDepthLarge); LabelSize.offset (hPos2, ePos2+tOffset); decoderLabel1 = new CTextLabel (LabelSize, 0, 0, kCenterText); decoderLabel1->setFont (kNormalFontBig); decoderLabel1->setFontColor (kLabelText); decoderLabel1->setBackColor (kBlank); decoderLabel1->setFrameColor (kBlank); decoderLabel1->setText("2.1 Decoding & Reverb"); getFrame()->addView (decoderLabel1); getFrame()->remember(); //--CTextLabel-------------------------------------- //Mode Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramMode->setHoriAlign(kCenterText); paramMode->setFont (kNormalFontVerySmall); paramMode->setFontColor (kDisplayText); paramMode->setBackColor (kDisplayBackground); paramMode->setFrameColor (kBlackCColor); getFrame()->addView (paramMode); getFrame()->remember(); //Width Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramWidth->setHoriAlign(kCenterText); paramWidth->setFont (kNormalFontVerySmall); paramWidth->setFontColor (kDisplayText); paramWidth->setBackColor (kDisplayBackground); paramWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramWidth); getFrame()->remember(); //Pattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramPattern->setHoriAlign(kCenterText); paramPattern->setFont (kNormalFontVerySmall); paramPattern->setFontColor (kDisplayText); paramPattern->setBackColor (kDisplayBackground); paramPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramPattern); getFrame()->remember(); //RearVerb Value DisplaySize.offset (2*knob_mode2->getWidth()+2*cSep+10, 0); paramRearVerb = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramRearVerb->setHoriAlign(kCenterText); paramRearVerb->setFont (kNormalFontVerySmall); paramRearVerb->setFontColor (kDisplayText); paramRearVerb->setBackColor (kDisplayBackground); paramRearVerb->setFrameColor (kBlackCColor); getFrame()->addView (paramRearVerb); getFrame()->remember(); //HiVerb Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramHiVerb = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramHiVerb->setHoriAlign(kCenterText); paramHiVerb->setFont (kNormalFontVerySmall); paramHiVerb->setFontColor (kDisplayText); paramHiVerb->setBackColor (kDisplayBackground); paramHiVerb->setFrameColor (kBlackCColor); getFrame()->addView (paramHiVerb); getFrame()->remember(); //SubGain Value DisplaySize(0, 0, knob_mode2->getWidth (), tDepth); DisplaySize.offset(hPos2+2*cSep+knob_mode2->getWidth (), ePos2+pOffset); paramSubGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSubGain->setHoriAlign(kCenterText); paramSubGain->setFont (kNormalFontVerySmall); paramSubGain->setFontColor (kDisplayText); paramSubGain->setBackColor (kDisplayBackground); paramSubGain->setFrameColor (kBlackCColor); getFrame()->addView (paramSubGain); getFrame()->remember(); //Fc Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramFc = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramFc->setHoriAlign(kCenterText); paramFc->setFont (kNormalFontVerySmall); paramFc->setFontColor (kDisplayText); paramFc->setBackColor (kDisplayBackground); paramFc->setFrameColor (kBlackCColor); getFrame()->addView (paramFc); getFrame()->remember(); controls[kMode] = knobMode; controls[kWidth] = knobWidth; controls[kPattern] = knobPattern; controls[kRearVerb] = knobRearVerb; controls[kHiVerb] = knobHiVerb; controls[kSubGain] = knobSubGain; controls[kFc] = knobFc; //Forget Label, Knobs etc. bControls->forget(); bControls2->forget(); } //------------------------------------------------------------------------------------ void MyEditor::fourDisplay() { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 288; bControls = new CBitmap ("controls.png"); CRect controlSize = CRect (0, 0, bControls->getWidth (),bControls->getHeight ()); controlSize.offset(cSep, cSep+(cSep+bControls->getHeight())*2); control_view = new CView (controlSize); control_view->setBackground (bControls); getFrame()->addView (control_view); getFrame()->remember(); //Mode r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos+cSep,ePos+kOffset); knobMode = new CHorizontalSwitch (r, this, kMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobMode); getFrame()->remember(); //Width r.offset(knob_mode2->getWidth()+cSep, 0); knobWidth = new CAnimKnob (r, this, kWidth, IMAGE, knob_red->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobWidth); getFrame()->remember(); //Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobPattern = new CAnimKnob (r, this, kPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobPattern); getFrame()->remember(); //Surround Mode r.offset(knob_mode2->getWidth()+cSep+10, 0); knobSurroundMode = new CHorizontalSwitch (r, this, kSurroundMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobSurroundMode); getFrame()->remember(); //Surround Width r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundWidth = new CAnimKnob (r, this, kSurroundWidth, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobSurroundWidth); getFrame()->remember(); //Surround Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundPattern = new CAnimKnob (r, this, kSurroundPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobSurroundPattern); getFrame()->remember(); //Surround Gain r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundGain = new CAnimKnob (r, this, kSurroundGain, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobSurroundGain); getFrame()->remember(); //--CTextLabel-------------------------------------- //Label Mode LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); labelMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelMode->setFont (kNormalFontSmall); labelMode->setFontColor (kLabelText); labelMode->setBackColor (kBlank); labelMode->setFrameColor (kBlank); labelMode->setText("Mode"); getFrame()->addView (labelMode); getFrame()->remember(); //Label Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelWidth->setFont (kNormalFontSmall); labelWidth->setFontColor (kLabelText); labelWidth->setBackColor (kBlank); labelWidth->setFrameColor (kBlank); labelWidth->setText("Width"); getFrame()->addView (labelWidth); getFrame()->remember(); //Label Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelPattern->setFont (kNormalFontSmall); labelPattern->setFontColor (kLabelText); labelPattern->setBackColor (kBlank); labelPattern->setFrameColor (kBlank); labelPattern->setText("Pattern"); getFrame()->addView (labelPattern); getFrame()->remember(); //Label Surround Mode LabelSize.offset (knob_mode2->getWidth()+cSep+10, 0); labelSurMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurMode->setFont (kNormalFontSmall); labelSurMode->setFontColor (kLabelText); labelSurMode->setBackColor (kBlank); labelSurMode->setFrameColor (kBlank); labelSurMode->setText("SurMode"); getFrame()->addView (labelSurMode); getFrame()->remember(); //Label Surround Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurWidth->setFont (kNormalFontSmall); labelSurWidth->setFontColor (kLabelText); labelSurWidth->setBackColor (kBlank); labelSurWidth->setFrameColor (kBlank); labelSurWidth->setText("SurWidth"); getFrame()->addView (labelSurWidth); getFrame()->remember(); //Label Surround Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurPattern->setFont (kNormalFontSmall); labelSurPattern->setFontColor (kLabelText); labelSurPattern->setBackColor (kBlank); labelSurPattern->setFrameColor (kBlank); labelSurPattern->setText("SurPattern"); getFrame()->addView (labelSurPattern); getFrame()->remember(); //Label Surround Gain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurGain->setFont (kNormalFontSmall); labelSurGain->setFontColor (kLabelText); labelSurGain->setBackColor (kBlank); labelSurGain->setFrameColor (kBlank); labelSurGain->setText("SurGain"); getFrame()->addView (labelSurGain); getFrame()->remember(); //Label Section LabelSize (0, 0, bControls->getWidth(), tDepthLarge); LabelSize.offset (hPos, ePos+tOffset); decoderLabel1 = new CTextLabel (LabelSize, 0, 0, kCenterText); decoderLabel1->setFont (kNormalFontBig); decoderLabel1->setFontColor (kLabelText); decoderLabel1->setBackColor (kBlank); decoderLabel1->setFrameColor (kBlank); decoderLabel1->setText("4.0 Decoding"); getFrame()->addView (decoderLabel1); getFrame()->remember(); //--CTextLabel-------------------------------------- //Mode Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramMode->setHoriAlign(kCenterText); paramMode->setFont (kNormalFontVerySmall); paramMode->setFontColor (kDisplayText); paramMode->setBackColor (kDisplayBackground); paramMode->setFrameColor (kBlackCColor); getFrame()->addView (paramMode); getFrame()->remember(); //Width Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramWidth->setHoriAlign(kCenterText); paramWidth->setFont (kNormalFontVerySmall); paramWidth->setFontColor (kDisplayText); paramWidth->setBackColor (kDisplayBackground); paramWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramWidth); getFrame()->remember(); //Pattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramPattern->setHoriAlign(kCenterText); paramPattern->setFont (kNormalFontVerySmall); paramPattern->setFontColor (kDisplayText); paramPattern->setBackColor (kDisplayBackground); paramPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramPattern); getFrame()->remember(); //SurMode Value DisplaySize.offset (knob_mode2->getWidth()+cSep+10, 0); paramSurMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurMode->setHoriAlign(kCenterText); paramSurMode->setFont (kNormalFontVerySmall); paramSurMode->setFontColor (kDisplayText); paramSurMode->setBackColor (kDisplayBackground); paramSurMode->setFrameColor (kBlackCColor); getFrame()->addView (paramSurMode); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurWidth->setHoriAlign(kCenterText); paramSurWidth->setFont (kNormalFontVerySmall); paramSurWidth->setFontColor (kDisplayText); paramSurWidth->setBackColor (kDisplayBackground); paramSurWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramSurWidth); getFrame()->remember(); //SurPattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurPattern->setHoriAlign(kCenterText); paramSurPattern->setFont (kNormalFontVerySmall); paramSurPattern->setFontColor (kDisplayText); paramSurPattern->setBackColor (kDisplayBackground); paramSurPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramSurPattern); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurGain->setHoriAlign(kCenterText); paramSurGain->setFont (kNormalFontVerySmall); paramSurGain->setFontColor (kDisplayText); paramSurGain->setBackColor (kDisplayBackground); paramSurGain->setFrameColor (kBlackCColor); getFrame()->addView (paramSurGain); getFrame()->remember(); controls[kMode] = knobMode; controls[kWidth] = knobWidth; controls[kPattern] = knobPattern; controls[kSurroundMode] = knobSurroundMode; controls[kSurroundPattern] = knobSurroundPattern; controls[kSurroundWidth] = knobSurroundWidth; controls[kSurroundGain] = knobSurroundGain; //Forget Label, Knobs etc. bControls->forget(); } //------------------------------------------------------------------------------------ void MyEditor::fiveDisplay() { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 288; int hPos2 = cSep+37; int ePos2 = 150; bControls = new CBitmap ("controls.png"); CRect controlSize = CRect (0, 0, bControls->getWidth (),bControls->getHeight ()); controlSize.offset(cSep, cSep+(cSep+bControls->getHeight())*2); control_view = new CView (controlSize); control_view->setBackground (bControls); getFrame()->addView (control_view); getFrame()->remember(); bControls2 = new CBitmap ("controls2.png"); controlSize = CRect (0, 0, bControls2->getWidth (),bControls2->getHeight ()); controlSize.offset(hPos2, ePos2); control_view2 = new CView (controlSize); control_view2->setBackground (bControls2); getFrame()->addView (control_view2); getFrame()->remember(); //Mode r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos+cSep,ePos+kOffset); knobMode = new CHorizontalSwitch (r, this, kMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobMode); getFrame()->remember(); //Width r.offset(knob_mode2->getWidth()+cSep, 0); knobWidth = new CAnimKnob (r, this, kWidth, IMAGE, knob_red->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobWidth); getFrame()->remember(); //Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobPattern = new CAnimKnob (r, this, kPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobPattern); getFrame()->remember(); //Surround Mode r.offset(knob_mode2->getWidth()+cSep+10, 0); knobSurroundMode = new CHorizontalSwitch (r, this, kSurroundMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobSurroundMode); getFrame()->remember(); //Surround Width r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundWidth = new CAnimKnob (r, this, kSurroundWidth, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobSurroundWidth); getFrame()->remember(); //Surround Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundPattern = new CAnimKnob (r, this, kSurroundPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobSurroundPattern); getFrame()->remember(); //Surround Gain r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundGain = new CAnimKnob (r, this, kSurroundGain, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobSurroundGain); getFrame()->remember(); //Centre Pattern r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos2+2*cSep+knob_mode2->getWidth (), ePos2+kOffset); knobCentrePattern = new CAnimKnob (r, this, kCentrePattern, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobCentrePattern); getFrame()->remember(); //Centre Gain r.offset(knob_mode2->getWidth()+cSep, 0); knobCentreGain = new CAnimKnob (r, this, kCentreGain, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobCentreGain); getFrame()->remember(); //--CTextLabel-------------------------------------- //Label Mode LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); labelMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelMode->setFont (kNormalFontSmall); labelMode->setFontColor (kLabelText); labelMode->setBackColor (kBlank); labelMode->setFrameColor (kBlank); labelMode->setText("Mode"); getFrame()->addView (labelMode); getFrame()->remember(); //Label Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelWidth->setFont (kNormalFontSmall); labelWidth->setFontColor (kLabelText); labelWidth->setBackColor (kBlank); labelWidth->setFrameColor (kBlank); labelWidth->setText("Width"); getFrame()->addView (labelWidth); getFrame()->remember(); //Label Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelPattern->setFont (kNormalFontSmall); labelPattern->setFontColor (kLabelText); labelPattern->setBackColor (kBlank); labelPattern->setFrameColor (kBlank); labelPattern->setText("Pattern"); getFrame()->addView (labelPattern); getFrame()->remember(); //Label Surround Mode LabelSize.offset (knob_mode2->getWidth()+cSep+10, 0); labelSurMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurMode->setFont (kNormalFontSmall); labelSurMode->setFontColor (kLabelText); labelSurMode->setBackColor (kBlank); labelSurMode->setFrameColor (kBlank); labelSurMode->setText("SurMode"); getFrame()->addView (labelSurMode); getFrame()->remember(); //Label Surround Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurWidth->setFont (kNormalFontSmall); labelSurWidth->setFontColor (kLabelText); labelSurWidth->setBackColor (kBlank); labelSurWidth->setFrameColor (kBlank); labelSurWidth->setText("SurWidth"); getFrame()->addView (labelSurWidth); getFrame()->remember(); //Label Surround Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurPattern->setFont (kNormalFontSmall); labelSurPattern->setFontColor (kLabelText); labelSurPattern->setBackColor (kBlank); labelSurPattern->setFrameColor (kBlank); labelSurPattern->setText("SurPattern"); getFrame()->addView (labelSurPattern); getFrame()->remember(); //Label Surround Gain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurGain->setFont (kNormalFontSmall); labelSurGain->setFontColor (kLabelText); labelSurGain->setBackColor (kBlank); labelSurGain->setFrameColor (kBlank); labelSurGain->setText("SurGain"); getFrame()->addView (labelSurGain); getFrame()->remember(); //Label Centre Pattern LabelSize(0, 0, knob_mode2->getWidth (), tDepth); LabelSize.offset(hPos2+2*cSep+knob_mode2->getWidth (), ePos2+lOffset); labelCtrPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelCtrPattern->setFont (kNormalFontSmall); labelCtrPattern->setFontColor (kLabelText); labelCtrPattern->setBackColor (kBlank); labelCtrPattern->setFrameColor (kBlank); labelCtrPattern->setText("CtrPattern"); getFrame()->addView (labelCtrPattern); getFrame()->remember(); //Label Centre Gain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelCtreGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelCtreGain->setFont (kNormalFontSmall); labelCtreGain->setFontColor (kLabelText); labelCtreGain->setBackColor (kBlank); labelCtreGain->setFrameColor (kBlank); labelCtreGain->setText("CtrGain"); getFrame()->addView (labelCtreGain); getFrame()->remember(); //Label Section LabelSize (0, 0, bControls2->getWidth(), tDepthLarge); LabelSize.offset (hPos2, ePos2+tOffset); decoderLabel1 = new CTextLabel (LabelSize, 0, 0, kCenterText); decoderLabel1->setFont (kNormalFontBig); decoderLabel1->setFontColor (kLabelText); decoderLabel1->setBackColor (kBlank); decoderLabel1->setFrameColor (kBlank); decoderLabel1->setText("5.0 Decoding"); getFrame()->addView (decoderLabel1); getFrame()->remember(); //--CTextLabel-------------------------------------- //Mode Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramMode->setHoriAlign(kCenterText); paramMode->setFont (kNormalFontVerySmall); paramMode->setFontColor (kDisplayText); paramMode->setBackColor (kDisplayBackground); paramMode->setFrameColor (kBlackCColor); getFrame()->addView (paramMode); getFrame()->remember(); //Width Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramWidth->setHoriAlign(kCenterText); paramWidth->setFont (kNormalFontVerySmall); paramWidth->setFontColor (kDisplayText); paramWidth->setBackColor (kDisplayBackground); paramWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramWidth); getFrame()->remember(); //Pattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramPattern->setHoriAlign(kCenterText); paramPattern->setFont (kNormalFontVerySmall); paramPattern->setFontColor (kDisplayText); paramPattern->setBackColor (kDisplayBackground); paramPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramPattern); getFrame()->remember(); //SurMode Value DisplaySize.offset (knob_mode2->getWidth()+cSep+10, 0); paramSurMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurMode->setHoriAlign(kCenterText); paramSurMode->setFont (kNormalFontVerySmall); paramSurMode->setFontColor (kDisplayText); paramSurMode->setBackColor (kDisplayBackground); paramSurMode->setFrameColor (kBlackCColor); getFrame()->addView (paramSurMode); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurWidth->setHoriAlign(kCenterText); paramSurWidth->setFont (kNormalFontVerySmall); paramSurWidth->setFontColor (kDisplayText); paramSurWidth->setBackColor (kDisplayBackground); paramSurWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramSurWidth); getFrame()->remember(); //SurPattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurPattern->setHoriAlign(kCenterText); paramSurPattern->setFont (kNormalFontVerySmall); paramSurPattern->setFontColor (kDisplayText); paramSurPattern->setBackColor (kDisplayBackground); paramSurPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramSurPattern); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurGain->setHoriAlign(kCenterText); paramSurGain->setFont (kNormalFontVerySmall); paramSurGain->setFontColor (kDisplayText); paramSurGain->setBackColor (kDisplayBackground); paramSurGain->setFrameColor (kBlackCColor); getFrame()->addView (paramSurGain); getFrame()->remember(); //CtrPattern Value DisplaySize(0, 0, knob_mode2->getWidth (), tDepth); DisplaySize.offset(hPos2+2*cSep+knob_mode2->getWidth (), ePos2+pOffset); paramCtrPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramCtrPattern->setHoriAlign(kCenterText); paramCtrPattern->setFont (kNormalFontVerySmall); paramCtrPattern->setFontColor (kDisplayText); paramCtrPattern->setBackColor (kDisplayBackground); paramCtrPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramCtrPattern); getFrame()->remember(); //CtrGain Value DisplaySize.offset(knob_red_blue->getWidth()+cSep, 0); paramCtrGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramCtrGain->setHoriAlign(kCenterText); paramCtrGain->setFont (kNormalFontVerySmall); paramCtrGain->setFontColor (kDisplayText); paramCtrGain->setBackColor (kDisplayBackground); paramCtrGain->setFrameColor (kBlackCColor); getFrame()->addView (paramCtrGain); getFrame()->remember(); controls[kMode] = knobMode; controls[kWidth] = knobWidth; controls[kPattern] = knobPattern; controls[kCentrePattern] = knobCentrePattern; controls[kCentreGain] =knobCentreGain; controls[kSurroundMode] = knobSurroundMode; controls[kSurroundPattern] = knobSurroundPattern; controls[kSurroundWidth] = knobSurroundWidth; controls[kSurroundGain] = knobSurroundGain; //Forget Label, Knobs etc. bControls->forget(); bControls2->forget(); } //------------------------------------------------------------------------------------ void MyEditor::fiveoneDisplay() { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 288; int hPos2 = cSep+37; int ePos2 = 150; bControls = new CBitmap ("controls.png"); CRect controlSize = CRect (0, 0, bControls->getWidth (),bControls->getHeight ()); controlSize.offset(cSep, cSep+(cSep+bControls->getHeight())*2); control_view = new CView (controlSize); control_view->setBackground (bControls); getFrame()->addView (control_view); getFrame()->remember(); bControls2 = new CBitmap ("controls2.png"); controlSize = CRect (0, 0, bControls2->getWidth (),bControls2->getHeight ()); controlSize.offset(hPos2, ePos2); control_view2 = new CView (controlSize); control_view2->setBackground (bControls2); getFrame()->addView (control_view2); getFrame()->remember(); //Mode r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos+cSep,ePos+kOffset); knobMode = new CHorizontalSwitch (r, this, kMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobMode); getFrame()->remember(); //Width r.offset(knob_mode2->getWidth()+cSep, 0); knobWidth = new CAnimKnob (r, this, kWidth, IMAGE, knob_red->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobWidth); getFrame()->remember(); //Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobPattern = new CAnimKnob (r, this, kPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobPattern); getFrame()->remember(); //Surround Mode r.offset(knob_mode2->getWidth()+cSep+10, 0); knobSurroundMode = new CHorizontalSwitch (r, this, kSurroundMode, 2, knob_mode2->getHeight () / 2, 2, knob_mode2, CPoint (0, 0)); getFrame()->addView (knobSurroundMode); getFrame()->remember(); //Surround Width r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundWidth = new CAnimKnob (r, this, kSurroundWidth, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_red, CPoint (0, 0)); getFrame()->addView (knobSurroundWidth); getFrame()->remember(); //Surround Pattern r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundPattern = new CAnimKnob (r, this, kSurroundPattern, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobSurroundPattern); getFrame()->remember(); //Surround Gain r.offset(knob_mode2->getWidth()+cSep, 0); knobSurroundGain = new CAnimKnob (r, this, kSurroundGain, IMAGE, knob_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobSurroundGain); getFrame()->remember(); //Centre Pattern r (0, 0, knob_mode2->getWidth (), knob_mode2->getHeight () / 2); r.offset(hPos2+cSep, ePos2+kOffset); knobCentrePattern = new CAnimKnob (r, this, kCentrePattern, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobCentrePattern); getFrame()->remember(); //Centre Gain r.offset(knob_mode2->getWidth()+cSep, 0); knobCentreGain = new CAnimKnob (r, this, kCentreGain, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobCentreGain); getFrame()->remember(); //SubGain r.offset(knob_mode2->getWidth()+cSep, 0); knobSubGain = new CAnimKnob (r, this, kSubGain, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue_red, CPoint (0, 0)); getFrame()->addView (knobSubGain); getFrame()->remember(); //FC r.offset(knob_mode2->getWidth()+cSep, 0); knobFc = new CAnimKnob (r, this, kFc, IMAGE, knob_red_blue->getHeight () / IMAGE, knob_blue, CPoint (0, 0)); getFrame()->addView (knobFc); getFrame()->remember(); //--CTextLabel-------------------------------------- //Label Mode LabelSize (0, 0, knob_red_blue->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); labelMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelMode->setFont (kNormalFontSmall); labelMode->setFontColor (kLabelText); labelMode->setBackColor (kBlank); labelMode->setFrameColor (kBlank); labelMode->setText("Mode"); getFrame()->addView (labelMode); getFrame()->remember(); //Label Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelWidth->setFont (kNormalFontSmall); labelWidth->setFontColor (kLabelText); labelWidth->setBackColor (kBlank); labelWidth->setFrameColor (kBlank); labelWidth->setText("Width"); getFrame()->addView (labelWidth); getFrame()->remember(); //Label Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelPattern->setFont (kNormalFontSmall); labelPattern->setFontColor (kLabelText); labelPattern->setBackColor (kBlank); labelPattern->setFrameColor (kBlank); labelPattern->setText("Pattern"); getFrame()->addView (labelPattern); getFrame()->remember(); //Label Surround Mode LabelSize.offset (knob_mode2->getWidth()+cSep+10, 0); labelSurMode = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurMode->setFont (kNormalFontSmall); labelSurMode->setFontColor (kLabelText); labelSurMode->setBackColor (kBlank); labelSurMode->setFrameColor (kBlank); labelSurMode->setText("SurMode"); getFrame()->addView (labelSurMode); getFrame()->remember(); //Label Surround Width LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurWidth = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurWidth->setFont (kNormalFontSmall); labelSurWidth->setFontColor (kLabelText); labelSurWidth->setBackColor (kBlank); labelSurWidth->setFrameColor (kBlank); labelSurWidth->setText("SurWidth"); getFrame()->addView (labelSurWidth); getFrame()->remember(); //Label Surround Pattern LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurPattern->setFont (kNormalFontSmall); labelSurPattern->setFontColor (kLabelText); labelSurPattern->setBackColor (kBlank); labelSurPattern->setFrameColor (kBlank); labelSurPattern->setText("SurPattern"); getFrame()->addView (labelSurPattern); getFrame()->remember(); //Label Surround Gain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSurGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSurGain->setFont (kNormalFontSmall); labelSurGain->setFontColor (kLabelText); labelSurGain->setBackColor (kBlank); labelSurGain->setFrameColor (kBlank); labelSurGain->setText("SurGain"); getFrame()->addView (labelSurGain); getFrame()->remember(); //Label Centre Pattern LabelSize(0, 0, knob_mode2->getWidth (), tDepth); LabelSize.offset (hPos2+cSep, ePos2+lOffset); labelCtrPattern = new CTextLabel (LabelSize, 0, 0, kCenterText); labelCtrPattern->setFont (kNormalFontSmall); labelCtrPattern->setFontColor (kLabelText); labelCtrPattern->setBackColor (kBlank); labelCtrPattern->setFrameColor (kBlank); labelCtrPattern->setText("CtrPattern"); getFrame()->addView (labelCtrPattern); getFrame()->remember(); //Label Centre Gain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelCtreGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelCtreGain->setFont (kNormalFontSmall); labelCtreGain->setFontColor (kLabelText); labelCtreGain->setBackColor (kBlank); labelCtreGain->setFrameColor (kBlank); labelCtreGain->setText("CtrGain"); getFrame()->addView (labelCtreGain); getFrame()->remember(); //Label SubGain LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelSubGain = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSubGain->setFont (kNormalFontSmall); labelSubGain->setFontColor (kLabelText); labelSubGain->setBackColor (kBlank); labelSubGain->setFrameColor (kBlank); labelSubGain->setText("SubGain"); getFrame()->addView (labelSubGain); getFrame()->remember(); //Label Fc LabelSize.offset (knob_red_blue->getWidth()+cSep, 0); labelFc = new CTextLabel (LabelSize, 0, 0, kCenterText); labelFc->setFont (kNormalFontSmall); labelFc->setFontColor (kLabelText); labelFc->setBackColor (kBlank); labelFc->setFrameColor (kBlank); labelFc->setText("xOver"); getFrame()->addView (labelFc); getFrame()->remember(); //Label Section LabelSize (0, 0, bControls2->getWidth(), tDepthLarge); LabelSize.offset (hPos2, ePos2+tOffset); decoderLabel1 = new CTextLabel (LabelSize, 0, 0, kCenterText); decoderLabel1->setFont (kNormalFontBig); decoderLabel1->setFontColor (kLabelText); decoderLabel1->setBackColor (kBlank); decoderLabel1->setFrameColor (kBlank); decoderLabel1->setText("5.1 Decoding"); getFrame()->addView (decoderLabel1); getFrame()->remember(); //--CTextLabel-------------------------------------- //Mode Value DisplaySize (0, 0, knob_red_blue->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramMode->setHoriAlign(kCenterText); paramMode->setFont (kNormalFontVerySmall); paramMode->setFontColor (kDisplayText); paramMode->setBackColor (kDisplayBackground); paramMode->setFrameColor (kBlackCColor); getFrame()->addView (paramMode); getFrame()->remember(); //Width Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramWidth->setHoriAlign(kCenterText); paramWidth->setFont (kNormalFontVerySmall); paramWidth->setFontColor (kDisplayText); paramWidth->setBackColor (kDisplayBackground); paramWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramWidth); getFrame()->remember(); //Pattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramPattern->setHoriAlign(kCenterText); paramPattern->setFont (kNormalFontVerySmall); paramPattern->setFontColor (kDisplayText); paramPattern->setBackColor (kDisplayBackground); paramPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramPattern); getFrame()->remember(); //SurMode Value DisplaySize.offset (knob_mode2->getWidth()+cSep+10, 0); paramSurMode = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurMode->setHoriAlign(kCenterText); paramSurMode->setFont (kNormalFontVerySmall); paramSurMode->setFontColor (kDisplayText); paramSurMode->setBackColor (kDisplayBackground); paramSurMode->setFrameColor (kBlackCColor); getFrame()->addView (paramSurMode); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurWidth = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurWidth->setHoriAlign(kCenterText); paramSurWidth->setFont (kNormalFontVerySmall); paramSurWidth->setFontColor (kDisplayText); paramSurWidth->setBackColor (kDisplayBackground); paramSurWidth->setFrameColor (kBlackCColor); getFrame()->addView (paramSurWidth); getFrame()->remember(); //SurPattern Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurPattern->setHoriAlign(kCenterText); paramSurPattern->setFont (kNormalFontVerySmall); paramSurPattern->setFontColor (kDisplayText); paramSurPattern->setBackColor (kDisplayBackground); paramSurPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramSurPattern); getFrame()->remember(); //SurWidth Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSurGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSurGain->setHoriAlign(kCenterText); paramSurGain->setFont (kNormalFontVerySmall); paramSurGain->setFontColor (kDisplayText); paramSurGain->setBackColor (kDisplayBackground); paramSurGain->setFrameColor (kBlackCColor); getFrame()->addView (paramSurGain); getFrame()->remember(); //CtrPattern Value DisplaySize(0, 0, knob_mode2->getWidth (), tDepth); DisplaySize.offset(hPos2+cSep, ePos2+pOffset); paramCtrPattern = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramCtrPattern->setHoriAlign(kCenterText); paramCtrPattern->setFont (kNormalFontVerySmall); paramCtrPattern->setFontColor (kDisplayText); paramCtrPattern->setBackColor (kDisplayBackground); paramCtrPattern->setFrameColor (kBlackCColor); getFrame()->addView (paramCtrPattern); getFrame()->remember(); //CtrGain Value DisplaySize.offset(knob_red_blue->getWidth()+cSep, 0); paramCtrGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramCtrGain->setHoriAlign(kCenterText); paramCtrGain->setFont (kNormalFontVerySmall); paramCtrGain->setFontColor (kDisplayText); paramCtrGain->setBackColor (kDisplayBackground); paramCtrGain->setFrameColor (kBlackCColor); getFrame()->addView (paramCtrGain); getFrame()->remember(); //SubGain Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramSubGain = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramSubGain->setHoriAlign(kCenterText); paramSubGain->setFont (kNormalFontVerySmall); paramSubGain->setFontColor (kDisplayText); paramSubGain->setBackColor (kDisplayBackground); paramSubGain->setFrameColor (kBlackCColor); getFrame()->addView (paramSubGain); getFrame()->remember(); //Fc Value DisplaySize.offset (knob_red_blue->getWidth()+cSep, 0); paramFc = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramFc->setHoriAlign(kCenterText); paramFc->setFont (kNormalFontVerySmall); paramFc->setFontColor (kDisplayText); paramFc->setBackColor (kDisplayBackground); paramFc->setFrameColor (kBlackCColor); getFrame()->addView (paramFc); getFrame()->remember(); controls[kMode] = knobMode; controls[kWidth] = knobWidth; controls[kPattern] = knobPattern; controls[kCentrePattern] = knobCentrePattern; controls[kCentreGain] =knobCentreGain; controls[kSubGain] = knobSubGain; controls[kFc] = knobFc; controls[kSurroundMode] = knobSurroundMode; controls[kSurroundPattern] = knobSurroundPattern; controls[kSurroundWidth] = knobSurroundWidth; controls[kSurroundGain] = knobSurroundGain; //Forget Label, Knobs etc. bControls->forget(); bControls2->forget(); } //------------------------------------------------------------------------------------ void MyEditor::hellerDisplay() { heller1 = new CTextLabel(control_view->getViewSize(), 0, 0, kCenterText); heller1->setBackColor(CColor(23,25,26,200)); heller1->setFont (kNormalFontVeryBig); heller1->setFontColor (CColor (255,255,255,255)); if (myPlot->decoder_mode5x==1) { heller1->setText("Heller 1 Decoder"); } else if (myPlot->decoder_mode5x==2){ heller1->setText("Heller 2 Decoder"); } getFrame()->addView (heller1); getFrame()->remember(); heller2 = new CTextLabel(control_view2->getViewSize(), 0, 0, kCenterText); heller2->setBackColor(CColor(23,25,26,200)); heller2->setFont (kNormalFontVeryBig); heller2->setFontColor (CColor (255,255,255,255)); getFrame()->addView (heller2); getFrame()->remember(); }; //------------------------------------------------------------------------------------ void MyEditor::nameDisplay(CFrame* newFrame) { //FIRST OFF - define a top coordinate int hPos = cSep; int ePos = 426; bName = new CBitmap ("my_name.png"); CRect nameSize = CRect (0, 0, bName->getWidth (),bName->getHeight ()); nameSize.offset(hPos, ePos); CView* name_view = new CView (nameSize); name_view->setBackground (bName); newFrame->addView (name_view); newFrame->remember(); LabelSize (0, 0, 160, tDepth); LabelSize.offset(hPos+cSep, ePos+cSep+tDepth+10); CTextLabel *vendor_version = new CTextLabel(LabelSize, 0, 0, kLeftText); CTextLabel *bitMode = new CTextLabel(LabelSize, 0, 0, kLeftText); char text[100]; int i1=(int)floor(VERSION/1000.0); int i2= (int)floor((VERSION-i1*1000)/100.0); int i3= (int)floor((VERSION-i1*1000-i2*100)/10.0); int i4= (int)floor(VERSION-i1*1000-i2*100-i3*10); sprintf(text, "Version: %d.%d.%d.%d", i1, i2,i3,i4); vendor_version->setText(text); vendor_version->setFont (kNormalFontSmall); vendor_version->setFontColor (kLabelText); vendor_version->setHoriAlign(kLeftText); vendor_version->setBackColor (kBlank); vendor_version->setFrameColor (kBlank); newFrame->addView (vendor_version); newFrame->remember(); LabelSize.offset(0, -(tDepth+10)); bitMode = new CTextLabel(LabelSize, 0, 0, kLeftText); sprintf(text,"Bit Mode: %d", (int)effect->getParameter(102)); bitMode->setText(text); bitMode->setFont (kNormalFontSmall); bitMode->setFontColor (kLabelText); bitMode->setHoriAlign(kLeftText); bitMode->setBackColor (kBlank); bitMode->setFrameColor (kBlank); //Forget labels and background bName->forget (); vendor_version->forget(); newFrame->addView (bitMode); newFrame->remember(); } //------------------------------------------------------------------------------------ void MyEditor::plotDisplay(CFrame* newFrame) { //FIRST OFF - define a top coordinate int hPos = 264; int ePos = cSep; bPlot = new CBitmap ("plot.png"); CRect plotArea (0, 0, bPlot->getWidth (),bPlot->getHeight ()); plotArea.offset(hPos, ePos); CView* plotBackground = new CView (plotArea); plotBackground->setBackground(bPlot); newFrame->addView (plotBackground); newFrame->remember(); CRect plotSize (0, 0, bPlot->getWidth (), bPlot->getHeight ()); plotSize.offset(hPos, ePos); myPlot = new polarPlot(plotSize); newFrame->addView (myPlot); newFrame->remember(); } //------------------------------------------------------------------------------------ void MyEditor::settingsDisplay(CFrame* newFrame) { //FIRST OFF - define a top coordinate int hPos = 402; int ePos = 150; bSettings = new CBitmap ("zoom.png"); CRect plotArea (0, 0, bSettings->getWidth (),bSettings->getHeight ()); plotArea.offset(hPos, ePos); CView* settingsBackground = new CView (plotArea); settingsBackground->setBackground(bSettings); newFrame->addView (settingsBackground); newFrame->remember(); //Decoder Mode Knob r (0, 0, knob_mode5->getWidth (), knob_mode5->getHeight () / 5); r.offset(hPos+cSep, ePos+kOffset); knobDecoder = new CHorizontalSwitch (r, this, kDecoderMode, 5, knob_mode5->getHeight () / 5, 5, knob_mode5, CPoint (0, 0)); newFrame->addView (knobDecoder); newFrame->remember(); //Channel Order Knob r.offset(knob_mode5->getWidth()+cSep, 0); knobChannel = new CHorizontalSwitch (r, this, kChannelOrder, 2, knob_mode2b->getHeight () / 2, 2, knob_mode2b, CPoint (0, 0)); newFrame->addView (knobChannel); newFrame->remember(); //Label Decoder Mode LabelSize (0, 0, knob_mode5->getWidth (), tDepth); LabelSize.offset (hPos+cSep, ePos+lOffset); CTextLabel* labelDecoder = new CTextLabel (LabelSize, 0, 0, kCenterText); labelDecoder->setFont (kNormalFontSmall); labelDecoder->setFontColor (kLabelText); labelDecoder->setBackColor (kBlank); labelDecoder->setFrameColor (kBlank); labelDecoder->setText("Decoding"); newFrame->addView (labelDecoder); newFrame->remember(); //Label Channel Order LabelSize.offset (knob_mode5->getWidth ()+cSep, 0); CTextLabel* labelChannel = new CTextLabel (LabelSize, 0, 0, kCenterText); labelChannel->setFont (kNormalFontSmall); labelChannel->setFontColor (kLabelText); labelChannel->setBackColor (kBlank); labelChannel->setFrameColor (kBlank); labelChannel->setText("Channels"); newFrame->addView (labelChannel); newFrame->remember(); //Decoder Mode Value DisplaySize (0, 0, knob_mode5->getWidth (), tDepth); DisplaySize.offset (hPos+cSep, ePos+pOffset); paramDecoder = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramDecoder->setHoriAlign(kCenterText); paramDecoder->setFont (kNormalFontVerySmall); paramDecoder->setFontColor (kDisplayText); paramDecoder->setBackColor (kDisplayBackground); paramDecoder->setFrameColor (kBlackCColor); newFrame->addView (paramDecoder); newFrame->remember(); //Channel Order Value DisplaySize.offset (knob_mode5->getWidth ()+cSep, 0); paramChannel = new CTextLabel (DisplaySize, 0, 0, kCenterText); paramChannel->setHoriAlign(kCenterText); paramChannel->setFont (kNormalFontVerySmall); paramChannel->setFontColor (kDisplayText); paramChannel->setBackColor (kDisplayBackground); paramChannel->setFrameColor (kBlackCColor); newFrame->addView (paramChannel); newFrame->remember(); //Label Section LabelSize (0, 0, bSettings->getWidth (), tDepthLarge); LabelSize.offset (hPos, ePos+tOffset); CTextLabel* labelSettings = new CTextLabel (LabelSize, 0, 0, kCenterText); labelSettings->setFont (kNormalFontBig); labelSettings->setFontColor (kLabelText); labelSettings->setBackColor (kBlank); labelSettings->setFrameColor (kBlank); labelSettings->setText("Settings"); newFrame->addView (labelSettings); newFrame->remember(); //-- remember our controls so that we can sync them with the state of the effect controls[kDecoderMode] = knobDecoder; controls[kChannelOrder] = knobChannel; //Forget this section's Background, Knobs, Labels bSettings->forget(); settingsBackground->forget(); knobDecoder->forget(); knobChannel->forget(); labelDecoder->forget(); labelChannel->forget(); labelSettings->forget(); paramDecoder->forget(); paramChannel->forget(); } //------------------------------------------------------------------------------------ void MyEditor::clearStereo() { //Section Title getFrame()->removeView(decoderLabel1); //Knob Titles getFrame()->removeView(labelMode); getFrame()->removeView(labelWidth); getFrame()->removeView(labelPattern); getFrame()->removeView(labelRearVerb); getFrame()->removeView(labelHiVerb); //Knob Parameter Values getFrame()->removeView(paramMode); getFrame()->removeView(paramWidth); getFrame()->removeView(paramPattern); getFrame()->removeView(paramRearVerb); getFrame()->removeView(paramHiVerb); //Knobs getFrame()->removeView(knobMode); getFrame()->removeView(knobWidth); getFrame()->removeView(knobPattern); getFrame()->removeView(knobRearVerb); getFrame()->removeView(knobHiVerb); //Section background getFrame()->removeView(control_view); } //------------------------------------------------------------------------------------ void MyEditor::clearTwoOne() { //Section Title getFrame()->removeView(decoderLabel1); //Knob Titles getFrame()->removeView(labelMode); getFrame()->removeView(labelWidth); getFrame()->removeView(labelPattern); getFrame()->removeView(labelRearVerb); getFrame()->removeView(labelHiVerb); getFrame()->removeView(labelSubGain); getFrame()->removeView(labelFc); //Knob Parameter Values getFrame()->removeView(paramMode); getFrame()->removeView(paramWidth); getFrame()->removeView(paramPattern); getFrame()->removeView(paramRearVerb); getFrame()->removeView(paramHiVerb); getFrame()->removeView(paramSubGain); getFrame()->removeView(paramFc); //Knobs getFrame()->removeView(knobWidth); getFrame()->removeView(knobPattern); getFrame()->removeView(knobMode); getFrame()->removeView(knobRearVerb); getFrame()->removeView(knobHiVerb); getFrame()->removeView(knobSubGain); getFrame()->removeView(knobFc); //Section background getFrame()->removeView(control_view); getFrame()->removeView(control_view2); } //------------------------------------------------------------------------------------ void MyEditor::clearFive() { //Section Title getFrame()->removeView(decoderLabel1); //Knob Titles getFrame()->removeView(labelMode); getFrame()->removeView(labelWidth); getFrame()->removeView(labelPattern); getFrame()->removeView(labelSurMode); getFrame()->removeView(labelSurWidth); getFrame()->removeView(labelSurPattern); getFrame()->removeView(labelSurGain); getFrame()->removeView(labelCtrPattern); getFrame()->removeView(labelCtreGain); //Knob Parameter Values getFrame()->removeView(paramMode); getFrame()->removeView(paramWidth); getFrame()->removeView(paramPattern); getFrame()->removeView(paramSurMode); getFrame()->removeView(paramSurWidth); getFrame()->removeView(paramSurPattern); getFrame()->removeView(paramSurGain); getFrame()->removeView(paramCtrPattern); getFrame()->removeView(paramCtrGain); //Knobs getFrame()->removeView(knobWidth); getFrame()->removeView(knobPattern); getFrame()->removeView(knobMode); getFrame()->removeView(knobSurroundMode); getFrame()->removeView(knobSurroundWidth); getFrame()->removeView(knobSurroundPattern); getFrame()->removeView(knobSurroundGain); getFrame()->removeView(knobCentrePattern); getFrame()->removeView(knobCentreGain); //Section background getFrame()->removeView(control_view); getFrame()->removeView(control_view2); } //------------------------------------------------------------------------------------ void MyEditor::clearFour() { //Section Title getFrame()->removeView(decoderLabel1); //Knob Titles getFrame()->removeView(labelMode); getFrame()->removeView(labelWidth); getFrame()->removeView(labelPattern); getFrame()->removeView(labelSurMode); getFrame()->removeView(labelSurWidth); getFrame()->removeView(labelSurPattern); getFrame()->removeView(labelSurGain); //Knob Parameter Values getFrame()->removeView(paramMode); getFrame()->removeView(paramWidth); getFrame()->removeView(paramPattern); getFrame()->removeView(paramSurMode); getFrame()->removeView(paramSurWidth); getFrame()->removeView(paramSurPattern); getFrame()->removeView(paramSurGain); //Knobs getFrame()->removeView(knobWidth); getFrame()->removeView(knobPattern); getFrame()->removeView(knobMode); getFrame()->removeView(knobSurroundMode); getFrame()->removeView(knobSurroundWidth); getFrame()->removeView(knobSurroundPattern); getFrame()->removeView(knobSurroundGain); //Section background getFrame()->removeView(control_view); } //------------------------------------------------------------------------------------ void MyEditor::clearFiveOne() { //Section Title getFrame()->removeView(decoderLabel1); //Knob Titles getFrame()->removeView(labelMode); getFrame()->removeView(labelWidth); getFrame()->removeView(labelPattern); getFrame()->removeView(labelSurMode); getFrame()->removeView(labelSurWidth); getFrame()->removeView(labelSurPattern); getFrame()->removeView(labelSurGain); getFrame()->removeView(labelCtrPattern); getFrame()->removeView(labelCtreGain); getFrame()->removeView(labelSubGain); getFrame()->removeView(labelFc); //Knob Parameter Values getFrame()->removeView(paramMode); getFrame()->removeView(paramWidth); getFrame()->removeView(paramPattern); getFrame()->removeView(paramSurMode); getFrame()->removeView(paramSurWidth); getFrame()->removeView(paramSurPattern); getFrame()->removeView(paramSurGain); getFrame()->removeView(paramCtrPattern); getFrame()->removeView(paramCtrGain); getFrame()->removeView(paramSubGain); getFrame()->removeView(paramFc); //Knobs getFrame()->removeView(knobWidth); getFrame()->removeView(knobPattern); getFrame()->removeView(knobMode); getFrame()->removeView(knobSurroundMode); getFrame()->removeView(knobSurroundWidth); getFrame()->removeView(knobSurroundPattern); getFrame()->removeView(knobSurroundGain); getFrame()->removeView(knobCentrePattern); getFrame()->removeView(knobCentreGain); getFrame()->removeView(knobSubGain); getFrame()->removeView(knobFc); //Section background getFrame()->removeView(control_view); getFrame()->removeView(control_view2); } //------------------------------------------------------------------------------------ void MyEditor::clearHeller() { //Section background getFrame()->removeView(heller1); getFrame()->removeView(heller2); }; //------------------------------------------------------------------------------------ void MyEditor::modeChange() { //First remove the previous mode's view switch (myPlot->decoder_prev) { case 2: clearStereo(); break; case 3: clearTwoOne(); break; case 4: clearFour(); break; case 5: if (myPlot->decoder_mode5x != 0) { clearHeller();//Remove Heller Blank } clearFive(); break; case 6: if (myPlot->decoder_mode5x != 0) { clearHeller();//Remove Heller Blank } clearFiveOne(); break; default: break; } //Second add the new mode's view switch (myPlot->decoder_mode) { case 2: stereoDisplay(); //Sync Parameters for (int i = 5; i <= 9; i++) setParameter (i, effect->getParameter (i)); break; case 3: twooneDisplay(); //Sync Parameters for (int i = 5; i <= 9; i++) setParameter (i, effect->getParameter (i)); for (int i = 12; i <= 13; i++) setParameter (i, effect->getParameter (i)); break; case 4: fourDisplay(); //Sync Parameters for (int i = 5; i <= 7; i++) setParameter (i, effect->getParameter (i)); for (int i = 14; i <= 17; i++) setParameter (i, effect->getParameter (i)); break; case 5: fiveDisplay(); //Sync Parameters for (int i = 5; i <= 7; i++) setParameter (i, effect->getParameter (i)); for (int i = 10; i <= 11; i++) setParameter (i, effect->getParameter (i)); for (int i = 14; i <= 17; i++) setParameter (i, effect->getParameter (i)); if (myPlot->decoder_mode5x != 0) { hellerDisplay();//Blank Out Controls } break; case 6: { fiveoneDisplay(); //Sync Parameters for (int i = 5; i <= 7; i++) setParameter (i, effect->getParameter (i)); for (int i = 10; i <= 17; i++) setParameter (i, effect->getParameter (i)); if (myPlot->decoder_mode5x != 0) { hellerDisplay();//Blank Out Controls } } break; default: break; } myPlot->decoder_prev = myPlot->decoder_mode; } //------------------------------------------------------------------------------------ void MyEditor::suspendDisplay() { suspend = new CTextLabel(frameSize, 0, 0, kCenterText); suspend->setBackColor(CColor(23,25,26,200));//150 suspend->setFont (kNormalFontVeryBig); suspend->setFontColor (CColor (255,255,255,255)); suspend->setText("Currently Suspended"); getFrame()->addView (suspend); getFrame()->remember(); } //------------------------------------------------------------------------------------ void MyEditor::resumeDisplay() { getFrame()->removeView(suspend); } //------------------------------------------------------------------------------------ void MyEditor::valueChanged (CControl* pControl) { //-- valueChanged is called whenever the user changes one of the controls in the User Interface (UI) effect->setParameterAutomated (pControl->getTag (), pControl->getValue ()); //Change the display directly by the knob. Not accurate due to the internal parameter not being used, so the value shown and internally used might not match. setParameter (pControl->getTag (), pControl->getValue ()); } //------------------------------------------------------------------------------------ void MyEditor::setParameter (VstInt32 index, float value) { //-- setParameter is called when the host automates one of the effects parameter. //-- The UI should reflect this state so we set the value of the control to the new value. //-- VSTGUI will automaticly redraw changed controls in the next idle (as this call happens to be in the process thread). if (frame && index < kNumParameters) { bool exists = true; //Checks if control exists, needed for outside automation switch (index) { case kRotate: //exists = getFrame()->isChild(knobRotate); break; case kTilt: //exists = getFrame()->isChild(knobTilt); break; case kTumble: //exists = getFrame()->isChild(knobTumble); break; case kZoom: //exists = getFrame()->isChild(knobZoom); break; case kZoomMethod: //exists = getFrame()->isChild(knobZoomMethod); break; case kMode: if (value<=0.5f) { myPlot->stereo_mode = 0; } else { myPlot->stereo_mode = 1; } myPlot->setDirty(); exists = getFrame()->isChild(knobMode); break; case kWidth: myPlot->width = (double)value*90; myPlot->setDirty(); exists = getFrame()->isChild(knobWidth); break; case kPattern: myPlot->pattern = (double)value; myPlot->setDirty(); exists = getFrame()->isChild(knobPattern); break; case kRearVerb: exists = getFrame()->isChild(knobHiVerb); break; case kHiVerb: exists = getFrame()->isChild(knobRearVerb); break; case kCentrePattern: myPlot->centre_pattern = (double)value; myPlot->setDirty(); exists = getFrame()->isChild(knobCentrePattern); break; case kCentreGain: myPlot->centre_gain = (double)((value*24)-18); myPlot->setDirty(); exists = getFrame()->isChild(knobSurroundWidth); break; case kSubGain: exists = getFrame()->isChild(knobSubGain); break; case kFc: exists = getFrame()->isChild(knobFc); break; case kSurroundMode: if (value<=0.5f) { myPlot->surround_mode = 0; } else { myPlot->surround_mode = 1; } myPlot->setDirty(); exists = getFrame()->isChild(knobSurroundMode); break; case kSurroundPattern: myPlot->surround_pattern = (double)value; myPlot->setDirty(); exists = getFrame()->isChild(knobSurroundPattern); break; case kSurroundWidth: myPlot->surround_width = (double)value*90; myPlot->setDirty(); exists = getFrame()->isChild(knobSurroundWidth); break; case kSurroundGain: myPlot->surround_gain = (double)((value*24)-18); myPlot->setDirty(); exists = getFrame()->isChild(knobSurroundGain); break; case kDecoderMode: if (value<=0.2f) { myPlot->decoder_mode = 2; //Stereo } else if (value>0.2f && value<=0.4f) { myPlot->decoder_mode = 3; //2.1 } else if (value>0.4f && value<=0.6f) { myPlot->decoder_mode = 4; //LCRS } else if (value>0.6f && value<=0.8f) { myPlot->decoder_mode = 5; //5.0 } else if (value>0.8f && value<=1.0f) { myPlot->decoder_mode = 6; //5.1 } myPlot->setDirty(); modeChange(); //exists = getFrame()->isChild(knobDecoder); break; case kChannelOrder: //exists = getFrame()->isChild(knobChannel); default: break; } if (exists) { //ONLY set the objects that are on the screen //First write the value into the GUI value container controls[index]->setValue (value); //Call getParameterDisplay to get the char to display getParameterDisplay (index, &displayText); } } else if (frame && index == 100) { suspendDisplay(); } else if (frame && index == 101) { resumeDisplay(); } else if (frame && index == 103){ myPlot->decoder_mode5x = (int)(value*2); myPlot->setDirty(); //ReDraw plot in next idle modeChange(); } } //------------------------------------------------------------------------ void MyEditor::getParameterDisplay (VstInt32 index, char *text) //GET display value shown for Parameters { effect->getParameterDisplay(index, text); switch (index) { case kRotate : paramRotate->setText(text); break; case kTilt: paramTilt->setText(text); break; case kTumble: paramTumble->setText(text); break; case kZoom: paramZoom->setText(text); break; case kZoomMethod: paramZoomMethod->setText(text); break; case kMode : paramMode->setText(text); break; case kWidth: paramWidth->setText(text); break; case kPattern: paramPattern->setText(text); break; case kRearVerb : paramRearVerb->setText(text); break; case kHiVerb : paramHiVerb->setText(text); break; case kCentrePattern: paramCtrPattern->setText(text); break; case kCentreGain: paramCtrGain->setText(text); break; case kSubGain: paramSubGain->setText(text); break; case kFc: paramFc->setText(text); break; case kSurroundMode: paramSurMode->setText(text); break; case kSurroundPattern: paramSurPattern->setText(text); break; case kSurroundWidth: paramSurWidth->setText(text); break; case kSurroundGain: paramSurGain->setText(text); break; case kDecoderMode: paramDecoder->setText(text); break; case kChannelOrder: paramChannel->setText(text); break; default: break; } }