Changes to Editor::visual_changer to support Item/Canvas::prepare_for_render
[ardour.git] / gtk2_ardour / editor.h
index 868817bddd9f759eded73ca8770c7d83a6b38156..633329541e883bd32276957f276b363c60805516 100644 (file)
@@ -140,14 +140,13 @@ class TimeSelection;
 class RegionLayeringOrderEditor;
 class VerboseCursor;
 
-class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
+class Editor : public PublicEditor, public PBD::ScopedConnectionList
 {
 public:
        Editor ();
        ~Editor ();
 
        void             set_session (ARDOUR::Session *);
-       ARDOUR::Session* session() const { return _session; }
 
        Gtk::Window* use_own_window (bool and_fill_it);
 
@@ -427,7 +426,7 @@ public:
        void start_resize_line_ops ();
        void end_resize_line_ops ();
 
-       TrackViewList const & get_track_views () {
+       TrackViewList const & get_track_views () const {
                return track_views;
        }
 
@@ -611,6 +610,7 @@ private:
        Editing::ZoomFocus zoom_focus;
 
        void set_samples_per_pixel (framecnt_t);
+       void on_samples_per_pixel_changed ();
 
        Editing::MouseMode mouse_mode;
        Editing::SnapType  pre_internal_snap_type;
@@ -1149,6 +1149,9 @@ private:
        };
 
        VisualChange pending_visual_change;
+       bool visual_change_queued;
+
+       void pre_render ();
 
        static int _idle_visual_changer (void *arg);
        int idle_visual_changer ();
@@ -1158,7 +1161,13 @@ private:
        /* track views */
        TrackViewList track_views;
        std::pair<TimeAxisView*, double> trackview_by_y_position (double, bool trackview_relative_offset = true) const;
-       TimeAxisView* axis_view_from_stripable (boost::shared_ptr<ARDOUR::Stripable>) const;
+
+       AxisView* axis_view_by_stripable (boost::shared_ptr<ARDOUR::Stripable>) const;
+       AxisView* axis_view_by_control (boost::shared_ptr<ARDOUR::AutomationControl>) const;
+
+       TimeAxisView* time_axis_view_from_stripable (boost::shared_ptr<ARDOUR::Stripable> s) const {
+               return dynamic_cast<TimeAxisView*> (axis_view_by_stripable (s));
+       }
 
        TrackViewList get_tracks_for_range_action () const;
 
@@ -1857,7 +1866,7 @@ private:
 
        void time_selection_changed ();
        void update_time_selection_display ();
-       void track_selection_changed ();
+       void presentation_info_changed (PBD::PropertyChange const &);
        void region_selection_changed ();
        sigc::connection editor_regions_selection_changed_connection;
        void sensitize_all_region_actions (bool);