X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finput%2Fcontrol.cpp;h=4f093573baeaf2418a2faf25ca881934b94aecae;hb=27356249e3607c78f5da9823c88703a6f4f7bed1;hp=b2f9badd45b673026b90645bca2fcfef104cb648;hpb=754d00736b05c0f07f2fe34889527f8e3013dd37;p=libs%2Fgui.git diff --git a/source/input/control.cpp b/source/input/control.cpp index b2f9bad..4f09357 100644 --- a/source/input/control.cpp +++ b/source/input/control.cpp @@ -1,7 +1,7 @@ +#include "control.h" #include #include #include "binarycontrol.h" -#include "control.h" #include "device.h" using namespace std; @@ -9,19 +9,13 @@ using namespace std; namespace Msp { namespace Input { -ControlSource::ControlSource(): - dev(0), - type(NONE), - index(0) -{ } - ControlSource::ControlSource(Device &d, ControlSrcType t, unsigned i): dev(&d), type(t), index(i) { } -std::string ControlSource::str() const +string ControlSource::str() const { if(type==BUTTON) return dev->get_button_name(index); @@ -29,31 +23,19 @@ std::string ControlSource::str() const return dev->get_axis_name(index)+" +"; else if(type==AXIS_NEG) return dev->get_axis_name(index)+" -"; - else if(type==NONE) + else if(type==NO_SOURCE) return "None"; return lexical_cast(index); } -Control::Control(): - capture_dev(0), - activator(0), - origin(0) -{ } - Control::Control(const ControlSource &s): - src(s), - capture_dev(0), - activator(0), - origin(0) + src(s) { } Control::Control(Device &d, ControlSrcType t, unsigned i): - src(d, t, i), - capture_dev(0), - activator(0), - origin(0) + src(d, t, i) { connect_signals(); } @@ -72,7 +54,7 @@ void Control::capture(Device &d) void Control::cancel_capture() { notify_callbacks(); - capture_dev = 0; + capture_dev = nullptr; connect_signals(); } @@ -95,11 +77,17 @@ void Control::set_activator(BinaryControl *ctrl) connect_signals(); } +void Control::reset_edges() +{ + rising_edge = false; + falling_edge = false; +} + void Control::connect_signals() { switch(src.type) { - case NONE: + case NO_SOURCE: break; case BUTTON: src.dev->signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Control::button_press), false)); @@ -124,7 +112,7 @@ void Control::button_press(unsigned i) src.index = i; notify_callbacks(); - capture_dev = 0; + capture_dev = nullptr; connect_signals(); signal_capture_complete.emit(); } @@ -142,20 +130,20 @@ void Control::axis_motion(unsigned i, float v, float r) { if(capture_dev) { - ControlSrcType type = NONE; + ControlSrcType type = NO_SOURCE; if(v<-0.9) type = AXIS_NEG; else if(v>0.9) type = AXIS_POS; - if(type!=NONE) + if(type!=NO_SOURCE) { src.dev = capture_dev; src.type = type; src.index = i; notify_callbacks(); - capture_dev = 0; + capture_dev = nullptr; connect_signals(); signal_capture_complete.emit(); }