34 class AutomationControl;
49 std::shared_ptr<Panner>
panner()
const {
return _panner.lock(); }
59 return (_auto_state &
Play) || ((_auto_state & (
Touch |
Latch)) && !touching());
62 return ((_auto_state &
Write) || ((_auto_state & (
Touch |
Latch)) && touching()));
68 bool touching()
const {
return _touching.load(); }
std::atomic< int > _touching
std::shared_ptr< AutomationControl > pan_frontback_control
int set_state(const XMLNode &, int version)
uint32_t _responding_to_control_auto_state_change
virtual XMLNode & state() const
void set_automation_state(AutoState)
bool automation_write() const
std::weak_ptr< Panner > _panner
std::shared_ptr< AutomationControl > pan_lfe_control
bool automation_playback() const
PBD::Signal< void(AutoState)> automation_state_changed
std::shared_ptr< AutomationControl > pan_azimuth_control
void stop_touch(timepos_t const &when)
AutoState automation_state() const
std::shared_ptr< Panner > panner() const
XMLNode & get_state() const
void start_domain_bounce(Temporal::DomainBounceInfo &)
Pannable(Session &s, Temporal::TimeDomainProvider const &)
void start_touch(timepos_t const &when)
const std::set< Evoral::Parameter > & what_can_be_automated() const
void control_auto_state_changed(AutoState)
void finish_domain_bounce(Temporal::DomainBounceInfo &)
std::shared_ptr< AutomationControl > pan_width_control
std::shared_ptr< AutomationControl > pan_elevation_control
bool touch_enabled() const
void set_panner(std::shared_ptr< Panner >)