X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpublic_editor.h;h=89c75bdd948361f33ee6c0269e427030f36bb870;hb=f208593249c7bc1f139809aa32c8aa6320782af0;hp=ce625e18899898071119506c7b53a39417227b06;hpb=7bc425fd0d201626d3591ad88b891b0b67c69814;p=ardour.git diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index ce625e1889..89c75bdd94 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -36,12 +36,10 @@ #include #include "evoral/types.hpp" -#include "ardour/route_group.h" #include "pbd/statefuldestructible.h" #include "editing.h" -#include "canvas.h" #include "selection.h" namespace ARDOUR { @@ -62,31 +60,31 @@ namespace Gtkmm2ext { class TearOff; } -class Editor; -class TimeAxisViewItem; -class TimeAxisView; -class PluginUIWindow; -class PluginSelector; -class PlaylistSelector; -class XMLNode; -class Selection; +class AudioRegionView; class AutomationLine; +class AutomationTimeAxisView; class ControlPoint; -class SelectionRect; -class RouteTimeAxisView; -class RegionView; -class AudioRegionView; -class TempoMarker; -class MeterMarker; +class DragManager; +class Editor; +class ImageFrameTimeAxis; +class ImageFrameView; class Marker; -class AutomationTimeAxisView; class MarkerTimeAxis; -class ImageFrameView; -class ImageFrameTimeAxis; class MarkerView; -class DragManager; +class MeterMarker; class MouseCursors; +class PlaylistSelector; +class PluginSelector; +class PluginUIWindow; +class RegionView; +class RouteTimeAxisView; +class Selection; +class TempoMarker; +class TimeAxisView; +class TimeAxisViewItem; class VerboseCursor; +class XMLNode; +struct SelectionRect; using ARDOUR::framepos_t; using ARDOUR::framecnt_t; @@ -203,6 +201,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual framepos_t unit_to_frame (double unit) const = 0; virtual double frame_to_unit (framepos_t frame) const = 0; virtual double frame_to_unit (double frame) const = 0; + virtual double frame_to_unit_unrounded (framepos_t frame) const = 0; virtual framepos_t pixel_to_frame (double pixel) const = 0; virtual gulong frame_to_pixel (framepos_t frame) const = 0; virtual Selection& get_selection () const = 0; @@ -210,10 +209,18 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void track_mixer_selection () = 0; virtual bool extend_selection_to_track (TimeAxisView&) = 0; virtual void play_selection () = 0; + virtual void play_with_preroll () = 0; + virtual void maybe_locate_with_edit_preroll (framepos_t location) = 0; virtual void set_show_measures (bool yn) = 0; virtual bool show_measures () const = 0; virtual bool redraw_measures () = 0; + virtual Editing::MouseMode effective_mouse_mode () const = 0; + + /** Import existing media */ + virtual void do_import (std::vector paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, framepos_t&) = 0; + virtual void do_embed (std::vector paths, Editing::ImportDisposition, Editing::ImportMode mode, framepos_t&) = 0; + /** Open main export dialog */ virtual void export_audio () = 0; @@ -263,7 +270,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void show_window () = 0; virtual framepos_t leftmost_position() const = 0; virtual framecnt_t current_page_frames() const = 0; - virtual double canvas_height () const = 0; + virtual double visible_canvas_height () const = 0; virtual void temporal_zoom_step (bool coarser) = 0; virtual void ensure_time_axis_view_is_visible (const TimeAxisView& tav) = 0; virtual void scroll_tracks_down_line () = 0; @@ -274,6 +281,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void remove_last_capture () = 0; virtual void maximise_editing_space () = 0; virtual void restore_editing_space () = 0; + virtual void update_tearoff_visibility () = 0; virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false) = 0; virtual void toggle_meter_updating() = 0; virtual void split_region_at_points (boost::shared_ptr, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0; @@ -283,6 +291,16 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual framecnt_t get_nudge_distance (framepos_t pos, framecnt_t& next) = 0; virtual Evoral::MusicalTime get_grid_type_as_beats (bool& success, framepos_t position) = 0; + virtual void queue_visual_videotimeline_update () = 0; + virtual void toggle_ruler_video (bool) = 0; + virtual void toggle_xjadeo_proc (int) = 0; + virtual void toggle_xjadeo_viewoption (int, int) = 0; + virtual void set_xjadeo_sensitive (bool onoff) = 0; + virtual int get_videotl_bar_height () const = 0; + virtual void set_video_timeline_height (const int h) = 0; + virtual void embed_audio_from_video (std::string, framepos_t n = 0) = 0; + virtual void export_video () = 0; + #ifdef WITH_CMT virtual void connect_to_image_compositor() = 0; virtual void add_imageframe_time_axis(const std::string & track_name, void*) = 0; @@ -327,6 +345,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual bool canvas_feature_line_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0; virtual bool canvas_stream_view_event (GdkEvent* event, ArdourCanvas::Item*, RouteTimeAxisView*) = 0; virtual bool canvas_marker_event (GdkEvent* event, ArdourCanvas::Item*, Marker*) = 0; + virtual bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*) = 0; virtual bool canvas_zoom_rect_event (GdkEvent* event, ArdourCanvas::Item*) = 0; virtual bool canvas_tempo_marker_event (GdkEvent* event, ArdourCanvas::Item*, TempoMarker*) = 0; virtual bool canvas_meter_marker_event (GdkEvent* event, ArdourCanvas::Item*, MeterMarker*) = 0; @@ -365,7 +384,6 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { #endif virtual gdouble get_trackview_group_vertical_offset () const = 0; - virtual double get_canvas_timebars_vsize () const = 0; virtual ArdourCanvas::Group* get_trackview_group () const = 0; virtual ArdourCanvas::Group* get_background_group () const = 0; @@ -389,6 +407,8 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual MouseCursors const * cursors () const = 0; virtual VerboseCursor * verbose_cursor () const = 0; + virtual bool get_smart_mode () const = 0; + virtual void get_pointer_position (double &, double &) const = 0; virtual ARDOUR::Location* find_location_from_marker (Marker *, bool &) const = 0; @@ -398,6 +418,8 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible { virtual void get_regions_at (RegionSelection &, framepos_t where, TrackViewList const &) const = 0; + virtual void save_canvas_state () = 0; + /// Singleton instance, set up by Editor::Editor() static PublicEditor* _instance;