diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2019-10-20 22:24:17 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2019-10-20 22:24:32 -0500 |
commit | b96d8e7ffa51fcb25511cd02260ec256d181d3b6 (patch) | |
tree | a93afdaf9c7d890dfded9667db8da70e6512afd5 /libs | |
parent | 92173ca1185904c2aea7ba081667cf59989958f7 (diff) |
Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaces/mackie/device_info.cc | 9 | ||||
-rw-r--r-- | libs/surfaces/mackie/device_info.h | 2 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/libs/surfaces/mackie/device_info.cc b/libs/surfaces/mackie/device_info.cc index a9b7d9d0d5..c085aea812 100644 --- a/libs/surfaces/mackie/device_info.cc +++ b/libs/surfaces/mackie/device_info.cc @@ -62,6 +62,7 @@ DeviceInfo::DeviceInfo() , _is_qcon(false) , _has_meters (true) , _has_separate_meters (false) + , _single_fader_follows_selection (false) , _device_type (MCU) , _name (X_("Mackie Control Universal Pro")) { @@ -254,6 +255,8 @@ DeviceInfo::set_state (const XMLNode& node, int /* version */) if (!child->get_property ("value", _strip_cnt)) { _strip_cnt = 8; } + if (_strip_cnt==1) + _single_fader_follows_selection = true; } else { return -1; } @@ -425,6 +428,12 @@ DeviceInfo::has_meters() const } bool +DeviceInfo::single_fader_follows_selection() const +{ + return _single_fader_follows_selection; +} + +bool DeviceInfo::has_separate_meters() const { return _has_separate_meters; diff --git a/libs/surfaces/mackie/device_info.h b/libs/surfaces/mackie/device_info.h index dc8803e91c..db0837f26c 100644 --- a/libs/surfaces/mackie/device_info.h +++ b/libs/surfaces/mackie/device_info.h @@ -83,6 +83,7 @@ class DeviceInfo bool is_qcon() const; bool has_meters() const; bool has_separate_meters() const; + bool single_fader_follows_selection() const; const std::string& name() const; static std::map<std::string,DeviceInfo> device_info; @@ -113,6 +114,7 @@ class DeviceInfo bool _is_qcon; bool _has_meters; bool _has_separate_meters; + bool _single_fader_follows_selection; DeviceType _device_type; std::string _name; std::string _global_button_name; diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 9887ed9402..7878a795bc 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -2437,6 +2437,11 @@ MackieControlProtocol::first_selected_stripable () const return s; } + /* if it's a single-fader surface, it should follow the selection */ + if (_device_info.single_fader_follows_selection()) { + return s; + } + /* stripable is not mapped. thus, the currently selected stripable is * not on the surfaces, and so from our perspective, there is * no currently selected stripable. |