]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/control.cpp
Zero-initialize JsDevice name buffer to avoid valgrind warning
[libs/gui.git] / source / input / control.cpp
index eee0f1523e98256604ca4e0213669134a555c4d1..50601013acacc985ab256c018693a7f4dc6317ae 100644 (file)
@@ -1,7 +1,10 @@
+#include <sigc++/bind_return.h>
 #include <msp/strings/lexicalcast.h>
 #include "control.h"
 #include "device.h"
 
+using namespace std;
+
 namespace Msp {
 namespace Input {
 
@@ -28,7 +31,7 @@ std::string ControlSource::str() const
        else if(type==NONE)
                return "None";
 
-       return lexical_cast(index);
+       return lexical_cast<string>(index);
 }
 
 
@@ -48,12 +51,15 @@ Control::Control(Device &d, ControlSrcType t, unsigned i):
        connect_signals();
 }
 
+Control::~Control()
+{ }
+
 void Control::capture(Device &d)
 {
        notify_callbacks();
        capture_dev = &d;
-       capture_dev->signal_button_press.connect(sigc::mem_fun(this, &Control::button_press));
-       capture_dev->signal_axis_motion.connect(sigc::mem_fun(this, &Control::axis_motion));
+       capture_dev->signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Control::button_press), false));
+       capture_dev->signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Control::axis_motion), false));
 }
 
 void Control::cancel_capture()
@@ -82,12 +88,12 @@ void Control::connect_signals()
        case NONE:
                break;
        case BUTTON:
-               src.dev->signal_button_press.connect(sigc::mem_fun(this, &Control::button_press));
-               src.dev->signal_button_release.connect(sigc::mem_fun(this, &Control::button_release));
+               src.dev->signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Control::button_press), false));
+               src.dev->signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Control::button_release), false));
                break;
        case AXIS_POS:
        case AXIS_NEG:
-               src.dev->signal_axis_motion.connect(sigc::mem_fun(this, &Control::axis_motion));
+               src.dev->signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Control::axis_motion), false));
                break;
        }
 }