add JAG to author list
[ardour.git] / gtk2_ardour / editor.h
index 8e356c86daaf3a9b38f325cccee75493d7180984..3a246e2f2d54b7be01e659496b3338753d91bd93 100644 (file)
@@ -171,16 +171,21 @@ class Editor : public PublicEditor
        std::vector<std::string> rb_opt_strings;
 #endif
 
-       /* option editor-access */
+       //global waveform options
 
        void set_show_waveforms (bool yn);
        bool show_waveforms() const { return _show_waveforms; }
 
-       void set_waveform_scale (Editing::WaveformScale);
+       void set_show_waveforms_rectified (bool yn);
+       bool show_waveforms_rectified() const { return _show_waveforms_rectified; }
 
        void set_show_waveforms_recording (bool yn);
        bool show_waveforms_recording() const { return _show_waveforms_recording; }
        
+       //per-track waveform options
+       
+       void set_waveform_scale (Editing::WaveformScale);
+
        /* things that need to be public to be used in the main menubar */
 
        void new_region_from_selection ();
@@ -189,7 +194,6 @@ class Editor : public PublicEditor
        void separate_region_from_punch ();
        void separate_region_from_loop ();
        void separate_regions_using_location (ARDOUR::Location&);
-       void toggle_playback (bool with_abort);
        void transition_to_rolling (bool forward);
 
        /* undo related */
@@ -286,6 +290,7 @@ class Editor : public PublicEditor
        void clear_playlists (TimeAxisView*);
 
        TrackViewList* get_valid_views (TimeAxisView*, ARDOUR::RouteGroup* grp = 0);
+       void get_onscreen_tracks (TrackViewList&);
 
        Width editor_mixer_strip_width;
        void maybe_add_mixer_strip_width (XMLNode&);
@@ -307,13 +312,19 @@ class Editor : public PublicEditor
 
        /* playhead/screen stuff */
        
+       void set_stationary_playhead (bool yn);
+       void toggle_stationary_playhead ();
+       bool stationary_playhead() const { return _stationary_playhead; }
+
        void set_follow_playhead (bool yn);
        void toggle_follow_playhead ();
        bool follow_playhead() const { return _follow_playhead; }
        bool dragging_playhead () const { return _dragging_playhead; }
 
        void toggle_waveform_visibility ();
+       void toggle_waveform_rectified ();
        void toggle_waveforms_while_recording ();
+       
        void toggle_measure_visibility ();
        void toggle_logo_visibility ();
 
@@ -418,7 +429,6 @@ class Editor : public PublicEditor
            double              frames_per_unit;
            nframes64_t         leftmost_frame;
            Editing::ZoomFocus  zoom_focus;
-           bool                zoomed_to_region;
            std::list<TAVState> track_states;
        };
        
@@ -588,8 +598,6 @@ class Editor : public PublicEditor
        Gdk::Cursor* which_grabber_cursor ();
 
        ArdourCanvas::Canvas* track_canvas;
-
-       ArdourCanvas::Text* first_action_message;
        ArdourCanvas::Text* verbose_canvas_cursor;
        bool                 verbose_cursor_visible;
 
@@ -777,18 +785,20 @@ class Editor : public PublicEditor
        Cursor* playhead_cursor;
        ArdourCanvas::Group* cursor_group;
 
-       void    cursor_to_region_boundary (Cursor*, int32_t dir);
-       void    cursor_to_next_region_boundary (Cursor*);
-       void    cursor_to_previous_region_boundary (Cursor*);
+       nframes64_t get_region_boundary (nframes64_t pos, int32_t dir, bool with_selection, bool only_onscreen);
+
+       void    cursor_to_region_boundary (bool with_selection, int32_t dir);
+       void    cursor_to_next_region_boundary (bool with_selection);
+       void    cursor_to_previous_region_boundary (bool with_selection);
        void    cursor_to_next_region_point (Cursor*, ARDOUR::RegionPoint);
        void    cursor_to_previous_region_point (Cursor*, ARDOUR::RegionPoint);
        void    cursor_to_region_point (Cursor*, ARDOUR::RegionPoint, int32_t dir);
        void    cursor_to_selection_start (Cursor *);
        void    cursor_to_selection_end   (Cursor *);
 
-       void    selected_marker_to_region_boundary (int32_t dir);
-       void    selected_marker_to_next_region_boundary ();
-       void    selected_marker_to_previous_region_boundary ();
+       void    selected_marker_to_region_boundary (bool with_selection, int32_t dir);
+       void    selected_marker_to_next_region_boundary (bool with_selection);
+       void    selected_marker_to_previous_region_boundary (bool with_selection);
        void    selected_marker_to_next_region_point (ARDOUR::RegionPoint);
        void    selected_marker_to_previous_region_point (ARDOUR::RegionPoint);
        void    selected_marker_to_region_point (ARDOUR::RegionPoint, int32_t dir);
@@ -858,8 +868,6 @@ class Editor : public PublicEditor
        void tie_vertical_scrolling ();
        void scroll_canvas_horizontally ();
        void scroll_canvas_vertically ();
-       void canvas_horizontally_scrolled ();
-       void canvas_scroll_to (nframes64_t);
 
        struct VisualChange {
            enum Type { 
@@ -1095,7 +1103,7 @@ class Editor : public PublicEditor
        void adjust_region_scale_amplitude (bool up);
 
        void do_insert_time ();
-       void insert_time (nframes64_t pos, nframes64_t distance, Editing::InsertTimeOption opt, bool ignore_music_glue, bool markers_too);
+       void insert_time (nframes64_t pos, nframes64_t distance, Editing::InsertTimeOption opt, bool ignore_music_glue, bool markers_too, bool tempo_too);
 
        void tab_to_transient (bool forward);
 
@@ -1140,7 +1148,6 @@ class Editor : public PublicEditor
        void temporal_zoom_selection ();
        void temporal_zoom_region (bool both_axes);
        void toggle_zoom_region (bool both_axes);
-       bool zoomed_to_region;
        void temporal_zoom_session ();
        void temporal_zoom (gdouble scale);
        void temporal_zoom_by_frame (nframes64_t start, nframes64_t end, const string & op);
@@ -1470,9 +1477,13 @@ public:
        /* display control */
        
        bool _show_measures;
+
        bool _show_waveforms;
-       bool _follow_playhead;
+       bool _show_waveforms_rectified;
        bool _show_waveforms_recording;
+
+       bool _stationary_playhead;
+       bool _follow_playhead;
        
        ARDOUR::TempoMap::BBTPointList *current_bbt_points;
        
@@ -1766,6 +1777,7 @@ public:
        void redisplay_route_list();
        bool ignore_route_list_reorder;
        bool no_route_list_redisplay;
+       bool sync_track_view_list_and_route_list ();
 
        void build_route_list_menu ();
        void show_route_list_menu ();
@@ -1806,6 +1818,8 @@ public:
        void build_edit_group_list_menu ();
        void activate_all_edit_groups ();
        void disable_all_edit_groups ();
+       void show_all_edit_groups ();
+       void hide_all_edit_groups ();
 
        bool in_edit_group_row_change;
        void edit_group_row_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
@@ -2217,7 +2231,6 @@ public:
 
        void remove_tracks ();
        void toggle_tracks_active ();
-       void waveform_scale_chosen (Editing::WaveformScale);
 
        bool _have_idled;
        int resize_idle_id;