diff options
author | Damien Zammit <damien@zamaudio.com> | 2014-04-19 14:48:09 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2014-04-19 14:48:09 +1000 |
commit | 7200457fdf98d5a4607da0feb8b6a95f626c5be0 (patch) | |
tree | 215921ea484fdd6da768fb4834d54bcd472e7507 | |
parent | 257143d7899db7348f00f190ef9731cae82b0af3 (diff) |
Added reset capability to knobs DGL
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r-- | libs/dgl/ImageKnob.hpp | 3 | ||||
-rw-r--r-- | libs/dgl/src/ImageKnob.cpp | 23 | ||||
-rw-r--r-- | plugins/ZaMultiCompX2/ZaMultiCompX2UI.cpp | 22 |
3 files changed, 37 insertions, 11 deletions
diff --git a/libs/dgl/ImageKnob.hpp b/libs/dgl/ImageKnob.hpp index dea8f22..99385ac 100644 --- a/libs/dgl/ImageKnob.hpp +++ b/libs/dgl/ImageKnob.hpp @@ -52,6 +52,8 @@ public: void setLogScale(bool log = false); void setStep(float step); void setValue(float value, bool sendCallback = false); + void setDefault(float value); + void resetDefault(void); void setRotationAngle(int angle); void setCallback(Callback* callback); @@ -73,6 +75,7 @@ private: bool fLog; bool fFirst; float fValue; + float fValueDef; float fValueTmp; Orientation fOrientation; diff --git a/libs/dgl/src/ImageKnob.cpp b/libs/dgl/src/ImageKnob.cpp index 0fa7ba1..5e2ec29 100644 --- a/libs/dgl/src/ImageKnob.cpp +++ b/libs/dgl/src/ImageKnob.cpp @@ -33,6 +33,7 @@ ImageKnob::ImageKnob(Window& parent, const Image& image, Orientation orientation fFirst(true), fValue(0.5f), fValueTmp(fValue), + fValueDef(fValue), fOrientation(orientation), fRotationAngle(0), fDragging(false), @@ -58,6 +59,7 @@ ImageKnob::ImageKnob(Widget* widget, const Image& image, Orientation orientation fFirst(true), fValue(0.5f), fValueTmp(fValue), + fValueDef(fValue), fOrientation(orientation), fRotationAngle(0), fDragging(false), @@ -83,6 +85,7 @@ ImageKnob::ImageKnob(const ImageKnob& imageKnob) fFirst(true), fValue(imageKnob.fValue), fValueTmp(fValue), + fValueDef(imageKnob.fValueDef), fOrientation(imageKnob.fOrientation), fRotationAngle(imageKnob.fRotationAngle), fDragging(false), @@ -174,6 +177,21 @@ float ImageKnob::invlogscale(float value) return value; } +void ImageKnob::setDefault(float value) +{ + fValueDef = value; + if (fFirst) { + resetDefault(); + fFirst = false; + } +} + +void ImageKnob::resetDefault() +{ + fFirst = true; + setValue(fValueDef, true); +} + void ImageKnob::setValue(float value, bool sendCallback) { if (fValue == value) @@ -305,6 +323,11 @@ bool ImageKnob::onMouse(int button, bool press, int x, int y) { if (! getArea().contains(x, y)) return false; + + if (getModifiers() & MODIFIER_CTRL) { + resetDefault(); + return false; + } fDragging = true; fLastX = x; diff --git a/plugins/ZaMultiCompX2/ZaMultiCompX2UI.cpp b/plugins/ZaMultiCompX2/ZaMultiCompX2UI.cpp index e8f0ec9..6a07808 100644 --- a/plugins/ZaMultiCompX2/ZaMultiCompX2UI.cpp +++ b/plugins/ZaMultiCompX2/ZaMultiCompX2UI.cpp @@ -49,7 +49,7 @@ ZaMultiCompX2UI::ZaMultiCompX2UI() fKnobAttack->setPos(24, 43); fKnobAttack->setRange(0.1f, 200.0f); fKnobAttack->setLogScale(true); - fKnobAttack->setValue(10.0f); + fKnobAttack->setDefault(10.0f); fKnobAttack->setStep(0.1f); fKnobAttack->setRotationAngle(240); fKnobAttack->setCallback(this); @@ -57,35 +57,35 @@ ZaMultiCompX2UI::ZaMultiCompX2UI() fKnobRelease = new ImageKnob(this, knobImage); fKnobRelease->setPos(108, 43); fKnobRelease->setRange(50.0f, 500.0f); - fKnobRelease->setValue(80.0f); + fKnobRelease->setDefault(80.0f); fKnobRelease->setRotationAngle(240); fKnobRelease->setCallback(this); fKnobThresh = new ImageKnob(this, knobImage); fKnobThresh->setPos(191.5, 43); fKnobThresh->setRange(-60.0f, 0.0f); - fKnobThresh->setValue(0.0f); + fKnobThresh->setDefault(0.0f); fKnobThresh->setRotationAngle(240); fKnobThresh->setCallback(this); fKnobRatio = new ImageKnob(this, knobImage); fKnobRatio->setPos(270, 43); fKnobRatio->setRange(1.0f, 20.0f); - fKnobRatio->setValue(4.0f); + fKnobRatio->setDefault(4.0f); fKnobRatio->setRotationAngle(240); fKnobRatio->setCallback(this); fKnobKnee = new ImageKnob(this, knobImage); fKnobKnee->setPos(348.5, 43); fKnobKnee->setRange(0.0f, 8.0f); - fKnobKnee->setValue(0.0f); + fKnobKnee->setDefault(0.0f); fKnobKnee->setRotationAngle(240); fKnobKnee->setCallback(this); fKnobGlobalGain = new ImageKnob(this, knobImage); fKnobGlobalGain->setPos(427.3, 43); fKnobGlobalGain->setRange(-30.0f, 30.0f); - fKnobGlobalGain->setValue(0.0f); + fKnobGlobalGain->setDefault(0.0f); fKnobGlobalGain->setRotationAngle(240); fKnobGlobalGain->setCallback(this); @@ -93,7 +93,7 @@ ZaMultiCompX2UI::ZaMultiCompX2UI() fKnobXover2->setPos(84, 121); fKnobXover2->setRange(1400.f, 14000.f); fKnobXover2->setLogScale(true); - fKnobXover2->setValue(1400.f); + fKnobXover2->setDefault(1400.f); fKnobXover2->setStep(5.f); fKnobXover2->setRotationAngle(240); fKnobXover2->setCallback(this); @@ -102,7 +102,7 @@ ZaMultiCompX2UI::ZaMultiCompX2UI() fKnobXover1->setPos(84, 176); fKnobXover1->setRange(20.0f, 1400.0f); fKnobXover1->setLogScale(true); - fKnobXover1->setValue(250.0f); + fKnobXover1->setDefault(250.0f); fKnobXover1->setStep(1.f); fKnobXover1->setRotationAngle(240); fKnobXover1->setCallback(this); @@ -110,21 +110,21 @@ ZaMultiCompX2UI::ZaMultiCompX2UI() fKnobMakeup3 = new ImageKnob(this, knobImage); fKnobMakeup3->setPos(167.75, 99.5); fKnobMakeup3->setRange(0.0f, 30.0f); - fKnobMakeup3->setValue(0.0f); + fKnobMakeup3->setDefault(0.0f); fKnobMakeup3->setRotationAngle(240); fKnobMakeup3->setCallback(this); fKnobMakeup2 = new ImageKnob(this, knobImage); fKnobMakeup2->setPos(167.75, 150.25); fKnobMakeup2->setRange(0.0f, 30.0f); - fKnobMakeup2->setValue(0.0f); + fKnobMakeup2->setDefault(0.0f); fKnobMakeup2->setRotationAngle(240); fKnobMakeup2->setCallback(this); fKnobMakeup1 = new ImageKnob(this, knobImage); fKnobMakeup1->setPos(167.75, 201.4); fKnobMakeup1->setRange(0.0f, 30.0f); - fKnobMakeup1->setValue(0.0f); + fKnobMakeup1->setDefault(0.0f); fKnobMakeup1->setRotationAngle(240); fKnobMakeup1->setCallback(this); |