X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fautomation_control.h;h=8de0ec6ec093fe1892de26b50f01e1b00888180c;hb=076e9fddd4ece79b3b7de9ca0aa5283c9badbb47;hp=6fe88ca52d53808189cf55d9c33c8fe1bfecd3b5;hpb=82278af424461a9d966dc886302ceb24e775a32c;p=ardour.git diff --git a/libs/ardour/ardour/automation_control.h b/libs/ardour/ardour/automation_control.h index 6fe88ca52d..8de0ec6ec0 100644 --- a/libs/ardour/ardour/automation_control.h +++ b/libs/ardour/ardour/automation_control.h @@ -36,6 +36,7 @@ #include "ardour/automation_list.h" #include "ardour/control_group_member.h" #include "ardour/parameter_descriptor.h" +#include "ardour/session_handle.h" #include "ardour/libardour_visibility.h" @@ -52,6 +53,7 @@ class LIBARDOUR_API AutomationControl , public Evoral::Control , public boost::enable_shared_from_this , public ControlGroupMember + , public SessionHandleRef { public: AutomationControl(ARDOUR::Session&, @@ -84,7 +86,7 @@ public: void set_automation_state(AutoState as); void start_touch(double when); - void stop_touch(bool mark, double when); + void stop_touch(double when); /* inherited from PBD::Controllable. */ virtual double get_value () const; @@ -104,6 +106,8 @@ public: actually_set_value (val, PBD::Controllable::NoGroup); } + virtual void automation_run (samplepos_t start, pframes_t nframes); + double lower() const { return _desc.lower; } double upper() const { return _desc.upper; } double normal() const { return _desc.normal; } @@ -122,7 +126,6 @@ public: ControlList grouped_controls () const; protected: - ARDOUR::Session& _session; boost::shared_ptr _group; const ParameterDescriptor _desc; @@ -145,6 +148,8 @@ protected: /* this will be invoked in turn on behalf of the group or the control by itself */ virtual void do_pre_realtime_queue_stuff (double new_value) {} + void session_going_away (); + private: /* I am unclear on why we have to make ControlGroup a friend in order to get access to the ::set_group() method when it is already @@ -153,6 +158,7 @@ private: friend class ControlGroup; void set_group (boost::shared_ptr); PBD::ScopedConnection _state_changed_connection; + bool _no_session; };