summaryrefslogtreecommitdiff
path: root/libs/ardour/port_manager.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-30 17:48:57 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-30 17:48:57 -0400
commit5e0c6af4062a2982fb90ad318973ab1d4beed2b9 (patch)
tree75f33513f650d716fa7b02d2c1289bb8caa6718c /libs/ardour/port_manager.cc
parenta9691abf3b0eaca5e78bea9e8d1cb7ea700e2e1e (diff)
jack_audiobackend.cc finally compiles
Diffstat (limited to 'libs/ardour/port_manager.cc')
-rw-r--r--libs/ardour/port_manager.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc
index c279cf6d27..1a08849791 100644
--- a/libs/ardour/port_manager.cc
+++ b/libs/ardour/port_manager.cc
@@ -473,3 +473,42 @@ AudioEngine::disconnect (boost::shared_ptr<Port> port)
return port->disconnect_all ();
}
+int
+PortManager::reestablish_ports ()
+{
+ Ports::iterator i;
+
+ boost::shared_ptr<Ports> p = ports.reader ();
+
+ for (i = p->begin(); i != p->end(); ++i) {
+ if (i->second->reestablish ()) {
+ break;
+ }
+ }
+
+ if (i != p->end()) {
+ /* failed */
+ remove_all_ports ();
+ return -1;
+ }
+
+ MIDI::Manager::instance()->reestablish ();
+
+ return 0;
+}
+
+int
+PortManager::reconnect_ports ()
+{
+ boost::shared_ptr<Ports> p = ports.reader ();
+
+ /* re-establish connections */
+
+ for (i = p->begin(); i != p->end(); ++i) {
+ i->second->reconnect ();
+ }
+
+ MIDI::Manager::instance()->reconnect ();
+
+ return 0;
+}