zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 6503071f1126b711a0cc130897471b4569a96359
parent b98e1378626bb0c23c31a1c66213c5c33dbab7ae
Author: Christopher A. Oliver <caowasteland@gmail.com>
Date:   Tue,  6 Oct 2015 01:50:50 -0400

Kluge around difficulties dials have with negative numbers.

Diffstat:
Msrc/UI/OscilGenUI.fl | 13+++++++++----
Msrc/UI/WidgetPDial.cpp | 5+++--
Msrc/UI/WidgetPDial.h | 1+
3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/UI/OscilGenUI.fl b/src/UI/OscilGenUI.fl @@ -346,8 +346,9 @@ oscildisplaygroup->redraw();} code1 {oscilo_base->parent(o);oscilo_base->init(true);} } {} Fl_Dial bfslider { - callback {redrawoscil();} - tooltip {Base Function Parameter} xywh {525 285 20 20} minimum -64 maximum 63 step 1 + callback {redrawoscil(); + bfparval->value(o->value() + o->value_offset) } + tooltip {Base Function Parameter} xywh {525 285 20 20} minimum 0 maximum 127 step 1 code0 {o->init("Pbasefuncpar");} class Fl_Osc_Dial } @@ -620,8 +621,9 @@ redrawoscil();} } } Fl_Dial wshpar { - callback {redrawoscil();} - tooltip {Waveshaping Parameter} xywh {265 318 20 20} minimum -64 maximum 63 step 1 + callback {redrawoscil(); + wsparval->value(o->value() + o->value_offset) } + tooltip {Waveshaping Parameter} xywh {265 318 20 20} minimum 0 maximum 127 step 1 code0 {o->init("Pwaveshaping");} class Fl_Osc_Dial } @@ -952,6 +954,9 @@ make_window(); bftype->init("Pcurrentbasefunc"); initialized = true; +wshpar->value_offset=-64; +bfslider->value_offset=-64; + refresh(); osceditUI->show();} {} } diff --git a/src/UI/WidgetPDial.cpp b/src/UI/WidgetPDial.cpp @@ -105,6 +105,7 @@ WidgetPDial::WidgetPDial(int x, int y, int w, int h, const char *label) tipwin = new TipWin(); tipwin->hide(); Fl_Group::current(save); + value_offset=0; } WidgetPDial::~WidgetPDial() @@ -133,7 +134,7 @@ int WidgetPDial::handle(int event) dragsize *= 10; value(limit(oldvalue + my / dragsize * (max - min), min, max)); - tipwin->showValue(value()); + tipwin->showValue(value()+value_offset); value_damage(); if(this->when() != 0) do_callback(); @@ -148,7 +149,7 @@ int WidgetPDial::handle(int event) dragsize *= 10; value(limit(value() + my / dragsize * (max - min), min, max)); - tipwin->showValue(value()); + tipwin->showValue(value()+value_offset); value_damage(); if(this->when() != 0) do_callback(); diff --git a/src/UI/WidgetPDial.h b/src/UI/WidgetPDial.h @@ -14,6 +14,7 @@ class WidgetPDial:public Fl_Dial void draw(); void pdialcolor(int r, int g, int b); void tooltip(const char *c); + float value_offset; private: void getPos(); void resetPos();