Fix ArdourHTTP error reporting
[ardour.git] / gtk2_ardour / automation_streamview.h
index 5eebfaf28d7247c0b412b23caa65d3d8125b41f4..eed0bb7bbb25e1292ede61379ee8a6aea92bedc7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2001, 2007 Paul Davis 
+    Copyright (C) 2001, 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
@@ -22,9 +22,8 @@
 #include <list>
 #include <cmath>
 
-#include <ardour/location.h>
+#include "ardour/location.h"
 #include "enums.h"
-#include "simplerect.h"
 #include "streamview.h"
 #include "time_axis_view_item.h"
 #include "route_time_axis.h"
@@ -41,33 +40,47 @@ class AutomationRegionView;
 
 class AutomationStreamView : public StreamView
 {
-  public:
+public:
        AutomationStreamView (AutomationTimeAxisView& tv);
        ~AutomationStreamView ();
 
-       void set_selected_regionviews (RegionSelection&);
-       void get_selectables (jack_nframes_t start, jack_nframes_t end, list<Selectable* >&);
-       void get_inverted_selectables (Selection&, list<Selectable* >& results);
+       void set_automation_state (ARDOUR::AutoState state);
+       ARDOUR::AutoState automation_state () const;
 
-       void redisplay_diskstream ();
-       
-       inline double contents_height() const { 
+       void redisplay_track ();
+
+       inline double contents_height() const {
                return (_trackview.current_height() - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE - 2);
        }
-       
-  private:
+
+       bool has_automation () const;
+
+       void set_interpolation (ARDOUR::AutomationList::InterpolationStyle);
+       ARDOUR::AutomationList::InterpolationStyle interpolation () const;
+
+       void clear ();
+
+       void get_selectables (ARDOUR::framepos_t, ARDOUR::framepos_t, double, double, std::list<Selectable*> &, bool within = false);
+       void set_selected_points (PointSelection &);
+
+       std::list<boost::shared_ptr<AutomationLine> > get_lines () const;
+
+       bool paste (framepos_t                                pos,
+                   unsigned                                  paste_count,
+                   float                                     times,
+                   boost::shared_ptr<ARDOUR::AutomationList> list);
+
+private:
        void setup_rec_box ();
-       void rec_data_range_ready (jack_nframes_t start, jack_nframes_t dur); 
-       void update_rec_regions (jack_nframes_t start, jack_nframes_t dur);
-       
+
        RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_data, bool recording = false);
        void        display_region(AutomationRegionView* region_view);
-       
+
        void color_handler ();
-       
-       boost::shared_ptr<AutomationController> _controller;
-       
+
        AutomationTimeAxisView& _automation_view;
+       /** automation state that should be applied when this view gets its first RegionView */
+       ARDOUR::AutoState _pending_automation_state;
 };
 
 #endif /* __ardour_automation_streamview_h__ */