summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-10-08 15:28:37 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-10-08 15:28:37 -0400
commit33fe33f268640fd3fa725a472c9a572120e85a1e (patch)
tree40c7d9f50fff6b9f28b1f89190b89939d0a16854
parent0c448c387bf4fc11c1bc2494055303ed12a15208 (diff)
fix initialization sequence for ipMIDI Mackie surfaces
-rw-r--r--libs/surfaces/mackie/surface.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc
index 5ee2e81abd..20f02f8aab 100644
--- a/libs/surfaces/mackie/surface.cc
+++ b/libs/surfaces/mackie/surface.cc
@@ -124,10 +124,20 @@ Surface::Surface (MackieControlProtocol& mcp, const std::string& device_name, ui
DEBUG_TRACE (DEBUG::MackieControl, "init_strips done\n");
}
- /*
- */
+ if (!_mcp.device_info().uses_ipmidi()) {
+ ARDOUR::AudioEngine::instance()->PortConnectedOrDisconnected.connect (port_connection, MISSING_INVALIDATOR, boost::bind (&Surface::connection_handler, this, _1, _2, _3, _4, _5), &_mcp);
+ } else {
+ /* ipMIDI port already exists, we can just assume that we're
+ * connected.
+ *
+ * If the user still hasn't connected the ipMIDI surface and/or
+ * turned it on, then they have to press "Discover Mackie
+ * Devices" in the GUI at the right time.
+ */
- ARDOUR::AudioEngine::instance()->PortConnectedOrDisconnected.connect (port_connection, MISSING_INVALIDATOR, boost::bind (&Surface::connection_handler, this, _1, _2, _3, _4, _5), &_mcp);
+ connection_state |= (InputConnected|OutputConnected);
+ connected ();
+ }
connect_to_signals ();