X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fautomation_selectable.h;h=7104f6adf414f83aca5542ac88ef455ab5246ca2;hb=b1c3a224983a6b0cc5c5bb4b042d15f1d67ae5b3;hp=851da8bf7900b0c25d7fd0a8b3c1f1a11a6b5c14;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/automation_selectable.h b/gtk2_ardour/automation_selectable.h index 851da8bf79..7104f6adf4 100644 --- a/gtk2_ardour/automation_selectable.h +++ b/gtk2_ardour/automation_selectable.h @@ -25,23 +25,29 @@ class TimeAxisView; +/** A selected automation point, expressed as a rectangle on a track (so that x coordinates + * are frames and y coordinates are a fraction of track height). This representation falls + * between the visible GUI control points and the back-end "actual" automation points, + * some of which may not be visible; it is not trivial to convert from one of these to the other, + * so the AutomationSelectable is a kind of "best and worst of both worlds". + */ struct AutomationSelectable : public Selectable { nframes_t start; nframes_t end; double low_fract; double high_fract; - TimeAxisView& track; + TimeAxisView* track; // ref would be better, but ARDOUR::SessionHandlePtr is non-assignable - AutomationSelectable (nframes_t s, nframes_t e, double l, double h, TimeAxisView& atv) + AutomationSelectable (nframes_t s, nframes_t e, double l, double h, TimeAxisView* atv) : start (s), end (e), low_fract (l), high_fract (h), track (atv) {} bool operator== (const AutomationSelectable& other) { return start == other.start && - end == other.end && - low_fract == other.low_fract && - high_fract == other.high_fract && - &track == &other.track; + end == other.end && + low_fract == other.low_fract && + high_fract == other.high_fract && + track == other.track; } };