summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/port_manager.h1
-rw-r--r--libs/ardour/port_manager.cc10
2 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/ardour/port_manager.h b/libs/ardour/ardour/port_manager.h
index 7cc1125bcc..d04a38076b 100644
--- a/libs/ardour/ardour/port_manager.h
+++ b/libs/ardour/ardour/port_manager.h
@@ -67,6 +67,7 @@ class LIBARDOUR_API PortManager
int connect (const std::string& source, const std::string& destination);
int disconnect (const std::string& source, const std::string& destination);
int disconnect (boost::shared_ptr<Port>);
+ int disconnect (std::string const &);
int reestablish_ports ();
int reconnect_ports ();
diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc
index febef6aa4f..5c13e7ee18 100644
--- a/libs/ardour/port_manager.cc
+++ b/libs/ardour/port_manager.cc
@@ -540,6 +540,16 @@ PortManager::disconnect (boost::shared_ptr<Port> port)
}
int
+PortManager::disconnect (std::string const & name)
+{
+ PortEngine::PortHandle ph = _backend->get_port_by_name (name);
+ if (ph) {
+ return _backend->disconnect_all (ph);
+ }
+ return -2;
+}
+
+int
PortManager::reestablish_ports ()
{
Ports::iterator i;