Some ToDo notes about AutomationTypes
[ardour.git] / libs / ardour / ardour / automation_list.h
index ca72f5f01f7001fe3958e2820eb64bcb2e466bd0..9810275ed14c15273b63b8f648d07f1b60bd27e8 100644 (file)
@@ -40,6 +40,7 @@
 namespace ARDOUR {
 
 class AutomationList;
+class DoubleBeatsFramesConverter;
 
 /** A SharedStatefulProperty for AutomationLists */
 class LIBARDOUR_API AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
@@ -67,7 +68,7 @@ private:
  */
 class LIBARDOUR_API AutomationList : public Evoral::ControlList, public PBD::StatefulDestructible
 {
-  public:
+public:
        AutomationList (const Evoral::Parameter& id, const Evoral::ParameterDescriptor& desc);
        AutomationList (const Evoral::Parameter& id);
        AutomationList (const XMLNode&, Evoral::Parameter id);
@@ -81,15 +82,12 @@ class LIBARDOUR_API AutomationList : public Evoral::ControlList, public PBD::Sta
        AutomationList& operator= (const AutomationList&);
 
        void thaw ();
+       bool paste (const ControlList&, double, DoubleBeatsFramesConverter const&);
 
        void set_automation_state (AutoState);
        AutoState automation_state() const { return _state; }
        PBD::Signal1<void, AutoState> automation_state_changed;
 
-       void set_automation_style (AutoStyle m);
-       AutoStyle automation_style() const { return _style; }
-       PBD::Signal0<void> automation_style_changed;
-
        bool automation_playback() const {
                return (_state & Play) || ((_state & Touch) && !touching());
        }
@@ -121,14 +119,16 @@ class LIBARDOUR_API AutomationList : public Evoral::ControlList, public PBD::Sta
 
        XMLNode* before () { XMLNode* rv = _before; _before = 0; return rv; }
        void clear_history ();
-  private:
+
+       ControlList::InterpolationStyle default_interpolation () const;
+
+private:
        void create_curve_if_necessary ();
        int deserialize_events (const XMLNode&);
 
        void maybe_signal_changed ();
 
        AutoState    _state;
-       AutoStyle    _style;
        gint         _touching;
 
        bool operator== (const AutomationList&) const { /* not called */ abort(); return false; }