]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/smoothcontrol.cpp
Use nullptr in place of 0 or NULL
[libs/gui.git] / source / input / smoothcontrol.cpp
index 6f4f5a487857deebe9fdaeaec277def92126937e..0532aef68ca66d62dc6d38808da0a08c07529eb9 100644 (file)
@@ -1,37 +1,22 @@
-#include <stdexcept>
 #include "smoothcontrol.h"
+#include <stdexcept>
 
 using namespace std;
 
 namespace Msp {
 namespace Input {
 
-SmoothControl::SmoothControl():
-       value(0),
-       paired_ctrl(0),
-       dead_zone(0.1),
-       threshold(0.9)
-{ }
-
 SmoothControl::SmoothControl(const ControlSource &s):
-       Control(s),
-       value(0),
-       paired_ctrl(0),
-       dead_zone(0.1),
-       threshold(0.9)
+       Control(s)
 { }
 
 SmoothControl::SmoothControl(Device &d, ControlSrcType t, unsigned i):
-       Control(d, t, i),
-       value(0),
-       paired_ctrl(0),
-       dead_zone(0.1),
-       threshold(0.9)
+       Control(d, t, i)
 { }
 
 SmoothControl::~SmoothControl()
 {
-       pair(0);
+       pair(nullptr);
 }
 
 void SmoothControl::set_dead_zone(float d)
@@ -64,8 +49,8 @@ void SmoothControl::pair(SmoothControl *ctrl)
        if(paired_ctrl)
        {
                SmoothControl *old_pair = paired_ctrl;
-               paired_ctrl = 0;
-               old_pair->pair(0);
+               paired_ctrl = nullptr;
+               old_pair->pair(nullptr);
        }
 
        paired_ctrl = ctrl;
@@ -87,6 +72,7 @@ void SmoothControl::on_release()
 
 void SmoothControl::on_motion(float v, float r)
 {
+       float old_value = value;
        if(v<-dead_zone)
                value = v+dead_zone;
        else if(v>dead_zone)
@@ -104,6 +90,11 @@ void SmoothControl::on_motion(float v, float r)
                        value /= threshold-dead_zone;
        }
 
+       if(value && !old_value)
+               rising_edge = true;
+       else if(!value && old_value)
+               falling_edge = true;
+
        signal_motion.emit(value);
 
        if(paired_ctrl && (v>0 || (v==0 && paired_ctrl->value!=0)))