X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fautomation_selectable.h;h=7104f6adf414f83aca5542ac88ef455ab5246ca2;hb=129ace60e24aa7b5297563d389edbae1d70a3a80;hp=5b7f4d57055eafb38a7772b98ad0d67aeeb0faeb;hpb=fedf3d34f32264ac57c6a222b678dc90f2bb1a88;p=ardour.git diff --git a/gtk2_ardour/automation_selectable.h b/gtk2_ardour/automation_selectable.h index 5b7f4d5705..7104f6adf4 100644 --- a/gtk2_ardour/automation_selectable.h +++ b/gtk2_ardour/automation_selectable.h @@ -1,21 +1,54 @@ +/* + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #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; + } }; #endif /* __ardour_gtk_automation_selectable_h__ */