From 1f856918705353635831f4feb6c4acba34e09f40 Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Tue, 13 Oct 2015 22:19:36 -0700 Subject: fix MCP ports hang on device change and multi-surface device reconnect. --- libs/surfaces/mackie/mackie_control_protocol.cc | 2 +- libs/surfaces/mackie/surface.cc | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 9e1a2bbce7..93b54e7d6a 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -809,7 +809,7 @@ MackieControlProtocol::create_surfaces () XMLNodeList const& devices = configuration_state->children(); for (XMLNodeList::const_iterator d = devices.begin(); d != devices.end(); ++d) { XMLProperty* prop = (*d)->property (X_("name")); - if (prop && prop->value() == device_name) { + if (prop && prop->value() == _device_info.name()) { this_device = *d; break; } diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc index 8c4c10a336..954aeebca5 100644 --- a/libs/surfaces/mackie/surface.cc +++ b/libs/surfaces/mackie/surface.cc @@ -166,7 +166,9 @@ Surface::~Surface () delete _jog_wheel; delete _port; - + // the ports take time to release and we may be rebuilding right away + // in the case of changing devices. + g_usleep (100000); DEBUG_TRACE (DEBUG::MackieControl, "Surface::~Surface done\n"); } -- cgit v1.2.3