- if ((*i)->visible ()) {
-
- PortGroup::BundleList const & bundles = (*i)->bundles ();
- for (PortGroup::BundleList::const_iterator j = bundles.begin(); j != bundles.end(); ++j) {
- render_bundle_name (cr, background_colour (), j->has_colour ? j->colour : get_a_bundle_colour (N), 0, y, j->bundle);
-
- if (!_matrix->show_only_bundles()) {
- for (uint32_t k = 0; k < j->bundle->nchannels(); ++k) {
- Gdk::Color c = j->has_colour ? j->colour : get_a_bundle_colour (M);
- render_channel_name (cr, background_colour (), c, 0, y, ARDOUR::BundleChannel (j->bundle, k));
- y += grid_spacing();
- ++M;
- }
- } else {
- y += grid_spacing();
- }
-
- ++N;
+ PortGroup::BundleList const & bundles = _matrix->visible_rows()->bundles ();
+ for (PortGroup::BundleList::const_iterator i = bundles.begin(); i != bundles.end(); ++i) {
+ render_bundle_name (cr, background_colour (), (*i)->has_colour ? (*i)->colour : get_a_bundle_colour (N), 0, y, (*i)->bundle);
+
+ if (!_matrix->show_only_bundles()) {
+ uint32_t const N = _matrix->count_of_our_type ((*i)->bundle->nchannels());
+ for (uint32_t j = 0; j < N; ++j) {
+ Gdk::Color c = (*i)->has_colour ? (*i)->colour : get_a_bundle_colour (M);
+ ARDOUR::BundleChannel bc (
+ (*i)->bundle,
+ (*i)->bundle->type_channel_to_overall (_matrix->type (), j)
+ );
+
+ render_channel_name (cr, background_colour (), c, 0, y, bc);
+ y += grid_spacing();
+ ++M;