mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
Draw all automation points, rather than trying to use a heuristic to show some
at any given zoom level. This works because (1) automation data is obtained by sampling, and we control the sampling interval (2) automation data is filtered to remove co-linear points before becoming part of a ControlList. This commit removes some of the hairiest code in Ardour's GUI, which was responsible for figuring out which invisible control points were affected by an edit. The change is based on an experiment in mixbus done by Ben Loftis. git-svn-id: svn://localhost/ardour2/branches/3.0@11798 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
8aa72a031a
commit
49240fe7c5
4 changed files with 125 additions and 382 deletions
|
|
@ -174,18 +174,6 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
|||
ArdourCanvas::Points line_points; /* coordinates for canvas line */
|
||||
std::vector<ControlPoint*> control_points; /* visible control points */
|
||||
|
||||
struct ALPoint {
|
||||
double x;
|
||||
double y;
|
||||
ALPoint (double xx, double yy) : x(xx), y(yy) {}
|
||||
};
|
||||
|
||||
typedef std::vector<ALPoint> ALPoints;
|
||||
|
||||
static void invalidate_point (ALPoints&, uint32_t index);
|
||||
static bool invalid_point (ALPoints&, uint32_t index);
|
||||
|
||||
void determine_visible_control_points (ALPoints &, int);
|
||||
void sync_model_with_view_point (ControlPoint&, bool, int64_t);
|
||||
void sync_model_with_view_points (std::list<ControlPoint*>, bool, int64_t);
|
||||
void start_drag_common (double, float);
|
||||
|
|
@ -216,21 +204,6 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
|||
void connect_to_list ();
|
||||
void interpolation_changed (ARDOUR::AutomationList::InterpolationStyle);
|
||||
|
||||
struct ModelRepresentation {
|
||||
ARDOUR::AutomationList::iterator start;
|
||||
ARDOUR::AutomationList::iterator end;
|
||||
double xpos;
|
||||
double ypos;
|
||||
double xmin;
|
||||
double ymin;
|
||||
double xmax;
|
||||
double ymax;
|
||||
double xval;
|
||||
double yval;
|
||||
};
|
||||
|
||||
void model_representation (ControlPoint&, ModelRepresentation&);
|
||||
|
||||
PBD::ScopedConnectionList _list_connections;
|
||||
|
||||
/** maximum time that a point on this line can be at, relative to the position of its region or start of its track */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue