summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_group.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-12-03 11:49:18 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-12-03 12:50:32 -0500
commit34b1c0db94e432532ffc4928b5c1c0e8a3dd710c (patch)
treebc6516526da364c3b9c0241c1d85ff0523bee8cc /gtk2_ardour/port_group.cc
parent9a058672ab74acbd9b0ac1e9a26ea5efd4a948c2 (diff)
fix mis-assignment of various Ports when constructing the PortGroup list for the (e.g.) PortMatrix
Diffstat (limited to 'gtk2_ardour/port_group.cc')
-rw-r--r--gtk2_ardour/port_group.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc
index 448a8d3cf5..1e008ba12d 100644
--- a/gtk2_ardour/port_group.cc
+++ b/gtk2_ardour/port_group.cc
@@ -492,6 +492,7 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
/* Now find all other ports that we haven't thought of yet */
std::vector<std::string> extra_system[DataType::num_types];
+ std::vector<std::string> extra_ardour[DataType::num_types];
std::vector<std::string> extra_other[DataType::num_types];
string lpn (PROGRAM_NAME);
@@ -542,9 +543,11 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
DataType t (AudioEngine::instance()->port_engine().port_data_type (ph));
if (t != DataType::NIL) {
if (port_has_prefix (p, N_("system:")) ||
- port_has_prefix (p, N_("alsa_pcm")) ||
- port_has_prefix (p, lpnc)) {
+ port_has_prefix (p, N_("alsa_pcm:")) ||
+ port_has_prefix (p, N_("alsa_midi:"))) {
extra_system[t].push_back (p);
+ } else if (port_has_prefix (p, lpnc)) {
+ extra_ardour[t].push_back (p);
} else {
extra_other[t].push_back (p);
}
@@ -564,6 +567,13 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
}
for (DataType::iterator i = DataType::begin(); i != DataType::end(); ++i) {
+ if (!extra_ardour[*i].empty()) {
+ boost::shared_ptr<Bundle> b = make_bundle_from_ports (extra_ardour[*i], *i, inputs);
+ ardour->add_bundle (b);
+ }
+ }
+
+ for (DataType::iterator i = DataType::begin(); i != DataType::end(); ++i) {
if (extra_other[*i].empty()) continue;
std::string cp;
std::vector<std::string> nb;
@@ -796,4 +806,3 @@ PortGroupList::empty () const
{
return _groups.empty ();
}
-