26 #ifndef __gtk2_ardour_automation_line_base_h__
27 #define __gtk2_ardour_automation_line_base_h__
32 #include <sys/types.h>
34 #include <sigc++/signal.h>
76 std::shared_ptr<ARDOUR::AutomationList> al,
102 virtual void end_drag (
bool with_push, uint32_t final_index);
144 void set_list(std::shared_ptr<ARDOUR::AutomationList> list);
173 void dump (std::ostream&)
const;
189 std::shared_ptr<ARDOUR::AutomationList>
alist;
223 typedef std::shared_ptr<ContiguousControlPoints>
CCP;
void move(Temporal::timecnt_t const &, double dvalue)
Temporal::timepos_t before_x
Temporal::timepos_t after_x
ContiguousControlPoints(AutomationLine &al)
Temporal::timecnt_t clamp_dt(Temporal::timecnt_t const &dx, Temporal::timepos_t const ®ion_limit)
virtual MementoCommandBinder< ARDOUR::AutomationList > * memento_command_binder()
void start_drag_common(double, float)
ArdourCanvas::Rectangle * drag_base() const
std::string delta_to_string(double) const
std::list< ControlPoint * > _drag_points
points we are dragging
virtual void end_drag(bool with_push, uint32_t final_index)
bool sync_model_with_view_points(std::list< ControlPoint * >)
void reset_callback(const Evoral::ControlList &)
void add_visible_control_point(uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t)
void set_width(Temporal::timecnt_t const &)
void set_list(std::shared_ptr< ARDOUR::AutomationList > list)
AutomationLine(const std::string &name, EditingContext &ec, ArdourCanvas::Item &parent, ArdourCanvas::Rectangle *drag_base, std::shared_ptr< ARDOUR::AutomationList > al, const ARDOUR::ParameterDescriptor &desc)
bool get_uses_gain_mapping() const
virtual ~AutomationLine()
void set_line_color(std::string color, std::string mod="")
int set_state(const XMLNode &, int version)
EditingContext & editing_context() const
double model_to_view_coord_y(double) const
ArdourCanvas::Points line_points
std::string fraction_to_string(double) const
double _last_drag_fraction
last y position of the drag, as a fraction
void remove_visibility(VisibleAspects)
bool sync_model_with_view_point(ControlPoint &)
ArdourCanvas::Item & grab_item() const
bool is_first_point(ControlPoint &)
virtual void start_drag_single(ControlPoint *, double, float)
double compute_delta(double from, double to) const
void get_inverted_selectables(Selection &, std::list< Selectable * > &results)
virtual void start_drag_multiple(std::list< ControlPoint * >, float, XMLNode *)
const ARDOUR::ParameterDescriptor _desc
virtual bool event_handler(GdkEvent *)=0
std::shared_ptr< ARDOUR::AutomationList > the_list() const
void dump(std::ostream &) const
std::pair< Temporal::timepos_t, Temporal::timepos_t > get_point_x_range() const
ArdourCanvas::PolyLine * line
virtual Temporal::timepos_t get_origin() const
std::vector< CCP > contiguous_points
void set_visibility(VisibleAspects)
void modify_points_y(std::vector< ControlPoint * > const &, double)
void add_visibility(VisibleAspects)
void set_maximum_time(Temporal::timepos_t const &)
double string_to_fraction(std::string const &) const
Temporal::timepos_t session_position(Temporal::timepos_t const &) const
Temporal::timepos_t maximum_time() const
Temporal::timecnt_t model_to_view_coord_x(Temporal::timepos_t const &) const
bool _drag_had_movement
true if the drag has seen movement, otherwise false
void set_selected_points(PointSelection const &)
ArdourCanvas::Item & _parent_group
virtual std::pair< float, float > drag_motion(Temporal::timecnt_t const &, float, bool, bool with_push, uint32_t &final_index)
virtual void end_draw_merge()
ArdourCanvas::Container & canvas_group() const
std::list< ControlPoint * > _push_points
additional points we are dragging if "push" is enabled
Temporal::timepos_t offset()
std::string get_verbose_cursor_relative_string(double, double) const
ArdourCanvas::Container * group
double control_point_box_size()
virtual void remove_point(ControlPoint &)
ArdourCanvas::Item & parent_group() const
std::shared_ptr< ContiguousControlPoints > CCP
std::shared_ptr< ARDOUR::AutomationList > alist
virtual void start_drag_line(uint32_t, uint32_t, float)
Temporal::timepos_t _offset
void reset_line_coords(ControlPoint &)
ControlPoint const * nth(uint32_t) const
double dt_to_dx(Temporal::timepos_t const &, Temporal::timecnt_t const &)
void view_to_model_coord_y(double &) const
void _get_selectables(Temporal::timepos_t const &, Temporal::timepos_t const &, double, double, std::list< Selectable * > &, bool within)
EditingContext & _editing_context
void interpolation_changed(ARDOUR::AutomationList::InterpolationStyle)
void add(std::shared_ptr< ARDOUR::AutomationControl >, GdkEvent *, Temporal::timepos_t const &, double y, bool with_guard_points)
std::vector< ControlPoint * > control_points
void apply_delta(double &val, double delta) const
bool control_points_adjacent(double xval, uint32_t &before, uint32_t &after)
XMLNode & get_state() const
bool is_last_point(ControlPoint &)
virtual std::string get_verbose_cursor_string(double) const
uint32_t get_line_color() const
PBD::ScopedConnectionList _list_connections
ArdourCanvas::Rectangle * _drag_base
ControlPoint * nth(uint32_t)
Temporal::timepos_t _maximum_time
void set_offset(Temporal::timepos_t const &)
ARDOUR::ParameterDescriptor const & param() const
uint32_t _view_index_offset
std::string _line_color_mod
bool terminal_points_can_slide
EventList::iterator iterator
Lists of selected things.
PBD::PropertyDescriptor< uint32_t > color
std::vector< Duple > Points