introduce separate-meters concept for Mackie.
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 13 Oct 2015 14:04:58 +0000 (10:04 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 13 Oct 2015 14:04:58 +0000 (10:04 -0400)
Devices like the SSL Nucleus have meters displayed separately from their 55x2 display

libs/surfaces/mackie/device_info.cc
libs/surfaces/mackie/device_info.h
mcp/nucleus.device

index b0ce131e003d991ea55abfffd9b4ee6d55e86a1d..2fcd5abf0694a0fea6d1b0e3357aac8fd10c3211 100644 (file)
@@ -57,6 +57,7 @@ DeviceInfo::DeviceInfo()
        , _uses_ipmidi (false)
        , _no_handshake (false)
        , _has_meters (true)
+       , _has_separate_meters (false)
        , _device_type (MCU)
        , _name (X_("Mackie Control Universal Pro"))
 {
@@ -343,6 +344,14 @@ DeviceInfo::set_state (const XMLNode& node, int /* version */)
                _has_meters = true;
        }
 
+       if ((child = node.child ("HasSeparateMeters")) != 0) {
+               if ((prop = child->property ("value")) != 0) {
+                       _has_meters = _has_separate_meters = string_is_affirmative (prop->value());
+               }
+       } else {
+               _has_separate_meters = false;
+       }
+
        if ((child = node.child ("LogicControlButtons")) != 0) {
                if ((prop = child->property ("value")) != 0) {
                        _uses_logic_control_buttons = string_is_affirmative (prop->value());
index 2f4f769127f35d86da34c981c8e276a8cdf31148..2aaa710ec6e98d5470c0ace7712a079b13425fa0 100644 (file)
@@ -81,6 +81,7 @@ class DeviceInfo
        bool uses_ipmidi() const;
        bool no_handshake() const;
        bool has_meters() const;
+       bool has_separate_meters() const;
        const std::string& name() const;
 
        static std::map<std::string,DeviceInfo> device_info;
@@ -109,6 +110,7 @@ class DeviceInfo
        bool     _uses_ipmidi;
        bool     _no_handshake;
        bool     _has_meters;
+       bool     _has_separate_meters;
        DeviceType _device_type;
        std::string _name;
        std::string _global_button_name;
index 216af9e9b75ee48e41fa29fead55eccedd45abd0..b4e1a763b380aa008fe50ef6e07ed50955da5906 100644 (file)
@@ -8,6 +8,7 @@
   <MasterFader value="no"/>
   <TimecodeDisplay value="no"/>
   <TwoCharacterDisplay value="yes"/>
+  <HasSeparateMeters value="yes"/>
   <GlobalControls value="yes"/>
   <JogWheel value="yes"/>
   <TouchSenseFaders value="yes"/>