summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-24 19:27:29 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-24 19:27:29 +0000
commit7d252412c3fb099645f984911bcb5ee05b9cb88d (patch)
treedfd8577d65d231356849ec126fbb3540304e73c4 /libs
parent239d56ccb9f783fb31897b0969656116fb2edfde (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.cc9
-rw-r--r--libs/surfaces/mackie/device_info.h2
-rw-r--r--libs/surfaces/mackie/strip.cc5
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));