31 #include <glibmm/threads.h>
94 return (_state &
Play) || ((_state & (
Touch |
Latch)) && !touching());
97 return ((_state &
Write) || ((_state & (
Touch |
Latch)) && touching()));
110 bool touching ()
const {
return _touching.load() != 0; }
AutomationListProperty(PBD::PropertyDescriptor< std::shared_ptr< AutomationList > > d, Ptr p)
PBD::PropertyBase * clone() const
AutomationListProperty(PBD::PropertyDescriptor< std::shared_ptr< AutomationList > > d, Ptr o, Ptr c)
AutomationListProperty(AutomationListProperty const &)
std::atomic< int > _touching
bool touch_enabled() const
ControlList::InterpolationStyle default_interpolation() const
PBD::Signal< void()> StateChanged
void snapshot_history(bool need_lock)
void create_curve_if_necessary()
static PBD::Signal< void(AutomationList *)> AutomationListCreated
XMLNode & serialize_events(bool need_lock) const
PBD::ScopedConnection _writepass_connection
bool automation_write() const
XMLNode & get_state() const
int set_state(const XMLNode &, int version)
void set_automation_state(AutoState)
virtual std::shared_ptr< ControlList > create(const Evoral::Parameter &id, const Evoral::ParameterDescriptor &desc, Temporal::TimeDomainProvider const &)
void stop_touch(timepos_t const &when)
void maybe_signal_changed()
AutoState automation_state() const
AutomationList(const AutomationList &)
int deserialize_events(const XMLNode &)
void write_pass_finished(timepos_t const &when, double thinning_factor=0.0)
AutomationList(const AutomationList &, timepos_t const &start, timepos_t const &end)
XMLNode & state(bool save_auto_state, bool need_lock) const
AutomationList(const Evoral::Parameter &id, const Evoral::ParameterDescriptor &desc, Temporal::TimeDomainProvider const &)
void start_write_pass(timepos_t const &when)
bool automation_playback() const
AutomationList(const Evoral::Parameter &id, Temporal::TimeDomainProvider const &)
AutomationList(const XMLNode &, Evoral::Parameter id)
void start_touch(timepos_t const &when)
PBD::Signal< void(AutoState)> automation_state_changed
PBD::Command * memento_command(XMLNode *before, XMLNode *after)
std::shared_ptr< AutomationList > Ptr
PBD::PropertyDescriptor< timepos_t > start
bool operator==(const ProcessorSelection &a, const ProcessorSelection &b)