* fixed segfault on MIDI Panic button
[ardour.git] / gtk2_ardour / public_editor.h
index f32c0565e3c1345fcf3f1564235e4a7e87f953d0..e6f576352a53fb040d20696b2b8984c3fd21d5f4 100644 (file)
@@ -38,7 +38,7 @@
 
 namespace ARDOUR {
        class Session;
-       class AudioExportSpecification;
+       class ExportSpecification;
        class Region;
        class Playlist;
        class RouteGroup;
@@ -85,11 +85,14 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        PublicEditor ();
        virtual ~PublicEditor ();
 
-       typedef list<TimeAxisView *> TrackViewList;
+       typedef TrackSelection TrackViewList;
 
        /** @return Singleton PublicEditor instance */
        static PublicEditor& instance () { return *_instance; }
 
+       virtual bool have_idled() const = 0;
+       virtual void first_idle() = 0;
+
        /** Attach this editor to a Session.
         * @param s Session to connect to.
         */
@@ -212,15 +215,15 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        virtual void add_toplevel_controls (Gtk::Container&) = 0;
        virtual void set_zoom_focus (Editing::ZoomFocus) = 0;
        virtual Editing::ZoomFocus get_zoom_focus () const = 0;
-       virtual gdouble get_current_zoom () = 0;
-       virtual PlaylistSelector& playlist_selector () const = 0;
+       virtual gdouble   get_current_zoom () const = 0;
+       virtual PlaylistSelector& playlist_selector() const = 0;
        virtual void route_name_changed (TimeAxisView *) = 0;
        virtual void clear_playlist (boost::shared_ptr<ARDOUR::Playlist>) = 0;
        virtual void new_playlists (TimeAxisView*) = 0;
        virtual void copy_playlists (TimeAxisView*) = 0;
        virtual void clear_playlists (TimeAxisView*) = 0;
        virtual void select_all_tracks () = 0;
-       virtual bool set_selected_track (TimeAxisView&, Selection::Operation op = Selection::Set, bool no_remove = false) = 0;
+       virtual void 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;
@@ -252,7 +255,11 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        virtual void remove_last_capture () = 0;
        virtual void maximise_editing_space () = 0;
        virtual void restore_editing_space () = 0;
-       virtual nframes_t edit_cursor_position (bool sync) = 0;
+       virtual nframes64_t get_preferred_edit_position (bool ignore_playhead = false) = 0;
+       virtual void toggle_meter_updating() = 0;
+       virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret) = 0;
+       virtual void mouse_add_new_marker (nframes_t where, bool is_cd=false, bool is_xrun=false) = 0;
+       virtual void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>) = 0;
 
 #ifdef WITH_CMT
        virtual void add_imageframe_time_axis(const std::string & track_name, void*)  = 0;
@@ -262,6 +269,8 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
        virtual TimeAxisView* get_named_time_axis(const std::string & name)  = 0;
 #endif
 
+       virtual RouteTimeAxisView* get_route_view_by_id (PBD::ID& id) = 0;
+
        virtual void get_equivalent_regions (RegionView* rv, std::vector<RegionView*>&) const = 0;
 
        sigc::signal<void> ZoomFocusChanged;