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