use shared_ptr for all Playlist handling; cleanup works again
[ardour.git] / gtk2_ardour / public_editor.h
index 0c68eb6221d44a43f6212c3aca4640f326b6be18..8a105cd0aacfeb64429c6fb6e5f8aebb601ea4c1 100644 (file)
@@ -16,6 +16,7 @@
 #include "editing.h"
 #include "keyboard_target.h"
 #include "canvas.h"
+#include "selection.h"
 
 namespace ARDOUR {
        class Session;
@@ -85,7 +86,6 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        virtual void new_region_from_selection () = 0;
        virtual void separate_region_from_selection () = 0;
        virtual void toggle_playback (bool with_abort) = 0;
-       virtual void set_edit_menu (Gtk::Menu&) = 0;
        virtual nframes_t unit_to_frame (double unit) = 0;
        virtual double frame_to_unit (nframes_t frame) = 0;
        virtual double frame_to_unit (double frame) = 0;
@@ -106,15 +106,18 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        virtual gdouble   get_current_zoom () = 0;
        virtual PlaylistSelector& playlist_selector() const = 0;
        virtual void route_name_changed (TimeAxisView *) = 0;
-       virtual void clear_playlist (ARDOUR::Playlist&) = 0;
+       virtual void clear_playlist (boost::shared_ptr<ARDOUR::Playlist>) = 0;
        virtual void new_playlists () = 0;
        virtual void copy_playlists () = 0;
        virtual void clear_playlists () = 0;
+       virtual bool set_selected_track (TimeAxisView&, Selection::Operation op = Selection::Set, bool no_remove = false) = 0;
        virtual void set_selected_mixer_strip (TimeAxisView&) = 0;
        virtual void hide_track_in_display (TimeAxisView& tv) = 0;
+       virtual void show_track_in_display (TimeAxisView& tv) = 0;
        virtual void set_follow_playhead (bool yn) = 0;
        virtual void toggle_follow_playhead () = 0;
        virtual bool follow_playhead() const = 0;
+       virtual bool dragging_playhead() const = 0;
        virtual void ensure_float (Gtk::Window&) = 0;
        virtual void show_window () = 0;
        virtual TrackViewList* get_valid_views (TimeAxisView*, ARDOUR::RouteGroup* grp = 0) = 0;
@@ -136,6 +139,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        sigc::signal<void> Resized;
        sigc::signal<void> Realized;
        sigc::signal<void> GoingAway;
+       sigc::signal<void,nframes_t> UpdateAllTransportClocks;
 
        Glib::RefPtr<Gtk::ActionGroup> editor_actions;