From 34b1c0db94e432532ffc4928b5c1c0e8a3dd710c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 3 Dec 2015 11:49:18 -0500 Subject: [PATCH] fix mis-assignment of various Ports when constructing the PortGroup list for the (e.g.) PortMatrix --- gtk2_ardour/port_group.cc | 15 ++++++++++++--- 1 file 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 extra_system[DataType::num_types]; + std::vector extra_ardour[DataType::num_types]; std::vector 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); } @@ -563,6 +566,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 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; @@ -796,4 +806,3 @@ PortGroupList::empty () const { return _groups.empty (); } -