13
0

fix "other" port-group tab

Separate port-bundles for each jack client in the connection manager.

Previously, apps were only listed as separate bundles if the
ports were gathered at different times. ie one app shows up after
the other (and if no complete re-scan was triggered)

Fixes issue reported by Fons Adriaensen.
This commit is contained in:
Robin Gareus 2013-08-03 02:46:08 +02:00 committed by Paul Davis
parent 5155a36002
commit 53d98b4db9

View File

@ -574,8 +574,22 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp
}
for (DataType::iterator i = DataType::begin(); i != DataType::end(); ++i) {
if (!extra_other[*i].empty()) {
boost::shared_ptr<Bundle> b = make_bundle_from_ports (extra_other[*i], *i, inputs);
if (extra_other[*i].empty()) continue;
std::string cp;
std::vector<std::string> nb;
for (uint32_t j = 0; j < extra_other[*i].size(); ++j) {
std::string nn = extra_other[*i][j];
std::string pf = nn.substr (0, nn.find_first_of (":") + 1);
if (pf != cp && !nb.empty()) {
boost::shared_ptr<Bundle> b = make_bundle_from_ports (nb, *i, inputs);
other->add_bundle (b);
nb.clear();
}
cp = pf;
nb.push_back(extra_other[*i][j]);
}
if (!nb.empty()) {
boost::shared_ptr<Bundle> b = make_bundle_from_ports (nb, *i, inputs);
other->add_bundle (b);
}
}