diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-08 15:28:37 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-10-08 15:28:37 -0400 |
commit | 33fe33f268640fd3fa725a472c9a572120e85a1e (patch) | |
tree | 40c7d9f50fff6b9f28b1f89190b89939d0a16854 /libs/surfaces/mackie/surface.cc | |
parent | 0c448c387bf4fc11c1bc2494055303ed12a15208 (diff) |
fix initialization sequence for ipMIDI Mackie surfaces
Diffstat (limited to 'libs/surfaces/mackie/surface.cc')
-rw-r--r-- | libs/surfaces/mackie/surface.cc | 16 |
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 (); |