X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_selection.cc;h=e1c6f4e7ea9b15e959a73a7793af23f79df97df6;hb=e11b3f90c2d02735a071d526d67cfd0de90cbac3;hp=f35391cff5dd8b4d0738c685c267bcca2a3a1852;hpb=68e943265edf04e63a8e8b8f62bab20f99d9c637;p=ardour.git diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index f35391cff5..e1c6f4e7ea 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -362,6 +362,44 @@ Editor::get_equivalent_regions (RegionView* basis, vector& equivale equivalent_regions.push_back (basis); } +int +Editor::get_regionview_count_from_region_list (boost::shared_ptr region) +{ + int region_count = 0; + + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + + RouteTimeAxisView* tatv; + + if ((tatv = dynamic_cast (*i)) != 0) { + + boost::shared_ptr pl; + vector > results; + RegionView* marv; + boost::shared_ptr ds; + + if ((ds = tatv->get_diskstream()) == 0) { + /* bus */ + continue; + } + + if ((pl = (ds->playlist())) != 0) { + pl->get_region_list_equivalent_regions (region, results); + } + + for (vector >::iterator ir = results.begin(); ir != results.end(); ++ir) { + if ((marv = tatv->view()->find_view (*ir)) != 0) { + region_count++; + } + } + + } + } + + return region_count; +} + + bool Editor::set_selected_regionview_from_click (bool press, Selection::Operation op, bool no_track_remove) {