ignore control-only physical ports when building system bundles
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 8 Jul 2016 22:41:15 +0000 (18:41 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2016 19:59:30 +0000 (14:59 -0500)
libs/ardour/session.cc

index c96c549431056431bca15be0a8693ce3cf49b32a..b22fe03643ae01f5662dc451c4f54a6d3ff3f35d 100644 (file)
@@ -930,7 +930,28 @@ Session::setup_bundles ()
        vector<string> outputs[DataType::num_types];
        for (uint32_t i = 0; i < DataType::num_types; ++i) {
                _engine.get_physical_inputs (DataType (DataType::Symbol (i)), inputs[i]);
+
+               /* rip out ControlOnly ports */
+
+               for (vector<string>::iterator si = inputs[i].begin(); si != inputs[i].end(); ) {
+                       if (PortManager::port_is_control_only (*si)) {
+                               si = inputs[i].erase (si);
+                       } else {
+                               ++si;
+                       }
+               }
+
                _engine.get_physical_outputs (DataType (DataType::Symbol (i)), outputs[i]);
+
+               /* rip out ControlOnly ports */
+
+               for (vector<string>::iterator si = outputs[i].begin(); si != outputs[i].end(); ) {
+                       if (PortManager::port_is_control_only (*si)) {
+                               si = outputs[i].erase (si);
+                       } else {
+                               ++si;
+                       }
+               }
        }
 
        /* Create a set of Bundle objects that map