Restore Fader and Pan options to audio track automation menus. Hide the Amp processo...
[ardour.git] / gtk2_ardour / automation_selectable.h
index f81b265982bed5b94020d225207af58aa2e50c9c..7104f6adf414f83aca5542ac88ef455ab5246ca2 100644 (file)
@@ -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
 #ifndef __ardour_gtk_automation_selectable_h__
 #define __ardour_gtk_automation_selectable_h__
 
-#include <ardour/types.h>
+#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;
     }
 };