diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-05 14:22:32 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-05 14:22:32 -0400 |
commit | 616f2a0370a10dcc7372a95f6bca9f5a45698980 (patch) | |
tree | b07badccad237cc66d0668482ad65cedefdee23f /gtk2_ardour/port_group.cc | |
parent | 499b7fcfa9f3e8535a4500143a9d7af7b67c6984 (diff) | |
parent | 38e4f7bd1ba2ec9ae37dbb384da449f894cd8564 (diff) |
fix conflicts after merge with master
Diffstat (limited to 'gtk2_ardour/port_group.cc')
-rw-r--r-- | gtk2_ardour/port_group.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc index a25c2e0f84..5b4f151da8 100644 --- a/gtk2_ardour/port_group.cc +++ b/gtk2_ardour/port_group.cc @@ -564,8 +564,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); } } |