void reset ();
void clear ();
- std::list<ControlPoint*> point_selection_to_control_points (PointSelection const &);
void set_selected_points (PointSelection const &);
void get_selectables (ARDOUR::framepos_t, ARDOUR::framepos_t, double, double, std::list<Selectable*>&);
void get_inverted_selectables (Selection&, std::list<Selectable*>& results);
void modify_point_y (ControlPoint&, double);
- void add_always_in_view (double);
- void clear_always_in_view ();
-
virtual MementoCommandBinder<ARDOUR::AutomationList>* memento_command_binder ();
const Evoral::TimeConverter<double, ARDOUR::framepos_t>& time_converter () const {
void set_offset (ARDOUR::framecnt_t);
void set_width (ARDOUR::framecnt_t);
+ framepos_t session_position (ARDOUR::AutomationList::const_iterator) const;
+
protected:
std::string _name;
boost::shared_ptr<ARDOUR::AutomationList> alist;
Evoral::TimeConverter<double, ARDOUR::framepos_t>* _time_converter;
- /** true if _time_converter belongs to us (ie we should delete it) */
+ /** true if _time_converter belongs to us (ie we should delete it on destruction) */
bool _our_time_converter;
bool _visible : 1;
ArdourCanvas::Points line_points; /* coordinates for canvas line */
std::vector<ControlPoint*> control_points; /* visible control points */
- void sync_model_with_view_point (ControlPoint&, bool, int64_t);
- void sync_model_with_view_points (std::list<ControlPoint*>, bool, int64_t);
+ void sync_model_with_view_point (ControlPoint&, ARDOUR::framecnt_t);
+ void sync_model_with_view_points (std::list<ControlPoint*>, ARDOUR::framecnt_t);
void start_drag_common (double, float);
virtual void change_model (ARDOUR::AutomationList::iterator, double x, double y);
std::list<ControlPoint*> _push_points; ///< additional points we are dragging if "push" is enabled
bool _drag_had_movement; ///< true if the drag has seen movement, otherwise false
double _drag_x; ///< last x position of the drag, in units
- double _drag_distance; ///< total x movement of the drag, in units
+ double _drag_distance; ///< total x movement of the drag, in canvas units
double _last_drag_fraction; ///< last y position of the drag, as a fraction
- std::list<double> _always_in_view;
/** offset from the start of the automation list to the start of the line, so that
* a +ve offset means that the 0 on the line is at _offset in the list
*/