summaryrefslogtreecommitdiff
path: root/plugins/ZamTube
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2014-04-16 04:25:41 +1000
committerDamien Zammit <damien@zamaudio.com>2014-04-16 04:25:41 +1000
commit666743d39b7ae1fb456b084e8115c43750ed3996 (patch)
tree1da858a8c5b0caba8dff1e22c39bf75e1478c0b9 /plugins/ZamTube
parentbb6dff095c64f4f00289bf2aeb174cf532822a4c (diff)
Added ZamTube UI
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Diffstat (limited to 'plugins/ZamTube')
-rw-r--r--plugins/ZamTube/DistrhoPluginInfo.h4
-rw-r--r--plugins/ZamTube/Makefile2
-rw-r--r--plugins/ZamTube/ZamTubeUI.cpp161
-rw-r--r--plugins/ZamTube/ZamTubeUI.hpp28
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;
};
// -----------------------------------------------------------------------