commit e1a3d3a2e664f600ffa3aac5d1f589a26b0ef3db
parent c61f50fa520d64ee5e3d0eeea08cc44d9223bd61
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Wed, 14 Aug 2013 11:54:12 -0400
Fix Inverted Sliders
Diffstat:
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/UI/Fl_Osc_Slider.cpp b/src/UI/Fl_Osc_Slider.cpp
@@ -7,6 +7,11 @@
#include <cassert>
#include <sstream>
+static double min__(double a, double b)
+{
+ return a<b?a:b;
+}
+
Fl_Osc_Slider::Fl_Osc_Slider(int X, int Y, int W, int H, const char *label)
:Fl_Slider(X,Y,W,H,label), Fl_Osc_Widget(this), cb_data(NULL, NULL)
{
@@ -26,23 +31,26 @@ Fl_Osc_Slider::~Fl_Osc_Slider(void)
void Fl_Osc_Slider::OSC_value(float v)
{
- Fl_Slider::value(v+minimum());
+ const float min_ = min__(minimum(), maximum());//flipped sliders
+ Fl_Slider::value(v+min_);
}
void Fl_Osc_Slider::OSC_value(char v)
{
- Fl_Slider::value(v+minimum());
+ const float min_ = min__(minimum(), maximum());//flipped sliders
+ Fl_Slider::value(v+min_);
}
void Fl_Osc_Slider::cb(void)
{
+ const float min_ = min__(minimum(), maximum());//flipped sliders
const float val = Fl_Slider::value();
if(osc_type == 'f')
- oscWrite(path, "f", val-minimum());
+ oscWrite(path, "f", val-min_);
else if(osc_type == 'i')
- oscWrite(path, "i", (int)(val-minimum()));
+ oscWrite(path, "i", (int)(val-min_));
else
- oscWrite(path, "c", (char)(val-minimum()));
+ oscWrite(path, "c", (char)(val-min_));
//OSC_value(val);
if(cb_data.first)