From 09bad018f4cc60b501919f5da0cfa106592a731f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 6 Oct 2015 01:28:33 +0200 Subject: forward "disconnect all", partial fix for #6308 --- libs/ardour/port.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libs/ardour/port.cc') diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc index d375550d9e..06169dd576 100644 --- a/libs/ardour/port.cc +++ b/libs/ardour/port.cc @@ -128,13 +128,21 @@ Port::disconnect_all () { if (_port_handle) { + std::vector connections; + get_connections (connections); + port_engine.disconnect_all (_port_handle); _connections.clear (); /* a cheaper, less hacky way to do boost::shared_from_this() ... */ boost::shared_ptr pself = port_manager->get_port_by_name (name()); - PostDisconnect (pself, boost::shared_ptr()); // emit signal + for (vector::const_iterator c = connections.begin(); c != connections.end() && pself; ++c) { + boost::shared_ptr pother = AudioEngine::instance()->get_port_by_name (*c); + if (pother) { + PostDisconnect (pself, pother); // emit signal + } + } } return 0; -- cgit v1.2.3