47 class AutomationControl;
82 return automation_control (
id);
86 return automation_control (
id,
false);
virtual bool find_next_event(Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev, bool only_active=true) const
std::shared_ptr< const AutomationControl > automation_control(const Evoral::Parameter &id) const
virtual std::string describe_parameter(Evoral::Parameter param)
SlavableAutomationControlList slavables() const
static const std::string xml_node_name
PBD::ScopedConnectionList _control_connections
connections to our controls' signals
int old_set_automation_state(const XMLNode &)
SerializedRCUManager< AutomationControlList > _automated_controls
PBD::Signal< void()> AutomationStateChanged
const std::set< Evoral::Parameter > & what_can_be_automated() const
std::set< Evoral::Parameter > _can_automate_list
std::shared_ptr< AutomationControl > automation_control(const Evoral::Parameter &id)
virtual void automation_run(samplepos_t, pframes_t, bool only_active=false)
virtual void set_parameter_automation_state(Evoral::Parameter param, AutoState)
virtual void automatables(PBD::ControllableSet &) const
std::vector< Evoral::Parameter > all_automatable_params() const
void protect_automation()
void start_domain_bounce(Temporal::DomainBounceInfo &)
virtual void non_realtime_transport_stop(samplepos_t now, bool flush)
std::shared_ptr< AutomationControl > automation_control(const Evoral::Parameter &id, bool create_if_missing)
void finish_domain_bounce(Temporal::DomainBounceInfo &)
virtual void automation_list_automation_state_changed(Evoral::Parameter const &, AutoState)
samplepos_t _last_automation_snapshot
Automatable(const Automatable &other)
static void find_prev_ac_event(std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
std::shared_ptr< Evoral::Control > control_factory(const Evoral::Parameter &id)
int set_automation_xml_state(const XMLNode &, Evoral::Parameter default_param)
static void find_next_ac_event(std::shared_ptr< AutomationControl >, Temporal::timepos_t const &start, Temporal::timepos_t const &end, Evoral::ControlEvent &ev)
AutoState get_parameter_automation_state(Evoral::Parameter param)
void can_automate(Evoral::Parameter)
virtual void non_realtime_locate(samplepos_t now)
std::shared_ptr< AutomationControl > automation_control(PBD::ID const &id) const
virtual std::shared_ptr< AutomationControl > automation_control_recurse(PBD::ID const &id) const
XMLNode & get_automation_xml_state() const
int load_automation(const std::string &path)
void what_has_existing_automation(std::set< Evoral::Parameter > &) const
virtual void add_control(std::shared_ptr< Evoral::Control >)
static bool skip_saving_automation
Automatable(Session &, Temporal::TimeDomainProvider const &)
PBD::PropertyDescriptor< timepos_t > start
std::list< std::shared_ptr< SlavableAutomationControl > > SlavableAutomationControlList
Temporal::samplepos_t samplepos_t
std::set< std::shared_ptr< Controllable > > ControllableSet