summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/mackie_control_protocol.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-11 02:54:25 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-11 02:54:25 +0000
commit261738d01e34c84a07fad3336ce5eca450017c0b (patch)
treefd26fdf7f78a608772a08fb1283c443ba9235d51 /libs/surfaces/mackie/mackie_control_protocol.h
parentf387e834fd8966eff5f71955f013a905db9f7153 (diff)
MCP: debug tracing, plus start of a new cleaner handling system for button handling
git-svn-id: svn://localhost/ardour2/branches/3.0@11880 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces/mackie/mackie_control_protocol.h')
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h
index 0861c6fbb8..ab971e1b78 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.h
+++ b/libs/surfaces/mackie/mackie_control_protocol.h
@@ -20,6 +20,7 @@
#define ardour_mackie_control_protocol_h
#include <vector>
+#include <map>
#include <sys/time.h>
#include <pthread.h>
@@ -48,6 +49,7 @@ namespace Mackie {
class Surface;
class Control;
class SurfacePort;
+ class Button;
}
/**
@@ -377,6 +379,22 @@ class MackieControlProtocol
bool midi_input_handler (Glib::IOCondition ioc, MIDI::Port* port);
void clear_ports ();
+ struct ButtonHandlers {
+ Mackie::LedState (MackieControlProtocol::*press) (Mackie::Button&);
+ Mackie::LedState (MackieControlProtocol::*release) (Mackie::Button&);
+
+ ButtonHandlers (Mackie::LedState (MackieControlProtocol::*p) (Mackie::Button&),
+ Mackie::LedState (MackieControlProtocol::*r) (Mackie::Button&))
+ : press (p)
+ , release (r) {}
+ };
+
+ typedef std::map<int,ButtonHandlers> ButtonMap;
+ ButtonMap button_map;
+
+ void build_button_map ();
};
+
+
#endif // ardour_mackie_control_protocol_h