diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-14 19:02:54 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-04-14 19:02:54 +0000 |
commit | 2ed2b6122410fcd3e08c9bf8f753de512aa5c6b0 (patch) | |
tree | 2c3792dd3eced9a3008fedefdaf9b3816bed53e7 /libs/surfaces/mackie/device_info.h | |
parent | 32766ce215fc2c668c65a54dc1d9436cd11ca413 (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.h | 27 |
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 |