summaryrefslogtreecommitdiff
path: root/plugins/ZamCompX2/ZamCompX2UI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ZamCompX2/ZamCompX2UI.cpp')
-rw-r--r--plugins/ZamCompX2/ZamCompX2UI.cpp109
1 files changed, 35 insertions, 74 deletions
diff --git a/plugins/ZamCompX2/ZamCompX2UI.cpp b/plugins/ZamCompX2/ZamCompX2UI.cpp
index 02538f3..017f2d7 100644
--- a/plugins/ZamCompX2/ZamCompX2UI.cpp
+++ b/plugins/ZamCompX2/ZamCompX2UI.cpp
@@ -1,5 +1,5 @@
/*
- * ZamCompX2 Stereo compressor
+ * ZamCompX2 Stereo compressor
* Copyright (C) 2014 Damien Zammit <damien@zamaudio.com>
*
* This program is free software; you can redistribute it and/or
@@ -15,6 +15,7 @@
* For a full copy of the GNU General Public License see the doc/GPL.txt file.
*/
+#include "ZamCompX2Plugin.hpp"
#include "ZamCompX2UI.hpp"
using DGL::Point;
@@ -35,23 +36,25 @@ ZamCompX2UI::ZamCompX2UI()
// led values
fLedRedValue = 0.0f;
- fLedYellowValue = 0.0f;
+ fLedYellowValue = 0.0f;
// knob
Image knobImage(ZamCompX2Artwork::knobData, ZamCompX2Artwork::knobWidth, ZamCompX2Artwork::knobHeight);
- // knob
+ // knob
fKnobAttack = new ImageKnob(this, knobImage);
- fKnobAttack->setPos(24, 45);
+ fKnobAttack->setAbsolutePos(24, 45);
+ fKnobAttack->setId(ZamCompX2Plugin::paramAttack);
fKnobAttack->setRange(0.1f, 200.0f);
fKnobAttack->setStep(0.1f);
- fKnobAttack->setLogScale(true);
+ fKnobAttack->setUsingLogScale(true);
fKnobAttack->setDefault(10.0f);
fKnobAttack->setRotationAngle(240);
fKnobAttack->setCallback(this);
fKnobRelease = new ImageKnob(this, knobImage);
- fKnobRelease->setPos(108, 45);
+ fKnobRelease->setAbsolutePos(108, 45);
+ fKnobRelease->setId(ZamCompX2Plugin::paramRelease);
fKnobRelease->setRange(50.0f, 500.0f);
fKnobRelease->setStep(1.0f);
fKnobRelease->setDefault(80.0f);
@@ -59,7 +62,8 @@ ZamCompX2UI::ZamCompX2UI()
fKnobRelease->setCallback(this);
fKnobThresh = new ImageKnob(this, knobImage);
- fKnobThresh->setPos(191.5, 45);
+ fKnobThresh->setAbsolutePos(191.5, 45);
+ fKnobThresh->setId(ZamCompX2Plugin::paramThresh);
fKnobThresh->setRange(-60.0f, 0.0f);
fKnobThresh->setStep(1.0f);
fKnobThresh->setDefault(0.0f);
@@ -67,7 +71,8 @@ ZamCompX2UI::ZamCompX2UI()
fKnobThresh->setCallback(this);
fKnobRatio = new ImageKnob(this, knobImage);
- fKnobRatio->setPos(270, 45);
+ fKnobRatio->setAbsolutePos(270, 45);
+ fKnobRatio->setId(ZamCompX2Plugin::paramRatio);
fKnobRatio->setRange(1.0f, 20.0f);
fKnobRatio->setStep(0.1f);
fKnobRatio->setDefault(4.0f);
@@ -75,7 +80,8 @@ ZamCompX2UI::ZamCompX2UI()
fKnobRatio->setCallback(this);
fKnobKnee = new ImageKnob(this, knobImage);
- fKnobKnee->setPos(348.5, 45);
+ fKnobKnee->setAbsolutePos(348.5, 45);
+ fKnobKnee->setId(ZamCompX2Plugin::paramKnee);
fKnobKnee->setRange(0.0f, 8.0f);
fKnobKnee->setStep(0.1f);
fKnobKnee->setDefault(0.0f);
@@ -83,7 +89,8 @@ ZamCompX2UI::ZamCompX2UI()
fKnobKnee->setCallback(this);
fKnobMakeup = new ImageKnob(this, knobImage);
- fKnobMakeup->setPos(427.3, 45);
+ fKnobMakeup->setAbsolutePos(427.3, 45);
+ fKnobMakeup->setId(ZamCompX2Plugin::paramMakeup);
fKnobMakeup->setRange(-30.0f, 30.0f);
fKnobMakeup->setStep(1.0f);
fKnobMakeup->setDefault(0.0f);
@@ -93,23 +100,13 @@ ZamCompX2UI::ZamCompX2UI()
Image toggleonImage(ZamCompX2Artwork::toggleonData, ZamCompX2Artwork::toggleonWidth, ZamCompX2Artwork::toggleonHeight);
Image toggleoffImage(ZamCompX2Artwork::toggleoffData, ZamCompX2Artwork::toggleoffWidth, ZamCompX2Artwork::toggleoffHeight);
- Point<int> togglePosStart(652,72);
-
- fToggleStereo = new ImageToggle(this, toggleoffImage, toggleoffImage, toggleonImage);
- fToggleStereo->setPos(togglePosStart);
+ fToggleStereo = new ImageToggle(this, toggleoffImage, toggleonImage);
+ fToggleStereo->setAbsolutePos(652, 72);
+ fToggleStereo->setId(ZamCompX2Plugin::paramStereo);
fToggleStereo->setCallback(this);
-}
-
-ZamCompX2UI::~ZamCompX2UI()
-{
- delete fKnobAttack;
- delete fKnobRelease;
- delete fKnobThresh;
- delete fKnobRatio;
- delete fKnobKnee;
- delete fKnobMakeup;
- delete fToggleStereo;
+ // set default values
+ d_programChanged(0);
}
// -----------------------------------------------------------------------
@@ -152,8 +149,8 @@ void ZamCompX2UI::d_parameterChanged(uint32_t index, float value)
}
break;
case ZamCompX2Plugin::paramStereo:
- //fToggleStereo->setValue((int)value);
- break;
+ fToggleStereo->setValue((int)value);
+ break;
}
}
@@ -163,15 +160,13 @@ void ZamCompX2UI::d_programChanged(uint32_t index)
return;
// Default values
- /*
fKnobAttack->setValue(10.0f);
fKnobRelease->setValue(80.0f);
fKnobThresh->setValue(0.0f);
fKnobRatio->setValue(4.0f);
fKnobKnee->setValue(0.0f);
fKnobMakeup->setValue(0.0f);
- */
- //fToggleStereo->setValue(1.f);
+ fToggleStereo->setValue(1.0f);
}
// -----------------------------------------------------------------------
@@ -179,58 +174,24 @@ void ZamCompX2UI::d_programChanged(uint32_t index)
void ZamCompX2UI::imageKnobDragStarted(ImageKnob* knob)
{
- if (knob == fKnobAttack)
- d_editParameter(ZamCompX2Plugin::paramAttack, true);
- else if (knob == fKnobRelease)
- d_editParameter(ZamCompX2Plugin::paramRelease, true);
- else if (knob == fKnobThresh)
- d_editParameter(ZamCompX2Plugin::paramThresh, true);
- else if (knob == fKnobRatio)
- d_editParameter(ZamCompX2Plugin::paramRatio, true);
- else if (knob == fKnobKnee)
- d_editParameter(ZamCompX2Plugin::paramKnee, true);
- else if (knob == fKnobMakeup)
- d_editParameter(ZamCompX2Plugin::paramMakeup, true);
+ d_editParameter(knob->getId(), true);
}
void ZamCompX2UI::imageKnobDragFinished(ImageKnob* knob)
{
- if (knob == fKnobAttack)
- d_editParameter(ZamCompX2Plugin::paramAttack, false);
- else if (knob == fKnobRelease)
- d_editParameter(ZamCompX2Plugin::paramRelease, false);
- else if (knob == fKnobThresh)
- d_editParameter(ZamCompX2Plugin::paramThresh, false);
- else if (knob == fKnobRatio)
- d_editParameter(ZamCompX2Plugin::paramRatio, false);
- else if (knob == fKnobKnee)
- d_editParameter(ZamCompX2Plugin::paramKnee, false);
- else if (knob == fKnobMakeup)
- d_editParameter(ZamCompX2Plugin::paramMakeup, false);
+ d_editParameter(knob->getId(), false);
}
void ZamCompX2UI::imageKnobValueChanged(ImageKnob* knob, float value)
{
- if (knob == fKnobAttack)
- d_setParameterValue(ZamCompX2Plugin::paramAttack, value);
- else if (knob == fKnobRelease)
- d_setParameterValue(ZamCompX2Plugin::paramRelease, value);
- else if (knob == fKnobThresh)
- d_setParameterValue(ZamCompX2Plugin::paramThresh, value);
- else if (knob == fKnobRatio)
- d_setParameterValue(ZamCompX2Plugin::paramRatio, value);
- else if (knob == fKnobKnee)
- d_setParameterValue(ZamCompX2Plugin::paramKnee, value);
- else if (knob == fKnobMakeup)
- d_setParameterValue(ZamCompX2Plugin::paramMakeup, value);
+ d_setParameterValue(knob->getId(), value);
}
-void ZamCompX2UI::imageToggleClicked(ImageToggle *toggle, int)
+void ZamCompX2UI::imageToggleClicked(ImageToggle* imageToggle, int)
{
- int flip = !toggle->getValue();
- if (toggle == fToggleStereo) {
+ int flip = !imageToggle->getValue();
+ if (imageToggle == fToggleStereo)
d_setParameterValue(ZamCompX2Plugin::paramStereo, flip);
- }
}
void ZamCompX2UI::onDisplay()
@@ -274,7 +235,7 @@ void ZamCompX2UI::onDisplay()
else numRedLeds = 0;
for (int i=numRedLeds; i>0; --i)
- fLedRedImg.draw(sLedInitialX + (12 - i)*sLedSpacing, sRedLedStaticY);
+ fLedRedImg.drawAt(sLedInitialX + (12 - i)*sLedSpacing, sRedLedStaticY);
if (fLedYellowValue >= 20.f)
numYellowLeds = 19;
@@ -318,12 +279,12 @@ void ZamCompX2UI::onDisplay()
if (numYellowLeds > 12) {
for (int i=12; i<numYellowLeds; ++i)
- fLedRedImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedRedImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
for (int i=0; i<12; ++i)
- fLedYellowImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedYellowImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
} else {
for (int i=0; i<numYellowLeds; ++i)
- fLedYellowImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedYellowImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
}
}