diff options
author | Damien Zammit <damien@zamaudio.com> | 2014-04-16 04:25:41 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2014-04-16 04:25:41 +1000 |
commit | 666743d39b7ae1fb456b084e8115c43750ed3996 (patch) | |
tree | 1da858a8c5b0caba8dff1e22c39bf75e1478c0b9 /plugins/ZamTube | |
parent | bb6dff095c64f4f00289bf2aeb174cf532822a4c (diff) |
Added ZamTube UI
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Diffstat (limited to 'plugins/ZamTube')
-rw-r--r-- | plugins/ZamTube/DistrhoPluginInfo.h | 4 | ||||
-rw-r--r-- | plugins/ZamTube/Makefile | 2 | ||||
-rw-r--r-- | plugins/ZamTube/ZamTubeUI.cpp | 161 | ||||
-rw-r--r-- | plugins/ZamTube/ZamTubeUI.hpp | 28 |
4 files changed, 142 insertions, 53 deletions
diff --git a/plugins/ZamTube/DistrhoPluginInfo.h b/plugins/ZamTube/DistrhoPluginInfo.h index 5b01eef..fee85f7 100644 --- a/plugins/ZamTube/DistrhoPluginInfo.h +++ b/plugins/ZamTube/DistrhoPluginInfo.h @@ -20,14 +20,14 @@ #define DISTRHO_PLUGIN_NAME "ZamTube" -#define DISTRHO_PLUGIN_HAS_UI 0 +#define DISTRHO_PLUGIN_HAS_UI 1 #define DISTRHO_PLUGIN_IS_SYNTH 0 #define DISTRHO_PLUGIN_NUM_INPUTS 1 #define DISTRHO_PLUGIN_NUM_OUTPUTS 1 #define DISTRHO_PLUGIN_WANT_LATENCY 0 -#define DISTRHO_PLUGIN_WANT_PROGRAMS 0 +#define DISTRHO_PLUGIN_WANT_PROGRAMS 1 #define DISTRHO_PLUGIN_WANT_STATE 0 #define DISTRHO_PLUGIN_WANT_TIMEPOS 0 diff --git a/plugins/ZamTube/Makefile b/plugins/ZamTube/Makefile index 01a4e07..8f7ebb7 100644 --- a/plugins/ZamTube/Makefile +++ b/plugins/ZamTube/Makefile @@ -23,7 +23,7 @@ OBJS_UI = \ # -------------------------------------------------------------- # No custom UI for now -TARGET_NOUI = true +#TARGET_NOUI = true # -------------------------------------------------------------- # Do some magic diff --git a/plugins/ZamTube/ZamTubeUI.cpp b/plugins/ZamTube/ZamTubeUI.cpp index a097a37..7e3d852 100644 --- a/plugins/ZamTube/ZamTubeUI.cpp +++ b/plugins/ZamTube/ZamTubeUI.cpp @@ -24,39 +24,78 @@ START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- ZamTubeUI::ZamTubeUI() - : UI(), - fAboutWindow(this) + : UI() { // background - fImgBackground = Image(ZamTubeArtwork::backgroundData, ZamTubeArtwork::backgroundWidth, ZamTubeArtwork::backgroundHeight, GL_BGR); + fImgBackground = Image(ZamTubeArtwork::zamtubeData, ZamTubeArtwork::zamtubeWidth, ZamTubeArtwork::zamtubeHeight, GL_BGR); - // about - Image imageAbout(ZamTubeArtwork::aboutData, ZamTubeArtwork::aboutWidth, ZamTubeArtwork::aboutHeight, GL_BGR); - fAboutWindow.setImage(imageAbout); - - // knobs + // knob Image knobImage(ZamTubeArtwork::knobData, ZamTubeArtwork::knobWidth, ZamTubeArtwork::knobHeight); - // knob - fKnobAttack = new ImageKnob(this, knobImage); - fKnobAttack->setPos(222, 74); - fKnobAttack->setRange(0.1f, 100.0f); - fKnobAttack->setStep(0.1f); - fKnobAttack->setValue(10.0f); - fKnobAttack->setRotationAngle(270); - fKnobAttack->setCallback(this); - - // about button - Image aboutImageNormal(ZamTubeArtwork::aboutButtonNormalData, ZamTubeArtwork::aboutButtonNormalWidth, ZamTubeArtwork::aboutButtonNormalHeight); - Image aboutImageHover(ZamTubeArtwork::aboutButtonHoverData, ZamTubeArtwork::aboutButtonHoverWidth, ZamTubeArtwork::aboutButtonHoverHeight); - fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); - fButtonAbout->setPos(390, 20); - fButtonAbout->setCallback(this); + // notch slider + Image notchImage(ZamTubeArtwork::notchData, ZamTubeArtwork::notchWidth, ZamTubeArtwork::notchHeight); + + // knobs + fKnobTube = new ImageKnob(this, knobImage); + fKnobTube->setPos(177, 76); + fKnobTube->setRange(0.f, 30.0f); + fKnobTube->setStep(0.1f); + fKnobTube->setValue(0.0f); + fKnobTube->setRotationAngle(240); + fKnobTube->setCallback(this); + + fKnobBass = new ImageKnob(this, knobImage); + fKnobBass->setPos(63, 141); + fKnobBass->setRange(0.f, 1.0f); + fKnobBass->setStep(0.01f); + fKnobBass->setValue(0.5f); + fKnobBass->setRotationAngle(240); + fKnobBass->setCallback(this); + + fKnobMids = new ImageKnob(this, knobImage); + fKnobMids->setPos(63, 87); + fKnobMids->setRange(0.f, 1.0f); + fKnobMids->setStep(0.01f); + fKnobMids->setValue(0.5f); + fKnobMids->setRotationAngle(240); + fKnobMids->setCallback(this); + + fKnobTreb = new ImageKnob(this, knobImage); + fKnobTreb->setPos(63, 33); + fKnobTreb->setRange(0.f, 1.0f); + fKnobTreb->setStep(0.01f); + fKnobTreb->setValue(0.0f); + fKnobTreb->setRotationAngle(240); + fKnobTreb->setCallback(this); + + fKnobGain = new ImageKnob(this, knobImage); + fKnobGain->setPos(63, 231); + fKnobGain->setRange(-30.f, 30.0f); + fKnobGain->setStep(1.f); + fKnobGain->setValue(0.0f); + fKnobGain->setRotationAngle(240); + fKnobGain->setCallback(this); + + Point<int> notchPosStart(289,5); + Point<int> notchPosEnd(289,5+280); + + fSliderNotch = new ImageSlider(this, notchImage); + fSliderNotch->setStartPos(notchPosStart); + fSliderNotch->setEndPos(notchPosEnd); + fSliderNotch->setRange(0.f, 24.f); + fSliderNotch->setStep(1.f); + fSliderNotch->setValue(0.f); + fSliderNotch->setCallback(this); } ZamTubeUI::~ZamTubeUI() { - delete fKnobAttack; + delete fKnobTube; + delete fKnobBass; + delete fKnobMids; + delete fKnobTreb; + delete fKnobGain; + delete fSliderNotch; } // ----------------------------------------------------------------------- @@ -67,7 +106,19 @@ void ZamTubeUI::d_parameterChanged(uint32_t index, float value) switch (index) { case ZamTubePlugin::paramTubedrive: - fKnobAttack->setValue(value); + fKnobTube->setValue(value); + break; + case ZamTubePlugin::paramBass: + fKnobBass->setValue(value); + break; + case ZamTubePlugin::paramMiddle: + fKnobMids->setValue(value); + break; + case ZamTubePlugin::paramTreble: + fKnobTreb->setValue(value); + break; + case ZamTubePlugin::paramGain: + fKnobGain->setValue(value); break; } } @@ -78,36 +129,72 @@ void ZamTubeUI::d_programChanged(uint32_t index) return; // Default values - fKnobAttack->setValue(10.0f); + fKnobTube->setValue(0.0f); + fKnobBass->setValue(0.5f); + fKnobMids->setValue(0.5f); + fKnobTreb->setValue(0.0f); + fKnobGain->setValue(0.0f); + fSliderNotch->setValue(0.0f); } // ----------------------------------------------------------------------- // Widget Callbacks -void ZamTubeUI::imageButtonClicked(ImageButton* button, int) -{ - if (button != fButtonAbout) - return; - - fAboutWindow.exec(); -} - void ZamTubeUI::imageKnobDragStarted(ImageKnob* knob) { - if (knob == fKnobAttack) + if (knob == fKnobTube) d_editParameter(ZamTubePlugin::paramTubedrive, true); + else if (knob == fKnobBass) + d_editParameter(ZamTubePlugin::paramBass, true); + else if (knob == fKnobMids) + d_editParameter(ZamTubePlugin::paramMiddle, true); + else if (knob == fKnobTreb) + d_editParameter(ZamTubePlugin::paramTreble, true); + else if (knob == fKnobGain) + d_editParameter(ZamTubePlugin::paramGain, true); } void ZamTubeUI::imageKnobDragFinished(ImageKnob* knob) { - if (knob == fKnobAttack) + if (knob == fKnobTube) d_editParameter(ZamTubePlugin::paramTubedrive, false); + else if (knob == fKnobBass) + d_editParameter(ZamTubePlugin::paramBass, false); + else if (knob == fKnobMids) + d_editParameter(ZamTubePlugin::paramMiddle, false); + else if (knob == fKnobTreb) + d_editParameter(ZamTubePlugin::paramTreble, false); + else if (knob == fKnobGain) + d_editParameter(ZamTubePlugin::paramGain, false); } void ZamTubeUI::imageKnobValueChanged(ImageKnob* knob, float value) { - if (knob == fKnobAttack) + if (knob == fKnobTube) d_setParameterValue(ZamTubePlugin::paramTubedrive, value); + else if (knob == fKnobBass) + d_setParameterValue(ZamTubePlugin::paramBass, value); + else if (knob == fKnobMids) + d_setParameterValue(ZamTubePlugin::paramMiddle, value); + else if (knob == fKnobTreb) + d_setParameterValue(ZamTubePlugin::paramTreble, value); + else if (knob == fKnobGain) + d_setParameterValue(ZamTubePlugin::paramGain, value); +} + +void ZamTubeUI::imageSliderDragStarted(ImageSlider*) +{ + d_editParameter(ZamTubePlugin::paramCabinet, true); +} + +void ZamTubeUI::imageSliderDragFinished(ImageSlider*) +{ + d_editParameter(ZamTubePlugin::paramCabinet, false); +} + +void ZamTubeUI::imageSliderValueChanged(ImageSlider*, float value) +{ + d_setParameterValue(ZamTubePlugin::paramCabinet, value); } void ZamTubeUI::onDisplay() diff --git a/plugins/ZamTube/ZamTubeUI.hpp b/plugins/ZamTube/ZamTubeUI.hpp index f80834f..f73dc5d 100644 --- a/plugins/ZamTube/ZamTubeUI.hpp +++ b/plugins/ZamTube/ZamTubeUI.hpp @@ -20,8 +20,6 @@ #include "DistrhoUI.hpp" -#include "ImageAboutWindow.hpp" -#include "ImageButton.hpp" #include "ImageKnob.hpp" #include "ImageSlider.hpp" @@ -29,17 +27,16 @@ #include "ZamTubePlugin.hpp" using DGL::Image; -using DGL::ImageAboutWindow; -using DGL::ImageButton; using DGL::ImageKnob; +using DGL::ImageSlider; START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- class ZamTubeUI : public UI, - public ImageButton::Callback, - public ImageKnob::Callback + public ImageKnob::Callback, + public ImageSlider::Callback { public: ZamTubeUI(); @@ -51,12 +48,12 @@ protected: unsigned int d_getWidth() const noexcept override { - return ZamTubeArtwork::backgroundWidth; + return ZamTubeArtwork::zamtubeWidth; } unsigned int d_getHeight() const noexcept override { - return ZamTubeArtwork::backgroundHeight; + return ZamTubeArtwork::zamtubeHeight; } // ------------------------------------------------------------------- @@ -68,19 +65,24 @@ protected: // ------------------------------------------------------------------- // Widget Callbacks - void imageButtonClicked(ImageButton* button, int) override; void imageKnobDragStarted(ImageKnob* knob) override; void imageKnobDragFinished(ImageKnob* knob) override; void imageKnobValueChanged(ImageKnob* knob, float value) override; + void imageSliderDragStarted(ImageSlider* slider) override; + void imageSliderDragFinished(ImageSlider* slider) override; + void imageSliderValueChanged(ImageSlider* slider, float value) override; + void onDisplay() override; private: Image fImgBackground; - ImageAboutWindow fAboutWindow; - - ImageKnob* fKnobAttack; - ImageButton* fButtonAbout; + ImageKnob* fKnobTube; + ImageKnob* fKnobBass; + ImageKnob* fKnobMids; + ImageKnob* fKnobTreb; + ImageKnob* fKnobGain; + ImageSlider* fSliderNotch; }; // ----------------------------------------------------------------------- |