major changes to Region, AudioRegion, Playlist, AudioPlaylist and Crossfade state...
[ardour.git] / gtk2_ardour / selection_templates.h
index c2ca70b526583e5bd4d34df15497e31c27d4d72a..5440112ad6cb5ad2c4ef322ca1b062641ac104cb 100644 (file)
 */
 
 #include <ardour/region.h>
-#include <ardour/audioregion.h>
 
 #include "selection.h"
+#include "region_view.h"
 
 inline void
-Selection::foreach_audio_region (void (ARDOUR::AudioRegion::*method)(void)) {
-       for (AudioRegionSelection::iterator i = audio_regions.begin(); i != audio_regions.end(); ++i) {
-               ((*i)->region.*(method))();
-       }
-}
-
-inline void
-Selection::foreach_audio_region (void (ARDOUR::Region::*method)(void)) {
-       for (AudioRegionSelection::iterator i = audio_regions.begin(); i != audio_regions.end(); ++i) {
-               ((*i)->region.*(method))();
+Selection::foreach_region (void (ARDOUR::Region::*method)(void)) {
+       for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) {
+               ARDOUR::Region* region = (*i)->region().get();
+               (region->*(method))();
        }
 }
 
 template<class A> inline void 
-Selection::foreach_audio_region (void (ARDOUR::AudioRegion::*method)(A), A arg) {
-       for (AudioRegionSelection::iterator i = audio_regions.begin(); i != audio_regions.end(); ++i) {
-               ((*i)->region.*(method))(arg);
+Selection::foreach_region (void (ARDOUR::Region::*method)(A), A arg) {
+       for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) {
+               ARDOUR::Region* region = (*i)->region().get();
+               (region->*(method))(arg);
        }
 }
 
-template<class A> inline void 
-Selection::foreach_audio_region (void (ARDOUR::Region::*method)(A), A arg) {
-       for (AudioRegionSelection::iterator i = audio_regions.begin(); i != audio_regions.end(); ++i) {
-               ((*i)->region.*(method))(arg);
-       }
-}
-
-#if 0
-
-template<class A> inline void 
-Selection::foreach_route (void (ARDOUR::Route::*method)(A), A arg) {
-       for (list<ARDOUR::Route*>::iterator i = routes.begin(); i != routes.end(); ++i) {
-               ((*i)->region.*(method))(arg);
-       }
-}
-
-template<class A1, class A2> inline void 
-Selection::foreach_route (void (ARDOUR::Route::*method)(A1,A2), A1 arg1, A2 arg2) {
-       for (list<ARDOUR::Route*>::iterator i = routes.begin(); i != routes.end(); ++i) {
-               ((*i)->region.*(method))(arg1, arg2);
-       }
-}
-
-#endif
-
 #endif /* __ardour_gtk_selection_templates_h__ */