summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/automation_list.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/automation_list.h')
-rw-r--r--libs/ardour/ardour/automation_list.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/libs/ardour/ardour/automation_list.h b/libs/ardour/ardour/automation_list.h
index 58d1fe4acf..01c9d0641a 100644
--- a/libs/ardour/ardour/automation_list.h
+++ b/libs/ardour/ardour/automation_list.h
@@ -29,6 +29,7 @@
#include "pbd/undo.h"
#include "pbd/xml++.h"
#include "pbd/statefuldestructible.h"
+#include "pbd/properties.h"
#include "ardour/ardour.h"
@@ -36,6 +37,28 @@
namespace ARDOUR {
+class AutomationList;
+
+/** A SharedStatefulProperty for AutomationLists */
+class AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
+{
+public:
+ AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr p)
+ : PBD::SharedStatefulProperty<AutomationList> (d.property_id, p)
+ {}
+
+ AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr o, Ptr c)
+ : PBD::SharedStatefulProperty<AutomationList> (d.property_id, o, c)
+ {}
+
+ PBD::PropertyBase* clone () const;
+
+private:
+ /* No copy-construction nor assignment */
+ AutomationListProperty (AutomationListProperty const &);
+ AutomationListProperty& operator= (AutomationListProperty const &);
+};
+
class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
{
public:
@@ -82,6 +105,8 @@ class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlL
XMLNode& state (bool full);
XMLNode& serialize_events ();
+ bool operator!= (const AutomationList &) const;
+
private:
void create_curve_if_necessary ();
int deserialize_events (const XMLNode&);