diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-07-08 18:41:15 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-09-27 14:59:30 -0500 |
commit | 3cf92ee52391afb0e4463ab999723a09e5fa08bc (patch) | |
tree | 7412b6e12df21293bf640a8c57f122063bf76525 /libs | |
parent | bc1876a84b1605e3e23aaacf1484b75af86d5077 (diff) |
ignore control-only physical ports when building system bundles
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/session.cc | 21 |
1 files changed, 21 insertions, 0 deletions
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<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 |