#include <algorithm>
#include "ardour/automation_list.h"
#include "ardour/event_type_map.h"
+#include "ardour/parameter_descriptor.h"
#include "evoral/Curve.hpp"
#include "pbd/stacktrace.h"
#include "pbd/enumwriter.h"
cerr << "\n";
}
#endif
-AutomationList::AutomationList (Evoral::Parameter id)
- : ControlList(id)
+AutomationList::AutomationList (const Evoral::Parameter& id, const Evoral::ParameterDescriptor& desc)
+ : ControlList(id, desc)
+{
+ _state = Off;
+ _style = Absolute;
+ g_atomic_int_set (&_touching, 0);
+
+ create_curve_if_necessary();
+
+ assert(_parameter.type() != NullAutomation);
+ AutomationListCreated(this);
+}
+
+AutomationList::AutomationList (const Evoral::Parameter& id)
+ : ControlList(id, ARDOUR::ParameterDescriptor(id))
{
_state = Off;
_style = Absolute;
* in or below the AutomationList node. It is used if @param id is non-null.
*/
AutomationList::AutomationList (const XMLNode& node, Evoral::Parameter id)
- : ControlList(id)
+ : ControlList(id, ARDOUR::ParameterDescriptor(id))
{
g_atomic_int_set (&_touching, 0);
_state = Off;
}
boost::shared_ptr<Evoral::ControlList>
-AutomationList::create(Evoral::Parameter id)
+AutomationList::create(const Evoral::Parameter& id,
+ const Evoral::ParameterDescriptor& desc)
{
- return boost::shared_ptr<Evoral::ControlList>(new AutomationList(id));
+ return boost::shared_ptr<Evoral::ControlList>(new AutomationList(id, desc));
}
void
}
if ((prop = node.property (X_("automation-id"))) != 0){
- _parameter = EventTypeMap::instance().new_parameter(prop->value());
+ _parameter = EventTypeMap::instance().from_symbol(prop->value());
} else {
warning << "Legacy session: automation list has no automation-id property." << endmsg;
}