#define __ardour_automation_event_h__
#include <stdint.h>
+#include <cstdlib>
#include <list>
#include <cmath>
#include <glibmm/threads.h>
+#include "evoral/ControlList.hpp"
+#include "evoral/Parameter.hpp"
+
#include "pbd/undo.h"
#include "pbd/xml++.h"
#include "pbd/statefuldestructible.h"
#include "ardour/ardour.h"
-#include "evoral/ControlList.hpp"
-
namespace ARDOUR {
class AutomationList;
/** A SharedStatefulProperty for AutomationLists */
-class AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
+class LIBARDOUR_API AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
{
public:
AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr p)
AutomationListProperty& operator= (AutomationListProperty const &);
};
-class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
+class LIBARDOUR_API AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
{
public:
- AutomationList (Evoral::Parameter id);
+ AutomationList (const Evoral::Parameter& id, const Evoral::ParameterDescriptor& desc);
+ AutomationList (const Evoral::Parameter& id);
AutomationList (const XMLNode&, Evoral::Parameter id);
AutomationList (const AutomationList&);
AutomationList (const AutomationList&, double start, double end);
~AutomationList();
- virtual boost::shared_ptr<Evoral::ControlList> create(Evoral::Parameter id);
+ virtual boost::shared_ptr<ControlList> create(const Evoral::Parameter& id,
+ const Evoral::ParameterDescriptor& desc);
AutomationList& operator= (const AutomationList&);
- bool operator== (const AutomationList&);
void thaw ();
void start_touch (double when);
void stop_touch (bool mark, double when);
- bool touching() const { return g_atomic_int_get (&_touching); }
+ bool touching() const { return g_atomic_int_get (const_cast<gint*>(&_touching)); }
bool writing() const { return _state == Write; }
bool touch_enabled() const { return _state == Touch; }
AutoState _state;
AutoStyle _style;
gint _touching;
+
+ bool operator== (const AutomationList&) const { /* not called */ abort(); return false; }
};
} // namespace