summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/device_info.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-04-14 19:02:54 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-04-14 19:02:54 +0000
commit2ed2b6122410fcd3e08c9bf8f753de512aa5c6b0 (patch)
tree2c3792dd3eced9a3008fedefdaf9b3816bed53e7 /libs/surfaces/mackie/device_info.h
parent32766ce215fc2c668c65a54dc1d9436cd11ca413 (diff)
MCP: redesign to allow device-specific button IDs, since we know that at least one device (nucleus) does not honor mackie's specification document
git-svn-id: svn://localhost/ardour2/branches/3.0@11972 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces/mackie/device_info.h')
-rw-r--r--libs/surfaces/mackie/device_info.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/device_info.h b/libs/surfaces/mackie/device_info.h
index 191ccfc4ce..9ca51cae71 100644
--- a/libs/surfaces/mackie/device_info.h
+++ b/libs/surfaces/mackie/device_info.h
@@ -25,10 +25,31 @@
#include <string>
#include <map>
+#include "button.h"
+
class XMLNode;
namespace Mackie {
+struct GlobalButtonInfo {
+ std::string label; // visible to user
+ std::string group; // in case we want to present in a GUI
+ int32_t id; // value sent by device
+
+ GlobalButtonInfo () : id (-1) {}
+ GlobalButtonInfo (const std::string& l, const std::string& g, uint32_t i)
+ : label (l), group (g), id (i) {}
+};
+
+struct StripButtonInfo {
+ int32_t base_id;
+ std::string name;
+
+ StripButtonInfo () : base_id (-1) {}
+ StripButtonInfo (uint32_t i, const std::string& n)
+ : base_id (i), name (n) {}
+};
+
class DeviceInfo
{
public:
@@ -51,6 +72,9 @@ class DeviceInfo
static std::map<std::string,DeviceInfo> device_info;
static void reload_device_info();
+ const std::map<Button::ID,GlobalButtonInfo>& global_buttons() const { return _global_buttons; }
+ const std::map<Button::ID,StripButtonInfo>& strip_buttons() const { return _strip_buttons; }
+
private:
uint32_t _strip_cnt;
uint32_t _extenders;
@@ -62,6 +86,9 @@ class DeviceInfo
bool _has_jog_wheel;
bool _has_touch_sense_faders;
std::string _name;
+
+ std::map<Button::ID,GlobalButtonInfo> _global_buttons;
+ std::map<Button::ID,StripButtonInfo> _strip_buttons;
};
class DeviceProfile