diff --git a/libs/ardour/port_engine_shared.cc b/libs/ardour/port_engine_shared.cc index cd9c4b3da5..5aae77f2a4 100644 --- a/libs/ardour/port_engine_shared.cc +++ b/libs/ardour/port_engine_shared.cc @@ -81,7 +81,7 @@ BackendPort::connect (BackendPortHandle port, BackendPortHandle self) << " (" << name () << ") -> (" << port->name () << ")" << endmsg; #endif - return -1; + return 0; } store_connection (port); diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc index bc78aa95b9..942da6b26b 100644 --- a/libs/backends/jack/jack_portengine.cc +++ b/libs/backends/jack/jack_portengine.cc @@ -617,7 +617,11 @@ int JACKAudioBackend::connect (PortHandle port, const std::string& other) { GET_PRIVATE_JACK_POINTER_RET (_priv_jack, -1); - return jack_connect (_priv_jack, jack_port_name (boost::dynamic_pointer_cast(port)->jack_ptr), other.c_str()); + int r = jack_connect (_priv_jack, jack_port_name (boost::dynamic_pointer_cast(port)->jack_ptr), other.c_str()); + if (r == 0 || r == EEXIST) { + return 0; + } + return r; } int JACKAudioBackend::connect (const std::string& src, const std::string& dst) @@ -625,6 +629,9 @@ JACKAudioBackend::connect (const std::string& src, const std::string& dst) GET_PRIVATE_JACK_POINTER_RET (_priv_jack, -1); int r = jack_connect (_priv_jack, src.c_str(), dst.c_str()); + if (r == 0 || r == EEXIST) { + return 0; + } return r; }