X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection_templates.h;h=0dce2f903b97bdda4eb00cf03bc15f54ed8da4b7;hb=71a4796dc3dbf8a7fe1df5c5d7acea388b40eae0;hp=c2ca70b526583e5bd4d34df15497e31c27d4d72a;hpb=209d967b1bb80a9735d690d8f4f0455ecb9970ca;p=ardour.git diff --git a/gtk2_ardour/selection_templates.h b/gtk2_ardour/selection_templates.h index c2ca70b526..0dce2f903b 100644 --- a/gtk2_ardour/selection_templates.h +++ b/gtk2_ardour/selection_templates.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2003 Paul Davis + Copyright (C) 2000-2003 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,66 +15,53 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_gtk_selection_templates_h__ #define __ardour_gtk_selection_templates_h__ /* these inlines require knowledge of Region and Route classes, - and so they are in a separate header file from selection.h to + and so they are in a separate header file from selection.h to avoid multiplying dependencies. */ -#include -#include +#include "ardour/region.h" #include "selection.h" +#include "region_view.h" +#include "midi_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))(); +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))(); } } 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_regionview (void (RegionView::*method)(void)) { + for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) { + ((*i)->*(method))(); } } -template 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); - } -} - -template 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 inline void -Selection::foreach_route (void (ARDOUR::Route::*method)(A), A arg) { - for (list::iterator i = routes.begin(); i != routes.end(); ++i) { - ((*i)->region.*(method))(arg); +inline void +Selection::foreach_midi_regionview (void (MidiRegionView::*method)(void)) { + for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) { + MidiRegionView* mrv = dynamic_cast(*i); + if (mrv) { + (mrv->*(method))(); + } } } -template inline void -Selection::foreach_route (void (ARDOUR::Route::*method)(A1,A2), A1 arg1, A2 arg2) { - for (list::iterator i = routes.begin(); i != routes.end(); ++i) { - ((*i)->region.*(method))(arg1, arg2); +template inline void +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); } } -#endif - #endif /* __ardour_gtk_selection_templates_h__ */