From 3cf92ee52391afb0e4463ab999723a09e5fa08bc Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 8 Jul 2016 18:41:15 -0400 Subject: [PATCH] ignore control-only physical ports when building system bundles --- libs/ardour/session.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index c96c549431..b22fe03643 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -930,7 +930,28 @@ Session::setup_bundles () vector 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::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::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