28 #include <glibmm/threads.h>
60 std::shared_ptr<ARDOUR::AutomationList> l=std::shared_ptr<ARDOUR::AutomationList>(),
61 const std::string&
name=
"",
67 std::shared_ptr<AutomationList>
alist()
const {
68 return std::dynamic_pointer_cast<AutomationList>(_list);
71 void set_list (std::shared_ptr<Evoral::ControlList>);
74 return alist() ? alist()->automation_playback() :
false;
78 return alist() ? alist()->automation_write() :
false;
82 return alist() ? alist()->automation_state() :
Off;
109 double lower()
const {
return _desc.lower; }
110 double upper()
const {
return _desc.upper; }
111 double normal()
const {
return _desc.normal; }
112 bool toggled()
const {
return _desc.toggled; }
127 _visually_linked_ctrls.push_back (ctrl);
131 _visually_linked_ctrls.clear ();
135 return _visually_linked_ctrls;
144 bool check_rt (
double val, Controllable::GroupControlDisposition gcd);
WeakAutomationControlList _visually_linked_ctrls
void stop_touch(timepos_t const &when)
std::shared_ptr< ControlGroup > _group
std::shared_ptr< ControlGroup > _pushed_group
void set_group(std::shared_ptr< ControlGroup >)
AutoState automation_state() const
void set_value_unchecked(double val)
virtual std::string get_user_string() const
virtual void do_pre_realtime_queue_stuff(double new_value)
double interface_to_internal(double, bool rotary=false) const
void start_touch(timepos_t const &when)
void commit_transaction(bool did_write)
virtual bool writable() const
void set_automation_state(AutoState as)
virtual double get_value() const
WeakAutomationControlList visually_linked_controls() const
virtual void actually_set_value(double value, PBD::Controllable::GroupControlDisposition)
const ARDOUR::Session & session() const
double internal_to_interface(double, bool rotary=false) const
void clear_visually_linked_control()
bool automation_playback() const
virtual void automation_run(samplepos_t start, pframes_t nframes)
AutomationControlList grouped_controls() const
PBD::ScopedConnection _state_changed_connection
virtual double get_save_value() const
void add_visually_linked_control(std::shared_ptr< AutomationControl > ctrl)
const ParameterDescriptor _desc
std::shared_ptr< AutomationList > alist() const
void pre_realtime_queue_stuff(double new_value, PBD::Controllable::GroupControlDisposition)
AutomationControl(ARDOUR::Session &, const Evoral::Parameter ¶meter, const ParameterDescriptor &desc, std::shared_ptr< ARDOUR::AutomationList > l=std::shared_ptr< ARDOUR::AutomationList >(), const std::string &name="", PBD::Controllable::Flag flags=PBD::Controllable::Flag(0))
void session_going_away()
bool push_group(std::shared_ptr< ControlGroup >)
const ParameterDescriptor & desc() const
void set_value(double value, PBD::Controllable::GroupControlDisposition group_override)
bool check_rt(double val, Controllable::GroupControlDisposition gcd)
virtual ~AutomationControl()
bool automation_write() const
void set_list(std::shared_ptr< Evoral::ControlList >)
GtkImageIconNameData name
PBD::PropertyDescriptor< timepos_t > start
std::list< std::shared_ptr< AutomationControl > > AutomationControlList
std::list< std::weak_ptr< AutomationControl > > WeakAutomationControlList
Temporal::samplepos_t samplepos_t