Ardour
9.0-pre0-582-g084a23a80d
|
#include <automation_line.h>
Classes | |
class | ContiguousControlPoints |
Public Types | |
enum | VisibleAspects { Line = 0x1 , ControlPoints = 0x2 , SelectedControlPoints = 0x4 } |
Public Member Functions | |
AutomationLine (const std::string &name, EditingContext &ec, ArdourCanvas::Item &parent, ArdourCanvas::Rectangle *drag_base, std::shared_ptr< ARDOUR::AutomationList > al, const ARDOUR::ParameterDescriptor &desc) | |
virtual | ~AutomationLine () |
virtual Temporal::timepos_t | get_origin () const |
ArdourCanvas::Rectangle * | drag_base () const |
void | queue_reset () |
void | reset () |
void | clear () |
void | set_fill (bool f) |
void | set_selected_points (PointSelection const &) |
void | _get_selectables (Temporal::timepos_t const &, Temporal::timepos_t const &, double, double, std::list< Selectable * > &, bool within) |
void | get_inverted_selectables (Selection &, std::list< Selectable * > &results) |
virtual void | remove_point (ControlPoint &) |
bool | control_points_adjacent (double xval, uint32_t &before, uint32_t &after) |
virtual void | start_drag_single (ControlPoint *, double, float) |
virtual void | start_drag_line (uint32_t, uint32_t, float) |
virtual void | start_drag_multiple (std::list< ControlPoint * >, float, XMLNode *) |
virtual std::pair< float, float > | drag_motion (Temporal::timecnt_t const &, float, bool, bool with_push, uint32_t &final_index) |
virtual void | end_drag (bool with_push, uint32_t final_index) |
virtual void | end_draw_merge () |
ControlPoint * | nth (uint32_t) |
ControlPoint const * | nth (uint32_t) const |
uint32_t | npoints () const |
std::string | name () const |
bool | visible () const |
guint32 | height () const |
void | set_line_color (std::string color, std::string mod="") |
uint32_t | get_line_color () const |
void | set_visibility (VisibleAspects) |
void | add_visibility (VisibleAspects) |
void | remove_visibility (VisibleAspects) |
void | hide () |
void | hide_all () |
void | show () |
void | set_height (guint32) |
bool | get_uses_gain_mapping () const |
void | tempo_map_changed () |
ArdourCanvas::Container & | canvas_group () const |
ArdourCanvas::Item & | parent_group () const |
ArdourCanvas::Item & | grab_item () const |
virtual std::string | get_verbose_cursor_string (double) const |
std::string | get_verbose_cursor_relative_string (double, double) const |
std::string | fraction_to_string (double) const |
std::string | delta_to_string (double) const |
double | string_to_fraction (std::string const &) const |
void | view_to_model_coord_y (double &) const |
double | model_to_view_coord_y (double) const |
Temporal::timecnt_t | model_to_view_coord_x (Temporal::timepos_t const &) const |
double | compute_delta (double from, double to) const |
void | apply_delta (double &val, double delta) const |
void | set_list (std::shared_ptr< ARDOUR::AutomationList > list) |
std::shared_ptr< ARDOUR::AutomationList > | the_list () const |
void | track_entered () |
void | track_exited () |
bool | is_last_point (ControlPoint &) |
bool | is_first_point (ControlPoint &) |
XMLNode & | get_state () const |
int | set_state (const XMLNode &, int version) |
void | set_colors () |
void | modify_points_y (std::vector< ControlPoint * > const &, double) |
virtual MementoCommandBinder< ARDOUR::AutomationList > * | memento_command_binder () |
std::pair< Temporal::timepos_t, Temporal::timepos_t > | get_point_x_range () const |
void | set_maximum_time (Temporal::timepos_t const &) |
Temporal::timepos_t | maximum_time () const |
void | set_offset (Temporal::timepos_t const &) |
Temporal::timepos_t | offset () |
void | set_width (Temporal::timecnt_t const &) |
Temporal::timepos_t | session_position (Temporal::timepos_t const &) const |
void | dump (std::ostream &) const |
double | dt_to_dx (Temporal::timepos_t const &, Temporal::timecnt_t const &) |
ARDOUR::ParameterDescriptor const & | param () const |
EditingContext & | editing_context () const |
void | add (std::shared_ptr< ARDOUR::AutomationControl >, GdkEvent *, Temporal::timepos_t const &, double y, bool with_guard_points) |
Public Member Functions inherited from PBD::Stateful | |
Stateful () | |
virtual | ~Stateful () |
virtual bool | apply_change (PropertyBase const &) |
PropertyChange | apply_changes (PropertyList const &) |
const OwnedPropertyList & | properties () const |
void | add_property (PropertyBase &s) |
void | add_extra_xml (XMLNode &) |
XMLNode * | extra_xml (const std::string &str, bool add_if_missing=false) |
void | save_extra_xml (const XMLNode &) |
const PBD::ID & | id () const |
bool | set_id (const XMLNode &) |
void | set_id (const std::string &) |
void | reset_id () |
void | clear_changes () |
virtual void | clear_owned_changes () |
PropertyList * | get_changes_as_properties (PBD::Command *) const |
virtual void | rdiff (std::vector< PBD::Command * > &) const |
bool | changed () const |
virtual PropertyList * | property_factory (const XMLNode &) const |
virtual void | suspend_property_changes () |
virtual void | resume_property_changes () |
bool | property_changes_suspended () const |
Public Member Functions inherited from PBD::Destructible | |
virtual | ~Destructible () |
virtual void | drop_references () |
Public Member Functions inherited from SelectableOwner | |
SelectableOwner () | |
virtual | ~SelectableOwner () |
void | get_selectables (Temporal::timepos_t const &start, Temporal::timepos_t const &end, double x, double y, std::list< Selectable * > &sl, bool within=false) |
Protected Types | |
typedef std::shared_ptr< ContiguousControlPoints > | CCP |
Protected Member Functions | |
bool | sync_model_with_view_point (ControlPoint &) |
bool | sync_model_with_view_points (std::list< ControlPoint * >) |
void | start_drag_common (double, float) |
void | reset_callback (const Evoral::ControlList &) |
void | list_changed () |
virtual bool | event_handler (GdkEvent *)=0 |
Protected Member Functions inherited from PBD::Stateful | |
void | add_instant_xml (XMLNode &, const std::string &directory_path) |
XMLNode * | instant_xml (const std::string &str, const std::string &directory_path) |
void | add_properties (XMLNode &) const |
PropertyChange | set_values (XMLNode const &) |
virtual void | post_set (const PropertyChange &) |
virtual void | send_change (const PropertyChange &) |
virtual void | mid_thaw (const PropertyChange &) |
bool | regenerate_xml_or_string_ids () const |
Protected Attributes | |
std::string | _name |
guint32 | _height |
std::string | _line_color |
std::string | _line_color_mod |
uint32_t | _view_index_offset |
std::shared_ptr< ARDOUR::AutomationList > | alist |
VisibleAspects | _visible |
bool | terminal_points_can_slide |
bool | update_pending |
bool | have_reset_timeout |
bool | no_draw |
bool | _is_boolean |
bool | did_push |
EditingContext & | _editing_context |
ArdourCanvas::Item & | _parent_group |
ArdourCanvas::Rectangle * | _drag_base |
ArdourCanvas::Container * | group |
ArdourCanvas::PolyLine * | line |
ArdourCanvas::Points | line_points |
std::vector< ControlPoint * > | control_points |
std::vector< CCP > | contiguous_points |
Protected Attributes inherited from PBD::Stateful | |
XMLNode * | _extra_xml |
XMLNode * | _instant_xml |
PBD::PropertyChange | _pending_changed |
Glib::Threads::Mutex | _lock |
std::string | _xml_node_name |
name of node to use for this object in XML More... | |
OwnedPropertyList * | _properties |
Private Member Functions | |
bool | is_stepped () const |
void | update_visibility () |
void | reset_line_coords (ControlPoint &) |
void | add_visible_control_point (uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t) |
double | control_point_box_size () |
void | connect_to_list () |
void | interpolation_changed (ARDOUR::AutomationList::InterpolationStyle) |
Private Attributes | |
std::list< ControlPoint * > | _drag_points |
points we are dragging More... | |
std::list< ControlPoint * > | _push_points |
additional points we are dragging if "push" is enabled More... | |
bool | _drag_had_movement |
true if the drag has seen movement, otherwise false More... | |
double | _last_drag_fraction |
last y position of the drag, as a fraction More... | |
Temporal::timepos_t | _offset |
PBD::ScopedConnectionList | _list_connections |
Temporal::timepos_t | _maximum_time |
bool | _fill |
const ARDOUR::ParameterDescriptor | _desc |
Friends | |
class | ContiguousControlPoints |
class | AudioRegionGainLine |
class | RegionFxLine |
Additional Inherited Members | |
Public Attributes inherited from PBD::Stateful | |
PBD::Signal< void(const PropertyChange &)> | PropertyChanged |
Public Attributes inherited from PBD::Destructible | |
PBD::Signal< void()> | Destroyed |
PBD::Signal< void()> | DropReferences |
Static Public Attributes inherited from PBD::Stateful | |
static int | current_state_version |
static int | loading_state_version |
A GUI representation of an ARDOUR::AutomationList
Definition at line 63 of file automation_line.h.
|
protected |
Definition at line 225 of file automation_line.h.
Enumerator | |
---|---|
Line | |
ControlPoints | |
SelectedControlPoints |
Definition at line 66 of file automation_line.h.
AutomationLine::AutomationLine | ( | const std::string & | name, |
EditingContext & | ec, | ||
ArdourCanvas::Item & | parent, | ||
ArdourCanvas::Rectangle * | drag_base, | ||
std::shared_ptr< ARDOUR::AutomationList > | al, | ||
const ARDOUR::ParameterDescriptor & | desc | ||
) |
|
virtual |
|
virtual |
Implements SelectableOwner.
void AutomationLine::add | ( | std::shared_ptr< ARDOUR::AutomationControl > | , |
GdkEvent * | , | ||
Temporal::timepos_t const & | , | ||
double | y, | ||
bool | with_guard_points | ||
) |
void AutomationLine::add_visibility | ( | VisibleAspects | ) |
|
private |
void AutomationLine::apply_delta | ( | double & | val, |
double | delta | ||
) | const |
|
inline |
Definition at line 128 of file automation_line.h.
void AutomationLine::clear | ( | ) |
double AutomationLine::compute_delta | ( | double | from, |
double | to | ||
) | const |
|
private |
|
private |
bool AutomationLine::control_points_adjacent | ( | double | xval, |
uint32_t & | before, | ||
uint32_t & | after | ||
) |
std::string AutomationLine::delta_to_string | ( | double | ) | const |
|
inline |
Definition at line 83 of file automation_line.h.
|
virtual |
double AutomationLine::dt_to_dx | ( | Temporal::timepos_t const & | , |
Temporal::timecnt_t const & | |||
) |
void AutomationLine::dump | ( | std::ostream & | ) | const |
|
inline |
Definition at line 180 of file automation_line.h.
|
virtual |
Reimplemented in AudioRegionGainLine, and RegionFxLine.
|
inlinevirtual |
Reimplemented in AudioRegionGainLine, and RegionFxLine.
Definition at line 103 of file automation_line.h.
|
protectedpure virtual |
Implemented in MidiCueAutomationLine, and EditorAutomationLine.
std::string AutomationLine::fraction_to_string | ( | double | ) | const |
|
virtual |
Implements SelectableOwner.
uint32_t AutomationLine::get_line_color | ( | ) | const |
|
virtual |
Reimplemented in RegionFxLine, and MidiAutomationLine.
std::pair<Temporal::timepos_t, Temporal::timepos_t> AutomationLine::get_point_x_range | ( | ) | const |
|
virtual |
Implements PBD::Stateful.
bool AutomationLine::get_uses_gain_mapping | ( | ) | const |
std::string AutomationLine::get_verbose_cursor_relative_string | ( | double | , |
double | |||
) | const |
|
virtual |
Reimplemented in MidiAutomationLine.
|
inline |
Definition at line 130 of file automation_line.h.
|
inline |
Definition at line 111 of file automation_line.h.
void AutomationLine::hide | ( | ) |
void AutomationLine::hide_all | ( | ) |
|
private |
bool AutomationLine::is_first_point | ( | ControlPoint & | ) |
bool AutomationLine::is_last_point | ( | ControlPoint & | ) |
|
private |
|
protected |
|
inline |
Definition at line 166 of file automation_line.h.
|
virtual |
Reimplemented in MidiAutomationLine.
Temporal::timecnt_t AutomationLine::model_to_view_coord_x | ( | Temporal::timepos_t const & | ) | const |
double AutomationLine::model_to_view_coord_y | ( | double | ) | const |
void AutomationLine::modify_points_y | ( | std::vector< ControlPoint * > const & | , |
double | |||
) |
|
inline |
Definition at line 109 of file automation_line.h.
|
inline |
Definition at line 107 of file automation_line.h.
ControlPoint* AutomationLine::nth | ( | uint32_t | ) |
ControlPoint const* AutomationLine::nth | ( | uint32_t | ) | const |
|
inline |
Definition at line 171 of file automation_line.h.
|
inline |
Definition at line 179 of file automation_line.h.
|
inline |
Definition at line 129 of file automation_line.h.
void AutomationLine::queue_reset | ( | ) |
|
virtual |
Reimplemented in AudioRegionGainLine.
void AutomationLine::remove_visibility | ( | VisibleAspects | ) |
void AutomationLine::reset | ( | ) |
|
protected |
|
private |
Temporal::timepos_t AutomationLine::session_position | ( | Temporal::timepos_t const & | ) | const |
void AutomationLine::set_colors | ( | ) |
|
inline |
Definition at line 88 of file automation_line.h.
void AutomationLine::set_height | ( | guint32 | ) |
void AutomationLine::set_line_color | ( | std::string | color, |
std::string | mod = "" |
||
) |
void AutomationLine::set_list | ( | std::shared_ptr< ARDOUR::AutomationList > | list | ) |
void AutomationLine::set_maximum_time | ( | Temporal::timepos_t const & | ) |
void AutomationLine::set_offset | ( | Temporal::timepos_t const & | ) |
void AutomationLine::set_selected_points | ( | PointSelection const & | ) |
|
virtual |
Implements PBD::Stateful.
void AutomationLine::set_visibility | ( | VisibleAspects | ) |
void AutomationLine::set_width | ( | Temporal::timecnt_t const & | ) |
void AutomationLine::show | ( | ) |
|
protected |
|
virtual |
Reimplemented in AudioRegionGainLine.
|
virtual |
Reimplemented in AudioRegionGainLine.
|
virtual |
Reimplemented in AudioRegionGainLine.
double AutomationLine::string_to_fraction | ( | std::string const & | ) | const |
|
protected |
|
protected |
void AutomationLine::tempo_map_changed | ( | ) |
|
inline |
Definition at line 147 of file automation_line.h.
void AutomationLine::track_entered | ( | ) |
void AutomationLine::track_exited | ( | ) |
|
private |
void AutomationLine::view_to_model_coord_y | ( | double & | ) | const |
|
inline |
Definition at line 110 of file automation_line.h.
|
friend |
Definition at line 264 of file automation_line.h.
|
friend |
Definition at line 223 of file automation_line.h.
|
friend |
Definition at line 265 of file automation_line.h.
|
private |
Definition at line 262 of file automation_line.h.
|
protected |
Definition at line 205 of file automation_line.h.
|
private |
true if the drag has seen movement, otherwise false
Definition at line 240 of file automation_line.h.
|
private |
points we are dragging
Definition at line 238 of file automation_line.h.
|
protected |
Definition at line 203 of file automation_line.h.
|
private |
Definition at line 260 of file automation_line.h.
|
protected |
Definition at line 187 of file automation_line.h.
|
protected |
Definition at line 199 of file automation_line.h.
|
private |
last y position of the drag, as a fraction
Definition at line 241 of file automation_line.h.
|
protected |
Definition at line 188 of file automation_line.h.
|
protected |
Definition at line 189 of file automation_line.h.
|
private |
Definition at line 255 of file automation_line.h.
|
private |
maximum time that a point on this line can be at, relative to the position of its region or start of its track
Definition at line 258 of file automation_line.h.
|
protected |
Definition at line 186 of file automation_line.h.
|
private |
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
Definition at line 245 of file automation_line.h.
|
protected |
Definition at line 204 of file automation_line.h.
|
private |
additional points we are dragging if "push" is enabled
Definition at line 239 of file automation_line.h.
|
protected |
Definition at line 190 of file automation_line.h.
|
protected |
Definition at line 193 of file automation_line.h.
|
protected |
Definition at line 191 of file automation_line.h.
|
protected |
Definition at line 226 of file automation_line.h.
|
protected |
Definition at line 209 of file automation_line.h.
|
protected |
true if we did a push at any point during the current drag
Definition at line 201 of file automation_line.h.
|
protected |
Definition at line 206 of file automation_line.h.
|
protected |
Definition at line 197 of file automation_line.h.
|
protected |
Definition at line 207 of file automation_line.h.
|
protected |
Definition at line 208 of file automation_line.h.
|
protected |
Definition at line 198 of file automation_line.h.
|
protected |
Definition at line 195 of file automation_line.h.
|
protected |
Definition at line 196 of file automation_line.h.