X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection_templates.h;h=0dce2f903b97bdda4eb00cf03bc15f54ed8da4b7;hb=631b8f1b6b82f1c6c71fe5c67179d8cbc2f7775a;hp=cc7933d879c6aba6720a6f01cecd045ad95e03cf;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/gtk2_ardour/selection_templates.h b/gtk2_ardour/selection_templates.h index cc7933d879..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 @@ -21,7 +21,7 @@ #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. */ @@ -29,6 +29,7 @@ #include "selection.h" #include "region_view.h" +#include "midi_region_view.h" inline void Selection::foreach_region (void (ARDOUR::Region::*method)(void)) { @@ -45,7 +46,17 @@ Selection::foreach_regionview (void (RegionView::*method)(void)) { } } -template inline void +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_region (void (ARDOUR::Region::*method)(A), A arg) { for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) { ARDOUR::Region* region = (*i)->region().get();