| @@ -16,6 +16,8 @@ | |||||
| #include "DistrhoUI3BandEQ.hpp" | #include "DistrhoUI3BandEQ.hpp" | ||||
| #include "dgl/ImageAboutWindow.hpp" | |||||
| START_NAMESPACE_DISTRHO | START_NAMESPACE_DISTRHO | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -141,7 +143,7 @@ void DistrhoUI3BandEQ::d_programChanged(uint32_t index) | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| // Extended Callbacks | |||||
| // Widget Callbacks | |||||
| void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int) | void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int) | ||||
| { | { | ||||
| @@ -18,7 +18,6 @@ | |||||
| #define __DISTRHO_UI_3BANDEQ_HPP__ | #define __DISTRHO_UI_3BANDEQ_HPP__ | ||||
| #include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
| #include "dgl/ImageAboutWindow.hpp" | |||||
| #include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
| #include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
| #include "dgl/ImageSlider.hpp" | #include "dgl/ImageSlider.hpp" | ||||
| @@ -19,7 +19,7 @@ | |||||
| #define DISTRHO_PLUGIN_NAME "3 Band Splitter" | #define DISTRHO_PLUGIN_NAME "3 Band Splitter" | ||||
| #define DISTRHO_PLUGIN_HAS_UI 0 | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | #define DISTRHO_PLUGIN_IS_SYNTH 0 | ||||
| #define DISTRHO_PLUGIN_NUM_INPUTS 2 | #define DISTRHO_PLUGIN_NUM_INPUTS 2 | ||||
| @@ -16,86 +16,88 @@ | |||||
| #include "DistrhoUI3BandSplitter.hpp" | #include "DistrhoUI3BandSplitter.hpp" | ||||
| #include "dgl/ImageAboutWindow.hpp" | |||||
| START_NAMESPACE_DISTRHO | START_NAMESPACE_DISTRHO | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | ||||
| : OpenGLExtUI() | |||||
| : OpenGLUI() | |||||
| { | { | ||||
| Window* win = getParent(); | |||||
| // background | // background | ||||
| Image bgImage(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR); | |||||
| setBackgroundImage(bgImage); | |||||
| fImgBackground = Image(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR); | |||||
| // sliders | // sliders | ||||
| Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight); | Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight); | ||||
| Point sliderPosStart(57, 43); | |||||
| Point sliderPosEnd(57, 43 + 160); | |||||
| Point<int> sliderPosStart(57, 43); | |||||
| Point<int> sliderPosEnd(57, 43 + 160); | |||||
| // slider Low | // slider Low | ||||
| sliderLow = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd); | |||||
| sliderLow->setRange(-24.0f, 24.0f); | |||||
| sliderLow->setValue(0.0f); | |||||
| addImageSlider(sliderLow); | |||||
| fSliderLow = new ImageSlider(win, sliderImage); | |||||
| fSliderLow->setStartPos(sliderPosStart); | |||||
| fSliderLow->setEndPos(sliderPosEnd); | |||||
| fSliderLow->setRange(-24.0f, 24.0f); | |||||
| fSliderLow->setValue(0.0f); | |||||
| fSliderLow->setCallback(this); | |||||
| // slider Mid | // slider Mid | ||||
| sliderPosStart.setX(120); | sliderPosStart.setX(120); | ||||
| sliderPosEnd.setX(120); | sliderPosEnd.setX(120); | ||||
| sliderMid = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd); | |||||
| sliderMid->setRange(-24.0f, 24.0f); | |||||
| sliderMid->setValue(0.0f); | |||||
| addImageSlider(sliderMid); | |||||
| fSliderMid = new ImageSlider(*fSliderLow); | |||||
| fSliderMid->setStartPos(sliderPosStart); | |||||
| fSliderMid->setEndPos(sliderPosEnd); | |||||
| // slider High | // slider High | ||||
| sliderPosStart.setX(183); | sliderPosStart.setX(183); | ||||
| sliderPosEnd.setX(183); | sliderPosEnd.setX(183); | ||||
| sliderHigh = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd); | |||||
| sliderHigh->setRange(-24.0f, 24.0f); | |||||
| sliderHigh->setValue(0.0f); | |||||
| addImageSlider(sliderHigh); | |||||
| fSliderHigh = new ImageSlider(*fSliderLow); | |||||
| fSliderHigh->setStartPos(sliderPosStart); | |||||
| fSliderHigh->setEndPos(sliderPosEnd); | |||||
| // slider Master | // slider Master | ||||
| sliderPosStart.setX(287); | sliderPosStart.setX(287); | ||||
| sliderPosEnd.setX(287); | sliderPosEnd.setX(287); | ||||
| sliderMaster = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd); | |||||
| sliderMaster->setRange(-24.0f, 24.0f); | |||||
| sliderMaster->setValue(0.0f); | |||||
| addImageSlider(sliderMaster); | |||||
| fSliderMaster = new ImageSlider(*fSliderLow); | |||||
| fSliderMaster->setStartPos(sliderPosStart); | |||||
| fSliderMaster->setEndPos(sliderPosEnd); | |||||
| // knobs | // knobs | ||||
| Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight); | Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight); | ||||
| Point knobPos(66, 270); | |||||
| // knob Low-Mid | // knob Low-Mid | ||||
| knobLowMid = new ImageKnob(knobImage, knobPos); | |||||
| knobLowMid->setRange(0.0f, 1000.0f); | |||||
| knobLowMid->setValue(220.0f); | |||||
| addImageKnob(knobLowMid); | |||||
| fKnobLowMid = new ImageKnob(win, knobImage); | |||||
| fKnobLowMid->setPos(66, 270); | |||||
| fKnobLowMid->setRange(0.0f, 1000.0f); | |||||
| fKnobLowMid->setValue(220.0f); | |||||
| fKnobLowMid->setCallback(this); | |||||
| // knob Mid-High | // knob Mid-High | ||||
| knobPos.setX(160); | |||||
| knobMidHigh = new ImageKnob(knobImage, knobPos); | |||||
| knobMidHigh->setRange(1000.0f, 20000.0f); | |||||
| knobMidHigh->setValue(2000.0f); | |||||
| addImageKnob(knobMidHigh); | |||||
| fKnobMidHigh = new ImageKnob(win, knobImage); | |||||
| fKnobMidHigh->setPos(160, 270); | |||||
| fKnobMidHigh->setRange(1000.0f, 20000.0f); | |||||
| fKnobMidHigh->setValue(2000.0f); | |||||
| fKnobMidHigh->setCallback(this); | |||||
| // about button | // about button | ||||
| Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight); | ||||
| Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight); | ||||
| Point aboutPos(264, 300); | |||||
| buttonAbout = new ImageButton(aboutImageNormal, aboutImageHover, aboutImageHover, aboutPos); | |||||
| addImageButton(buttonAbout); | |||||
| fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
| fButtonAbout->setPos(264, 300); | |||||
| fButtonAbout->setCallback(this); | |||||
| } | } | ||||
| DistrhoUI3BandSplitter::~DistrhoUI3BandSplitter() | DistrhoUI3BandSplitter::~DistrhoUI3BandSplitter() | ||||
| { | { | ||||
| delete sliderLow; | |||||
| delete sliderMid; | |||||
| delete sliderHigh; | |||||
| delete sliderMaster; | |||||
| delete knobLowMid; | |||||
| delete knobMidHigh; | |||||
| delete buttonAbout; | |||||
| delete fSliderLow; | |||||
| delete fSliderMid; | |||||
| delete fSliderHigh; | |||||
| delete fSliderMaster; | |||||
| delete fKnobLowMid; | |||||
| delete fKnobMidHigh; | |||||
| delete fButtonAbout; | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -106,26 +108,24 @@ void DistrhoUI3BandSplitter::d_parameterChanged(uint32_t index, float value) | |||||
| switch (index) | switch (index) | ||||
| { | { | ||||
| case DistrhoPlugin3BandSplitter::paramLow: | case DistrhoPlugin3BandSplitter::paramLow: | ||||
| sliderLow->setValue(value); | |||||
| fSliderLow->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPlugin3BandSplitter::paramMid: | case DistrhoPlugin3BandSplitter::paramMid: | ||||
| sliderMid->setValue(value); | |||||
| fSliderMid->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPlugin3BandSplitter::paramHigh: | case DistrhoPlugin3BandSplitter::paramHigh: | ||||
| sliderHigh->setValue(value); | |||||
| fSliderHigh->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPlugin3BandSplitter::paramMaster: | case DistrhoPlugin3BandSplitter::paramMaster: | ||||
| sliderMaster->setValue(value); | |||||
| fSliderMaster->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPlugin3BandSplitter::paramLowMidFreq: | case DistrhoPlugin3BandSplitter::paramLowMidFreq: | ||||
| knobLowMid->setValue(value); | |||||
| fKnobLowMid->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPlugin3BandSplitter::paramMidHighFreq: | case DistrhoPlugin3BandSplitter::paramMidHighFreq: | ||||
| knobMidHigh->setValue(value); | |||||
| fKnobMidHigh->setValue(value); | |||||
| break; | break; | ||||
| } | } | ||||
| d_uiRepaint(); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::d_programChanged(uint32_t index) | void DistrhoUI3BandSplitter::d_programChanged(uint32_t index) | ||||
| @@ -134,89 +134,93 @@ void DistrhoUI3BandSplitter::d_programChanged(uint32_t index) | |||||
| return; | return; | ||||
| // Default values | // Default values | ||||
| sliderLow->setValue(0.0f); | |||||
| sliderMid->setValue(0.0f); | |||||
| sliderHigh->setValue(0.0f); | |||||
| sliderMaster->setValue(0.0f); | |||||
| knobLowMid->setValue(220.0f); | |||||
| knobMidHigh->setValue(2000.0f); | |||||
| d_uiRepaint(); | |||||
| fSliderLow->setValue(0.0f); | |||||
| fSliderMid->setValue(0.0f); | |||||
| fSliderHigh->setValue(0.0f); | |||||
| fSliderMaster->setValue(0.0f); | |||||
| fKnobLowMid->setValue(220.0f); | |||||
| fKnobMidHigh->setValue(2000.0f); | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| // Extended Callbacks | |||||
| // Widget Callbacks | |||||
| void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button) | |||||
| void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button, int) | |||||
| { | { | ||||
| if (button != buttonAbout) | |||||
| if (button != fButtonAbout) | |||||
| return; | return; | ||||
| Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGRA); | Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGRA); | ||||
| showImageModalDialog(imageAbout, "About"); | |||||
| ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout); | |||||
| aboutWindow.exec(); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob) | ||||
| { | { | ||||
| if (knob == knobLowMid) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, true); | |||||
| else if (knob == knobMidHigh) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, true); | |||||
| if (knob == fKnobLowMid) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, true); | |||||
| else if (knob == fKnobMidHigh) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, true); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob) | void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob) | ||||
| { | { | ||||
| if (knob == knobLowMid) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, false); | |||||
| else if (knob == knobMidHigh) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false); | |||||
| if (knob == fKnobLowMid) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, false); | |||||
| else if (knob == fKnobMidHigh) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value) | void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value) | ||||
| { | { | ||||
| if (knob == knobLowMid) | |||||
| if (knob == fKnobLowMid) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramLowMidFreq, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramLowMidFreq, value); | ||||
| else if (knob == knobMidHigh) | |||||
| else if (knob == fKnobMidHigh) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramMidHighFreq, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramMidHighFreq, value); | ||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageSliderDragStarted(ImageSlider* slider) | void DistrhoUI3BandSplitter::imageSliderDragStarted(ImageSlider* slider) | ||||
| { | { | ||||
| if (slider == sliderLow) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLow, true); | |||||
| else if (slider == sliderMid) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMid, true); | |||||
| else if (slider == sliderHigh) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramHigh, true); | |||||
| else if (slider == sliderMaster) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMaster, true); | |||||
| if (slider == fSliderLow) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramLow, true); | |||||
| else if (slider == fSliderMid) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMid, true); | |||||
| else if (slider == fSliderHigh) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramHigh, true); | |||||
| else if (slider == fSliderMaster) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMaster, true); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageSliderDragFinished(ImageSlider* slider) | void DistrhoUI3BandSplitter::imageSliderDragFinished(ImageSlider* slider) | ||||
| { | { | ||||
| if (slider == sliderLow) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLow, false); | |||||
| else if (slider == sliderMid) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMid, false); | |||||
| else if (slider == sliderHigh) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramHigh, false); | |||||
| else if (slider == sliderMaster) | |||||
| d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMaster, false); | |||||
| if (slider == fSliderLow) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramLow, false); | |||||
| else if (slider == fSliderMid) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMid, false); | |||||
| else if (slider == fSliderHigh) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramHigh, false); | |||||
| else if (slider == fSliderMaster) | |||||
| d_editParameter(DistrhoPlugin3BandSplitter::paramMaster, false); | |||||
| } | } | ||||
| void DistrhoUI3BandSplitter::imageSliderValueChanged(ImageSlider* slider, float value) | void DistrhoUI3BandSplitter::imageSliderValueChanged(ImageSlider* slider, float value) | ||||
| { | { | ||||
| if (slider == sliderLow) | |||||
| if (slider == fSliderLow) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramLow, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramLow, value); | ||||
| else if (slider == sliderMid) | |||||
| else if (slider == fSliderMid) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramMid, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramMid, value); | ||||
| else if (slider == sliderHigh) | |||||
| else if (slider == fSliderHigh) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramHigh, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramHigh, value); | ||||
| else if (slider == sliderMaster) | |||||
| else if (slider == fSliderMaster) | |||||
| d_setParameterValue(DistrhoPlugin3BandSplitter::paramMaster, value); | d_setParameterValue(DistrhoPlugin3BandSplitter::paramMaster, value); | ||||
| } | } | ||||
| void DistrhoUI3BandSplitter::onDisplay() | |||||
| { | |||||
| fImgBackground.draw(); | |||||
| } | |||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| UI* createUI() | UI* createUI() | ||||
| @@ -17,7 +17,10 @@ | |||||
| #ifndef __DISTRHO_UI_3BANDSPLITTER_HPP__ | #ifndef __DISTRHO_UI_3BANDSPLITTER_HPP__ | ||||
| #define __DISTRHO_UI_3BANDSPLITTER_HPP__ | #define __DISTRHO_UI_3BANDSPLITTER_HPP__ | ||||
| #include "DistrhoUIOpenGLExt.h" | |||||
| #include "DistrhoUIOpenGL.hpp" | |||||
| #include "dgl/ImageButton.hpp" | |||||
| #include "dgl/ImageKnob.hpp" | |||||
| #include "dgl/ImageSlider.hpp" | |||||
| #include "DistrhoArtwork3BandSplitter.hpp" | #include "DistrhoArtwork3BandSplitter.hpp" | ||||
| #include "DistrhoPlugin3BandSplitter.hpp" | #include "DistrhoPlugin3BandSplitter.hpp" | ||||
| @@ -26,32 +29,40 @@ START_NAMESPACE_DISTRHO | |||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| class DistrhoUI3BandSplitter : public OpenGLExtUI | |||||
| class DistrhoUI3BandSplitter : public OpenGLUI, | |||||
| public ImageButton::Callback, | |||||
| public ImageKnob::Callback, | |||||
| public ImageSlider::Callback | |||||
| { | { | ||||
| public: | public: | ||||
| DistrhoUI3BandSplitter(); | DistrhoUI3BandSplitter(); | ||||
| ~DistrhoUI3BandSplitter(); | ~DistrhoUI3BandSplitter(); | ||||
| // --------------------------------------------- | |||||
| protected: | protected: | ||||
| // --------------------------------------------- | |||||
| // Information | // Information | ||||
| int d_width() | |||||
| unsigned int d_width() const | |||||
| { | { | ||||
| return DistrhoArtwork3BandSplitter::backgroundWidth; | return DistrhoArtwork3BandSplitter::backgroundWidth; | ||||
| } | } | ||||
| int d_height() | |||||
| unsigned int d_height() const | |||||
| { | { | ||||
| return DistrhoArtwork3BandSplitter::backgroundHeight; | return DistrhoArtwork3BandSplitter::backgroundHeight; | ||||
| } | } | ||||
| // --------------------------------------------- | |||||
| // DSP Callbacks | // DSP Callbacks | ||||
| void d_parameterChanged(uint32_t index, float value); | void d_parameterChanged(uint32_t index, float value); | ||||
| void d_programChanged(uint32_t index); | void d_programChanged(uint32_t index); | ||||
| // Extended Callbacks | |||||
| void imageButtonClicked(ImageButton* button); | |||||
| // --------------------------------------------- | |||||
| // Widget Callbacks | |||||
| void imageButtonClicked(ImageButton* button, int); | |||||
| void imageKnobDragStarted(ImageKnob* knob); | void imageKnobDragStarted(ImageKnob* knob); | ||||
| void imageKnobDragFinished(ImageKnob* knob); | void imageKnobDragFinished(ImageKnob* knob); | ||||
| void imageKnobValueChanged(ImageKnob* knob, float value); | void imageKnobValueChanged(ImageKnob* knob, float value); | ||||
| @@ -59,14 +70,18 @@ protected: | |||||
| void imageSliderDragFinished(ImageSlider* slider); | void imageSliderDragFinished(ImageSlider* slider); | ||||
| void imageSliderValueChanged(ImageSlider* slider, float value); | void imageSliderValueChanged(ImageSlider* slider, float value); | ||||
| void onDisplay(); | |||||
| private: | private: | ||||
| ImageSlider* sliderLow; | |||||
| ImageSlider* sliderMid; | |||||
| ImageSlider* sliderHigh; | |||||
| ImageSlider* sliderMaster; | |||||
| ImageKnob* knobLowMid; | |||||
| ImageKnob* knobMidHigh; | |||||
| ImageButton* buttonAbout; | |||||
| Image fImgBackground; | |||||
| ImageSlider* fSliderLow; | |||||
| ImageSlider* fSliderMid; | |||||
| ImageSlider* fSliderHigh; | |||||
| ImageSlider* fSliderMaster; | |||||
| ImageKnob* fKnobLowMid; | |||||
| ImageKnob* fKnobMidHigh; | |||||
| ImageButton* fButtonAbout; | |||||
| }; | }; | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -86,13 +86,13 @@ $(STATIC): $(OBJS) | |||||
| distrho-3bandeq.cpp.o: distrho-3bandeq.cpp 3bandeq/DistrhoArtwork3BandEQ.cpp 3bandeq/DistrhoPlugin3BandEQ.cpp 3bandeq/DistrhoUI3BandEQ.cpp distrho/DistrhoPluginCarla.cpp | distrho-3bandeq.cpp.o: distrho-3bandeq.cpp 3bandeq/DistrhoArtwork3BandEQ.cpp 3bandeq/DistrhoPlugin3BandEQ.cpp 3bandeq/DistrhoUI3BandEQ.cpp distrho/DistrhoPluginCarla.cpp | ||||
| $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandeq -DDISTRHO_NAMESPACE=DISTRHO_3BandEQ -c -o $@ | $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandeq -DDISTRHO_NAMESPACE=DISTRHO_3BandEQ -c -o $@ | ||||
| distrho-3bandsplitter.cpp.o: distrho-3bandsplitter.cpp distrho/DistrhoPluginCarla.cpp | |||||
| distrho-3bandsplitter.cpp.o: distrho-3bandsplitter.cpp 3bandsplitter/DistrhoArtwork3BandSplitter.cpp 3bandsplitter/DistrhoPlugin3BandSplitter.cpp 3bandsplitter/DistrhoUI3BandSplitter.cpp distrho/DistrhoPluginCarla.cpp | |||||
| $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandsplitter -DDISTRHO_NAMESPACE=DISTRHO_3BandSplitter -c -o $@ | $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandsplitter -DDISTRHO_NAMESPACE=DISTRHO_3BandSplitter -c -o $@ | ||||
| distrho-pingpongpan.cpp.o: distrho-pingpongpan.cpp distrho/DistrhoPluginCarla.cpp | |||||
| distrho-pingpongpan.cpp.o: distrho-pingpongpan.cpp pingpongpan/DistrhoArtworkPingPongPan.cpp pingpongpan/DistrhoPluginPingPongPan.cpp pingpongpan/DistrhoUIPingPongPan.cpp distrho/DistrhoPluginCarla.cpp | |||||
| $(CXX) $< $(BUILD_CXX_FLAGS) -Ipingpongpan -DDISTRHO_NAMESPACE=DISTRHO_PingPongPan -c -o $@ | $(CXX) $< $(BUILD_CXX_FLAGS) -Ipingpongpan -DDISTRHO_NAMESPACE=DISTRHO_PingPongPan -c -o $@ | ||||
| distrho-notes.cpp.o: distrho-notes.cpp distrho/DistrhoPluginCarla.cpp moc_DistrhoUINotes.cpp moc_ParamProgressBar.cpp | |||||
| distrho-notes.cpp.o: distrho-notes.cpp notes/DistrhoPluginNotes.cpp notes/DistrhoUINotes.cpp distrho/DistrhoPluginCarla.cpp moc_DistrhoUINotes.cpp moc_ParamProgressBar.cpp | |||||
| $(CXX) $< $(BUILD_CXX_FLAGS) -Inotes -DDISTRHO_NAMESPACE=DISTRHO_Notes -c -o $@ | $(CXX) $< $(BUILD_CXX_FLAGS) -Inotes -DDISTRHO_NAMESPACE=DISTRHO_Notes -c -o $@ | ||||
| zynaddsubfx.cpp.o: zynaddsubfx.cpp | zynaddsubfx.cpp.o: zynaddsubfx.cpp | ||||
| @@ -18,9 +18,9 @@ | |||||
| #include "CarlaNative.hpp" | #include "CarlaNative.hpp" | ||||
| // Plugin Code | // Plugin Code | ||||
| //#include "3bandsplitter/DistrhoArtwork3BandSplitter.cpp" | |||||
| #include "3bandsplitter/DistrhoArtwork3BandSplitter.cpp" | |||||
| #include "3bandsplitter/DistrhoPlugin3BandSplitter.cpp" | #include "3bandsplitter/DistrhoPlugin3BandSplitter.cpp" | ||||
| //#include "3bandsplitter/DistrhoUI3BandSplitter.cpp" | |||||
| #include "3bandsplitter/DistrhoUI3BandSplitter.cpp" | |||||
| // Carla DISTRHO Plugin | // Carla DISTRHO Plugin | ||||
| #include "distrho/DistrhoPluginCarla.cpp" | #include "distrho/DistrhoPluginCarla.cpp" | ||||
| @@ -31,7 +31,7 @@ START_NAMESPACE_DISTRHO | |||||
| static const PluginDescriptor tBandSplitterDesc = { | static const PluginDescriptor tBandSplitterDesc = { | ||||
| /* category */ ::PLUGIN_CATEGORY_EQ, | /* category */ ::PLUGIN_CATEGORY_EQ, | ||||
| /* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE /*| ::PLUGIN_HAS_GUI*/), | |||||
| /* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE | ::PLUGIN_HAS_GUI), | |||||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | ||||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | ||||
| /* midiIns */ 0, | /* midiIns */ 0, | ||||
| @@ -18,9 +18,9 @@ | |||||
| #include "CarlaNative.hpp" | #include "CarlaNative.hpp" | ||||
| // Plugin Code | // Plugin Code | ||||
| //#include "pingpongpan/DistrhoArtworkPingPongPan.cpp" | |||||
| #include "pingpongpan/DistrhoArtworkPingPongPan.cpp" | |||||
| #include "pingpongpan/DistrhoPluginPingPongPan.cpp" | #include "pingpongpan/DistrhoPluginPingPongPan.cpp" | ||||
| //#include "pingpongpan/DistrhoUIPingPongPan.cpp" | |||||
| #include "pingpongpan/DistrhoUIPingPongPan.cpp" | |||||
| // Carla DISTRHO Plugin | // Carla DISTRHO Plugin | ||||
| #include "distrho/DistrhoPluginCarla.cpp" | #include "distrho/DistrhoPluginCarla.cpp" | ||||
| @@ -31,7 +31,7 @@ START_NAMESPACE_DISTRHO | |||||
| static PluginDescriptor tBandEqDesc = { | static PluginDescriptor tBandEqDesc = { | ||||
| /* category */ ::PLUGIN_CATEGORY_UTILITY, | /* category */ ::PLUGIN_CATEGORY_UTILITY, | ||||
| /* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE /*| ::PLUGIN_HAS_GUI*/), | |||||
| /* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE | ::PLUGIN_HAS_GUI), | |||||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | ||||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | ||||
| /* midiIns */ 0, | /* midiIns */ 0, | ||||
| @@ -19,7 +19,7 @@ | |||||
| #define DISTRHO_PLUGIN_NAME "Ping Pong Pan" | #define DISTRHO_PLUGIN_NAME "Ping Pong Pan" | ||||
| #define DISTRHO_PLUGIN_HAS_UI 0 | |||||
| #define DISTRHO_PLUGIN_HAS_UI 1 | |||||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | #define DISTRHO_PLUGIN_IS_SYNTH 0 | ||||
| #define DISTRHO_PLUGIN_NUM_INPUTS 2 | #define DISTRHO_PLUGIN_NUM_INPUTS 2 | ||||
| @@ -16,47 +16,50 @@ | |||||
| #include "DistrhoUIPingPongPan.hpp" | #include "DistrhoUIPingPongPan.hpp" | ||||
| #include "dgl/ImageAboutWindow.hpp" | |||||
| START_NAMESPACE_DISTRHO | START_NAMESPACE_DISTRHO | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| DistrhoUIPingPongPan::DistrhoUIPingPongPan() | DistrhoUIPingPongPan::DistrhoUIPingPongPan() | ||||
| : OpenGLExtUI() | |||||
| : OpenGLUI() | |||||
| { | { | ||||
| Window* win = getParent(); | |||||
| // background | // background | ||||
| Image bgImage(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGRA); | |||||
| setBackgroundImage(bgImage); | |||||
| fImgBackground = Image(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGRA); | |||||
| // knobs | // knobs | ||||
| Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight); | Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight); | ||||
| Point knobPos(136, 30); | |||||
| // knob Low-Mid | // knob Low-Mid | ||||
| knobFreq = new ImageKnob(knobImage, knobPos); | |||||
| knobFreq->setRange(0.0f, 100.0f); | |||||
| knobFreq->setValue(50.0f); | |||||
| addImageKnob(knobFreq); | |||||
| fKnobFreq = new ImageKnob(win, knobImage); | |||||
| fKnobFreq->setPos(136, 30); | |||||
| fKnobFreq->setRange(0.0f, 100.0f); | |||||
| fKnobFreq->setValue(50.0f); | |||||
| fKnobFreq->setCallback(this); | |||||
| // knob Mid-High | // knob Mid-High | ||||
| knobPos.setX(258); | |||||
| knobWidth = new ImageKnob(knobImage, knobPos); | |||||
| knobWidth->setRange(0.0f, 100.0f); | |||||
| knobWidth->setValue(75.0f); | |||||
| addImageKnob(knobWidth); | |||||
| fKnobWidth = new ImageKnob(win, knobImage); | |||||
| fKnobWidth->setPos(258, 30); | |||||
| fKnobWidth->setRange(0.0f, 100.0f); | |||||
| fKnobWidth->setValue(75.0f); | |||||
| fKnobWidth->setCallback(this); | |||||
| // about button | // about button | ||||
| Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight); | ||||
| Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight); | ||||
| Point aboutPos(25, 23); | |||||
| buttonAbout = new ImageButton(aboutImageNormal, aboutImageHover, aboutImageHover, aboutPos); | |||||
| addImageButton(buttonAbout); | |||||
| fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
| fButtonAbout->setPos(25, 23); | |||||
| fButtonAbout->setCallback(this); | |||||
| } | } | ||||
| DistrhoUIPingPongPan::~DistrhoUIPingPongPan() | DistrhoUIPingPongPan::~DistrhoUIPingPongPan() | ||||
| { | { | ||||
| delete knobFreq; | |||||
| delete knobWidth; | |||||
| delete buttonAbout; | |||||
| delete fKnobFreq; | |||||
| delete fKnobWidth; | |||||
| delete fButtonAbout; | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -67,14 +70,12 @@ void DistrhoUIPingPongPan::d_parameterChanged(uint32_t index, float value) | |||||
| switch (index) | switch (index) | ||||
| { | { | ||||
| case DistrhoPluginPingPongPan::paramFreq: | case DistrhoPluginPingPongPan::paramFreq: | ||||
| knobFreq->setValue(value); | |||||
| fKnobFreq->setValue(value); | |||||
| break; | break; | ||||
| case DistrhoPluginPingPongPan::paramWidth: | case DistrhoPluginPingPongPan::paramWidth: | ||||
| knobWidth->setValue(value); | |||||
| fKnobWidth->setValue(value); | |||||
| break; | break; | ||||
| } | } | ||||
| d_uiRepaint(); | |||||
| } | } | ||||
| void DistrhoUIPingPongPan::d_programChanged(uint32_t index) | void DistrhoUIPingPongPan::d_programChanged(uint32_t index) | ||||
| @@ -83,54 +84,58 @@ void DistrhoUIPingPongPan::d_programChanged(uint32_t index) | |||||
| return; | return; | ||||
| // Default values | // Default values | ||||
| knobFreq->setValue(50.0f); | |||||
| knobWidth->setValue(75.0f); | |||||
| d_uiRepaint(); | |||||
| fKnobFreq->setValue(50.0f); | |||||
| fKnobWidth->setValue(75.0f); | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| // Extended Callbacks | |||||
| // Widget Callbacks | |||||
| void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button) | |||||
| void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button, int) | |||||
| { | { | ||||
| if (button != buttonAbout) | |||||
| if (button != fButtonAbout) | |||||
| return; | return; | ||||
| Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGRA); | Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGRA); | ||||
| showImageModalDialog(imageAbout, "About"); | |||||
| ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout); | |||||
| aboutWindow.exec(); | |||||
| } | } | ||||
| void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob) | ||||
| { | { | ||||
| if (knob == knobFreq) | |||||
| d_uiEditParameter(DistrhoPluginPingPongPan::paramFreq, true); | |||||
| else if (knob == knobWidth) | |||||
| d_uiEditParameter(DistrhoPluginPingPongPan::paramWidth, true); | |||||
| if (knob == fKnobFreq) | |||||
| d_editParameter(DistrhoPluginPingPongPan::paramFreq, true); | |||||
| else if (knob == fKnobWidth) | |||||
| d_editParameter(DistrhoPluginPingPongPan::paramWidth, true); | |||||
| } | } | ||||
| void DistrhoUIPingPongPan::imageKnobDragFinished(ImageKnob* knob) | void DistrhoUIPingPongPan::imageKnobDragFinished(ImageKnob* knob) | ||||
| { | { | ||||
| if (knob == knobFreq) | |||||
| d_uiEditParameter(DistrhoPluginPingPongPan::paramFreq, false); | |||||
| else if (knob == knobWidth) | |||||
| d_uiEditParameter(DistrhoPluginPingPongPan::paramWidth, false); | |||||
| if (knob == fKnobFreq) | |||||
| d_editParameter(DistrhoPluginPingPongPan::paramFreq, false); | |||||
| else if (knob == fKnobWidth) | |||||
| d_editParameter(DistrhoPluginPingPongPan::paramWidth, false); | |||||
| } | } | ||||
| void DistrhoUIPingPongPan::imageKnobValueChanged(ImageKnob* knob, float value) | void DistrhoUIPingPongPan::imageKnobValueChanged(ImageKnob* knob, float value) | ||||
| { | { | ||||
| if (knob == knobFreq) | |||||
| if (knob == fKnobFreq) | |||||
| d_setParameterValue(DistrhoPluginPingPongPan::paramFreq, value); | d_setParameterValue(DistrhoPluginPingPongPan::paramFreq, value); | ||||
| else if (knob == knobWidth) | |||||
| else if (knob == fKnobWidth) | |||||
| d_setParameterValue(DistrhoPluginPingPongPan::paramWidth, value); | d_setParameterValue(DistrhoPluginPingPongPan::paramWidth, value); | ||||
| } | } | ||||
| void DistrhoUIPingPongPan::onDisplay() | |||||
| { | |||||
| fImgBackground.draw(); | |||||
| } | |||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| UI* createUI() | UI* createUI() | ||||
| { | { | ||||
| return new DistrhoUIPingPongPan; | |||||
| return new DistrhoUIPingPongPan(); | |||||
| } | } | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -17,7 +17,9 @@ | |||||
| #ifndef __DISTRHO_UI_PINGPONGPAN_HPP__ | #ifndef __DISTRHO_UI_PINGPONGPAN_HPP__ | ||||
| #define __DISTRHO_UI_PINGPONGPAN_HPP__ | #define __DISTRHO_UI_PINGPONGPAN_HPP__ | ||||
| #include "DistrhoUIOpenGLExt.h" | |||||
| #include "DistrhoUIOpenGL.hpp" | |||||
| #include "dgl/ImageButton.hpp" | |||||
| #include "dgl/ImageKnob.hpp" | |||||
| #include "DistrhoArtworkPingPongPan.hpp" | #include "DistrhoArtworkPingPongPan.hpp" | ||||
| #include "DistrhoPluginPingPongPan.hpp" | #include "DistrhoPluginPingPongPan.hpp" | ||||
| @@ -26,40 +28,51 @@ START_NAMESPACE_DISTRHO | |||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| class DistrhoUIPingPongPan : public OpenGLExtUI | |||||
| class DistrhoUIPingPongPan : public OpenGLUI, | |||||
| public ImageButton::Callback, | |||||
| public ImageKnob::Callback | |||||
| { | { | ||||
| public: | public: | ||||
| DistrhoUIPingPongPan(); | DistrhoUIPingPongPan(); | ||||
| ~DistrhoUIPingPongPan(); | ~DistrhoUIPingPongPan(); | ||||
| // --------------------------------------------- | |||||
| protected: | protected: | ||||
| // --------------------------------------------- | |||||
| // Information | // Information | ||||
| int d_width() | |||||
| unsigned int d_width() const | |||||
| { | { | ||||
| return DistrhoArtworkPingPongPan::backgroundWidth; | return DistrhoArtworkPingPongPan::backgroundWidth; | ||||
| } | } | ||||
| int d_height() | |||||
| unsigned int d_height() const | |||||
| { | { | ||||
| return DistrhoArtworkPingPongPan::backgroundHeight; | return DistrhoArtworkPingPongPan::backgroundHeight; | ||||
| } | } | ||||
| // --------------------------------------------- | |||||
| // DSP Callbacks | // DSP Callbacks | ||||
| void d_parameterChanged(uint32_t index, float value); | void d_parameterChanged(uint32_t index, float value); | ||||
| void d_programChanged(uint32_t index); | void d_programChanged(uint32_t index); | ||||
| // Extended Callbacks | |||||
| void imageButtonClicked(ImageButton* button); | |||||
| // --------------------------------------------- | |||||
| // Widget Callbacks | |||||
| void imageButtonClicked(ImageButton* button, int); | |||||
| void imageKnobDragStarted(ImageKnob* knob); | void imageKnobDragStarted(ImageKnob* knob); | ||||
| void imageKnobDragFinished(ImageKnob* knob); | void imageKnobDragFinished(ImageKnob* knob); | ||||
| void imageKnobValueChanged(ImageKnob* knob, float value); | void imageKnobValueChanged(ImageKnob* knob, float value); | ||||
| void onDisplay(); | |||||
| private: | private: | ||||
| ImageKnob* knobFreq; | |||||
| ImageKnob* knobWidth; | |||||
| ImageButton* buttonAbout; | |||||
| Image fImgBackground; | |||||
| ImageKnob* fKnobFreq; | |||||
| ImageKnob* fKnobWidth; | |||||
| ImageButton* fButtonAbout; | |||||
| }; | }; | ||||
| // ------------------------------------------------- | // ------------------------------------------------- | ||||
| @@ -19,7 +19,6 @@ | |||||
| #include "../Window.hpp" | #include "../Window.hpp" | ||||
| #include <cassert> | #include <cassert> | ||||
| #include <cstdio> | |||||
| START_NAMESPACE_DGL | START_NAMESPACE_DGL | ||||
| @@ -216,7 +215,6 @@ bool Widget::onSpecial(bool, Key) | |||||
| void Widget::onReshape(int width, int height) | void Widget::onReshape(int width, int height) | ||||
| { | { | ||||
| printf("Reshape(%i, %i)\n", width, height); | |||||
| glEnable(GL_BLEND); | glEnable(GL_BLEND); | ||||
| glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | ||||
| glMatrixMode(GL_PROJECTION); | glMatrixMode(GL_PROJECTION); | ||||
| @@ -243,7 +243,10 @@ public: | |||||
| void idle() | void idle() | ||||
| { | { | ||||
| #ifdef DISTRHO_UI_QT4 | #ifdef DISTRHO_UI_QT4 | ||||
| kUi->d_uiIdle(); | |||||
| assert(kUi != nullptr); | |||||
| if (kUi != nullptr) | |||||
| kUi->d_uiIdle(); | |||||
| #else | #else | ||||
| glApp.idle(); | glApp.idle(); | ||||
| #endif | #endif | ||||