- RegionViewList copy;
-
- /* Place regions */
- for (i = region_views.begin(); i != region_views.end(); ) {
- tmp = i;
- tmp++;
-
- if (!(*i)->is_valid()) {
- delete *i;
- region_views.erase (i);
- i = tmp;
- continue;
- } else {
- (*i)->enable_display(true);
- (*i)->set_height(height); // apply note range
- }
-
- /* Sort regionviews by layer so that when we call region_layered ()
- the canvas layering works out (in non-stacked mode). */
-
- if (copy.size() == 0) {
- copy.push_front((*i));
- i = tmp;
- continue;
- }
-
- RegionViewList::iterator k = copy.begin();
- RegionViewList::iterator l = copy.end();
- l--;
-
- if ((*i)->region()->layer() <= (*k)->region()->layer()) {
- copy.push_front((*i));
- i = tmp;
- continue;
- } else if ((*i)->region()->layer() >= (*l)->region()->layer()) {
- copy.push_back((*i));
- i = tmp;
- continue;
- }
+ // Add and display region views, and flag them as valid
+ _trackview.get_diskstream()->playlist()->foreach_region(
+ static_cast<StreamView*>(this),
+ &StreamView::add_region_view);