X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fautomation_selectable.h;h=7104f6adf414f83aca5542ac88ef455ab5246ca2;hb=129ace60e24aa7b5297563d389edbae1d70a3a80;hp=f81b265982bed5b94020d225207af58aa2e50c9c;hpb=666e0870554705f4fb466fc6b188fe9b4000ca49;p=ardour.git diff --git a/gtk2_ardour/automation_selectable.h b/gtk2_ardour/automation_selectable.h index f81b265982..7104f6adf4 100644 --- a/gtk2_ardour/automation_selectable.h +++ b/gtk2_ardour/automation_selectable.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 Paul Davis + Copyright (C) 2000-2007 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,28 +20,34 @@ #ifndef __ardour_gtk_automation_selectable_h__ #define __ardour_gtk_automation_selectable_h__ -#include +#include "ardour/types.h" #include "selectable.h" 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; } };