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:
parent
0eb5b7d1ab
commit
9d63cfcab5
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue