Automatable(Session&);
Automatable (const Automatable& other);
- virtual ~Automatable();
+ virtual ~Automatable();
boost::shared_ptr<Evoral::Control> control_factory(const Evoral::Parameter& id);
virtual bool find_next_event (double start, double end, Evoral::ControlEvent& ev, bool only_active = true) const;
void clear_controls ();
- virtual void transport_located (framepos_t now);
- virtual void transport_stopped (framepos_t now);
+ virtual void non_realtime_locate (samplepos_t now);
+ virtual void non_realtime_transport_stop (samplepos_t now, bool flush);
+
+ virtual void automation_run (samplepos_t, pframes_t);
virtual std::string describe_parameter(Evoral::Parameter param);
- virtual std::string value_as_string (boost::shared_ptr<const AutomationControl>) const;
AutoState get_parameter_automation_state (Evoral::Parameter param);
virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState);
- AutoStyle get_parameter_automation_style (Evoral::Parameter param);
- void set_parameter_automation_style (Evoral::Parameter param, AutoStyle);
-
void protect_automation ();
const std::set<Evoral::Parameter>& what_can_be_automated() const { return _can_automate_list; }
PBD::Signal0<void> AutomationStateChanged;
- protected:
+protected:
Session& _a_session;
void can_automate(Evoral::Parameter);
std::set<Evoral::Parameter> _can_automate_list;
- framepos_t _last_automation_snapshot;
+ samplepos_t _last_automation_snapshot;
+
+ SlavableControlList slavables () const { return SlavableControlList(); }
private:
PBD::ScopedConnectionList _control_connections; ///< connections to our controls' signals