namespace ARDOUR {
class AutomationList;
+class DoubleBeatsFramesConverter;
/** A SharedStatefulProperty for AutomationLists */
class LIBARDOUR_API AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
*/
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);
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());
}
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; }