]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/control.cpp
Normalize device axis ranges to [-1, 1]
[libs/gui.git] / source / input / control.cpp
index 0519d8fe42117a1f7304a3daa30fbefbce787f6d..ffa02932f7db9c3b3159c45ab589d2c2f434ae1e 100644 (file)
@@ -29,8 +29,10 @@ std::string ControlSource::str() const
 {
        if(type==BUTTON)
                return dev->get_button_name(index);
-       else if(type==AXIS_POS || type==AXIS_NEG)
-               return dev->get_axis_name(index);
+       else if(type==AXIS_POS)
+               return dev->get_axis_name(index)+" +";
+       else if(type==AXIS_NEG)
+               return dev->get_axis_name(index)+" -";
        else if(type==NONE)
                return "None";
 
@@ -54,24 +56,6 @@ Control::Control(Device &d, ControlSrcType t, unsigned i):
        connect_signals();
 }
 
-Control::Control(const Control &c):
-       trackable(c),
-       src(c.src),
-       capture_dev(0)
-{
-       connect_signals();
-}
-
-Control &Control::operator=(const Control &c)
-{
-       notify_callbacks();
-       src=c.src;
-       capture_dev=0;
-       connect_signals();
-
-       return *this;
-}
-
 void Control::capture(Device &d)
 {
        notify_callbacks();
@@ -146,9 +130,9 @@ void Control::axis_motion(unsigned i, float v, float r)
        if(capture_dev)
        {
                ControlSrcType type=NONE;
-               if(v<-src.dev->get_axis_threshold())
+               if(v<-0.9)
                        type=AXIS_NEG;
-               else if(v>src.dev->get_axis_threshold())
+               else if(v>0.9)
                        type=AXIS_POS;
 
                if(type!=NONE)