diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-24 19:27:29 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-24 19:27:29 +0000 |
commit | 7d252412c3fb099645f984911bcb5ee05b9cb88d (patch) | |
tree | dfd8577d65d231356849ec126fbb3540304e73c4 /libs | |
parent | 239d56ccb9f783fb31897b0969656116fb2edfde (diff) |
add support for <HasMeters value=XX/> stanza in MCP device info file
git-svn-id: svn://localhost/ardour2/branches/3.0@12440 d708f5d6-7413-0410-9779-e7cbd77b26cf
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/strip.cc | 5 |
3 files changed, 15 insertions, 1 deletions
diff --git a/libs/surfaces/mackie/device_info.cc b/libs/surfaces/mackie/device_info.cc index 8d2186cf0c..3f825e75c7 100644 --- a/libs/surfaces/mackie/device_info.cc +++ b/libs/surfaces/mackie/device_info.cc @@ -51,6 +51,7 @@ DeviceInfo::DeviceInfo() , _uses_logic_control_buttons (false) , _uses_ipmidi (false) , _no_handshake (false) + , _has_meters (true) , _name (X_("Mackie Control Universal Pro")) { mackie_control_buttons (); @@ -290,6 +291,14 @@ DeviceInfo::set_state (const XMLNode& node, int /* version */) _no_handshake = false; } + if ((child = node.child ("HasMeters")) != 0) { + if ((prop = child->property ("value")) != 0) { + _has_meters = string_is_affirmative (prop->value()); + } + } else { + _has_meters = true; + } + if ((child = node.child ("LogicControlButtons")) != 0) { if ((prop = child->property ("value")) != 0) { _uses_logic_control_buttons = string_is_affirmative (prop->value()); diff --git a/libs/surfaces/mackie/device_info.h b/libs/surfaces/mackie/device_info.h index 294bc091ed..1b97ee75bf 100644 --- a/libs/surfaces/mackie/device_info.h +++ b/libs/surfaces/mackie/device_info.h @@ -68,6 +68,7 @@ class DeviceInfo bool has_touch_sense_faders() const; bool uses_ipmidi() const; bool no_handshake() const; + bool has_meters() const; const std::string& name() const; static std::map<std::string,DeviceInfo> device_info; @@ -88,6 +89,7 @@ class DeviceInfo bool _uses_logic_control_buttons; bool _uses_ipmidi; bool _no_handshake; + bool _has_meters; std::string _name; std::map<Button::ID,GlobalButtonInfo> _global_buttons; diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc index d886f5a658..a80306c799 100644 --- a/libs/surfaces/mackie/strip.cc +++ b/libs/surfaces/mackie/strip.cc @@ -80,7 +80,10 @@ Strip::Strip (Surface& s, const std::string& name, int index, const map<Button:: { _fader = dynamic_cast<Fader*> (Fader::factory (*_surface, index, "fader", *this)); _vpot = dynamic_cast<Pot*> (Pot::factory (*_surface, Pot::ID + index, "vpot", *this)); - _meter = dynamic_cast<Meter*> (Meter::factory (*_surface, index, "meter", *this)); + + if (s.mcp().device_info().has_meters()) { + _meter = dynamic_cast<Meter*> (Meter::factory (*_surface, index, "meter", *this)); + } for (map<Button::ID,StripButtonInfo>::const_iterator b = strip_buttons.begin(); b != strip_buttons.end(); ++b) { Button* bb = dynamic_cast<Button*> (Button::factory (*_surface, b->first, b->second.base_id + index, b->second.name, *this)); |