#include <sigc++/signal.h>
#include "evoral/types.hpp"
-#include "ardour/route_group.h"
#include "pbd/statefuldestructible.h"
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;
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;
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::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;