diff options
-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 | ||||
-rw-r--r-- | mcp/ruco.device | 15 |
4 files changed, 31 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. diff --git a/mcp/ruco.device b/mcp/ruco.device new file mode 100644 index 0000000000..de2d642a15 --- /dev/null +++ b/mcp/ruco.device @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<MackieProtocolDevice> + <Name value="RuCo"/> + <DeviceType value="MCU"/> + <Strips value="1"/> + <MasterFader value="no"/> + <TimecodeDisplay value="yes"/> + <TwoCharacterDisplay value="yes"/> + <Extenders value="0"/> + <MasterPosition value="0"/> + <GlobalControls value="yes"/> + <JogWheel value="yes"/> + <TouchSenseFaders value="yes"/> + <HasSeparateMeters value="yes"/> +</MackieProtocolDevice> |