Mercurial > hg > ambi-plugin
view Source/GUI.cpp @ 13:989865d55c73 tip
Commit.
author | martinm_home <martin.morrell@eecs.qmul.ac.uk> |
---|---|
date | Thu, 27 Sep 2012 23:30:29 +0100 |
parents | 87dc3d84c120 |
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; } }