From 97d1ee9822289e383a784371abbc6d5786c39534 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 3 Apr 2020 13:23:41 -0600 Subject: [PATCH] move templated foreach methods from TrackSelection into parent (TrackViewList) This allows the same methods to be used on e.g. Editor::track_views --- gtk2_ardour/track_selection.h | 62 --------------------------- gtk2_ardour/track_view_list.h | 80 ++++++++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 63 deletions(-) diff --git a/gtk2_ardour/track_selection.h b/gtk2_ardour/track_selection.h index c5e0425704..7fdfaadd10 100644 --- a/gtk2_ardour/track_selection.h +++ b/gtk2_ardour/track_selection.h @@ -22,9 +22,6 @@ #define __ardour_gtk_track_selection_h__ #include "track_view_list.h" -#include "route_ui.h" -#include "audio_time_axis.h" -#include "midi_time_axis.h" class PublicEditor; @@ -36,65 +33,6 @@ public: virtual ~TrackSelection (); - template - void foreach_time_axis (Function f) { - for (iterator i = begin(); i != end(); ++i) { - f (*i); - } - } - - template - void foreach_route_ui (Function f) { - for (iterator i = begin(); i != end(); ) { - iterator tmp = i; - ++tmp; - - RouteUI* t = dynamic_cast (*i); - if (t) { - f (t); - } - i = tmp; - } - } - - template - void foreach_route_time_axis (Function f) { - for (iterator i = begin(); i != end(); ) { - iterator tmp = i; - ++tmp; - RouteTimeAxisView* t = dynamic_cast (*i); - if (t) { - f (t); - } - i = tmp; - } - } - - template - void foreach_audio_time_axis (Function f) { - for (iterator i = begin(); i != end(); ) { - iterator tmp = i; - ++tmp; - AudioTimeAxisView* t = dynamic_cast (*i); - if (t) { - f (t); - } - i = tmp; - } - } - - template - void foreach_midi_time_axis (Function f) { - for (iterator i = begin(); i != end(); ) { - iterator tmp = i; - ++tmp; - MidiTimeAxisView* t = dynamic_cast (*i); - if (t) { - f (t); - } - i = tmp; - } - } private: PublicEditor const * _editor; diff --git a/gtk2_ardour/track_view_list.h b/gtk2_ardour/track_view_list.h index 4ed4461d9d..8874795703 100644 --- a/gtk2_ardour/track_view_list.h +++ b/gtk2_ardour/track_view_list.h @@ -20,10 +20,15 @@ #ifndef __ardour_gtk_track_view_list_h__ #define __ardour_gtk_track_view_list_h__ -#include "ardour/types.h" +#include "ardour/types.h" /* XXX is this here because of some Cocoa nonsense ? */ + #include #include +#include "route_ui.h" +#include "audio_time_axis.h" +#include "midi_time_axis.h" + class TimeAxisView; class TrackViewList : public std::list @@ -39,6 +44,79 @@ public: TrackViewList filter_to_unique_playlists (); ARDOUR::RouteList routelist () const; + + template + void foreach_time_axis (Function f) { + for (iterator i = begin(); i != end(); ++i) { + f (*i); + } + } + + template + void foreach_route_ui (Function f) { + for (iterator i = begin(); i != end(); ) { + iterator tmp = i; + ++tmp; + + RouteUI* t = dynamic_cast (*i); + if (t) { + f (t); + } + i = tmp; + } + } + + template + void foreach_stripable_time_axis (Function f) { + for (iterator i = begin(); i != end(); ) { + iterator tmp = i; + ++tmp; + StripableTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + i = tmp; + } + } + + template + void foreach_route_time_axis (Function f) { + for (iterator i = begin(); i != end(); ) { + iterator tmp = i; + ++tmp; + RouteTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + i = tmp; + } + } + + template + void foreach_audio_time_axis (Function f) { + for (iterator i = begin(); i != end(); ) { + iterator tmp = i; + ++tmp; + AudioTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + i = tmp; + } + } + + template + void foreach_midi_time_axis (Function f) { + for (iterator i = begin(); i != end(); ) { + iterator tmp = i; + ++tmp; + MidiTimeAxisView* t = dynamic_cast (*i); + if (t) { + f (t); + } + i = tmp; + } + } }; #endif