Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::SlavableAutomationControl Class Reference

#include <slavable_automation_control.h>

Inheritance diagram for ARDOUR::SlavableAutomationControl:
[legend]

Classes

class  MasterRecord
 

Public Member Functions

 SlavableAutomationControl (ARDOUR::Session &, const Evoral::Parameter &parameter, 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))
 
virtual ~SlavableAutomationControl ()
 
double get_value () const
 
void add_master (std::shared_ptr< AutomationControl >)
 
void remove_master (std::shared_ptr< AutomationControl >)
 
void clear_masters ()
 
bool slaved_to (std::shared_ptr< AutomationControl >) const
 
bool slaved () const
 
std::set< std::shared_ptr< AutomationControl > > masters () const
 
virtual void automation_run (samplepos_t start, pframes_t nframes)
 
double get_masters_value () const
 
double reduce_by_masters (double val, bool ignore_automation_state=false) const
 
bool get_masters_curve (samplepos_t s, samplepos_t e, float *v, samplecnt_t l) const
 
int32_t get_boolean_masters () const
 
void use_saved_master_ratios ()
 
int set_state (XMLNode const &, int)
 
XMLNodeget_state () const
 
bool find_next_event (Temporal::timepos_t const &n, Temporal::timepos_t const &e, Evoral::ControlEvent &ev) const
 
bool find_next_event_locked (Temporal::timepos_t const &now, Temporal::timepos_t const &end, Evoral::ControlEvent &next_event) const
 
- Public Member Functions inherited from ARDOUR::AutomationControl
 AutomationControl (ARDOUR::Session &, const Evoral::Parameter &parameter, 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))
 
virtual ~AutomationControl ()
 
std::shared_ptr< AutomationListalist () const
 
void set_list (std::shared_ptr< Evoral::ControlList >)
 
bool automation_playback () const
 
bool automation_write () const
 
AutoState automation_state () const
 
void set_automation_state (AutoState as)
 
void start_touch (timepos_t const &when)
 
void stop_touch (timepos_t const &when)
 
virtual double get_save_value () const
 
void set_value (double value, PBD::Controllable::GroupControlDisposition group_override)
 
virtual bool writable () const
 
void set_value_unchecked (double val)
 
double lower () const
 
double upper () const
 
double normal () const
 
bool toggled () const
 
double internal_to_interface (double, bool rotary=false) const
 
double interface_to_internal (double, bool rotary=false) const
 
virtual std::string get_user_string () const
 
const ParameterDescriptordesc () const
 
const ARDOUR::Sessionsession () const
 
void commit_transaction (bool did_write)
 
AutomationControlList grouped_controls () const
 
void add_visually_linked_control (std::shared_ptr< AutomationControl > ctrl)
 
void clear_visually_linked_control ()
 
WeakAutomationControlList visually_linked_controls () const
 
- Public Member Functions inherited from PBD::Controllable
 Controllable (const std::string &name, Flag f=Flag(0))
 
virtual float get_interface (bool rotary=false) const
 
virtual void set_interface (float fraction, bool rotary=false, GroupControlDisposition gcd=NoGroup)
 
int set_state (const XMLNode &, int version)
 
std::string name () const
 
bool touching () const
 
bool is_toggle () const
 
bool is_gain_like () const
 
Flag flags () const
 
void set_flags (Flag f)
 
void set_flag (Flag f)
 _flags |= f; More...
 
void clear_flag (Flag f)
 _flags &= ~f; More...
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::Destructible
virtual ~Destructible ()
 
virtual void drop_references ()
 
- Public Member Functions inherited from Evoral::Control
 Control (const Parameter &parameter, const ParameterDescriptor &desc, std::shared_ptr< ControlList > list)
 
virtual ~Control ()
 
virtual void set_double (double val, Temporal::timepos_t const &when=Temporal::timepos_t(), bool to_list=false)
 
virtual double get_double () const
 
void set_list (std::shared_ptr< ControlList >)
 
std::shared_ptr< ControlListlist ()
 
std::shared_ptr< const ControlListlist () const
 
const Parameterparameter () const
 
- Public Member Functions inherited from ARDOUR::ControlGroupMember
virtual ~ControlGroupMember ()
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 

Public Attributes

PBD::Signal< void()> MasterStatusChange
 
- Public Attributes inherited from PBD::Controllable
PBD::Signal< void()> LearningFinished
 
PBD::Signal< void(bool, PBD::Controllable::GroupControlDisposition)> Changed
 
PBD::Signal< void()> TouchChanged
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from PBD::Destructible
PBD::Signal< void()> Destroyed
 
PBD::Signal< void()> DropReferences
 
- Public Attributes inherited from Evoral::Control
PBD::Signal< void()> ListMarkedDirty
 

Protected Types

typedef std::map< PBD::ID, MasterRecordMasters
 

Protected Member Functions

void master_going_away (std::weak_ptr< AutomationControl >)
 
double get_value_locked () const
 
void actually_set_value (double value, PBD::Controllable::GroupControlDisposition)
 
void update_boolean_masters_records (std::shared_ptr< AutomationControl >)
 
virtual bool get_masters_curve_locked (samplepos_t, samplepos_t, float *, samplecnt_t) const
 
bool masters_curve_multiply (timepos_t const &, timepos_t const &, float *, samplecnt_t) const
 
virtual double reduce_by_masters_locked (double val, bool) const
 
virtual double scale_automation_callback (double val, double ratio) const
 
virtual bool handle_master_change (std::shared_ptr< AutomationControl >)
 
virtual bool boolean_automation_run_locked (samplepos_t start, pframes_t len)
 
bool boolean_automation_run (samplepos_t start, pframes_t len)
 
virtual void master_changed (bool from_self, GroupControlDisposition gcd, std::weak_ptr< AutomationControl >)
 
virtual double get_masters_value_locked () const
 
virtual void pre_remove_master (std::shared_ptr< AutomationControl >)
 
virtual void post_add_master (std::shared_ptr< AutomationControl >)
 
- Protected Member Functions inherited from ARDOUR::AutomationControl
bool check_rt (double val, Controllable::GroupControlDisposition gcd)
 
void pre_realtime_queue_stuff (double new_value, PBD::Controllable::GroupControlDisposition)
 
virtual void do_pre_realtime_queue_stuff (double new_value)
 
void session_going_away ()
 
- Protected Member Functions inherited from PBD::Controllable
void set_touching (bool yn)
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void insanity_check ()
 

Protected Attributes

Glib::Threads::RWLock master_lock
 
Masters _masters
 
XMLNode_masters_node
 
- Protected Attributes inherited from ARDOUR::AutomationControl
std::shared_ptr< ControlGroup_group
 
std::shared_ptr< ControlGroup_pushed_group
 
const ParameterDescriptor _desc
 
WeakAutomationControlList _visually_linked_ctrls
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 
- Protected Attributes inherited from Evoral::Control
Parameter _parameter
 
std::shared_ptr< ControlList_list
 
double _user_value
 
PBD::ScopedConnection _list_marked_dirty_connection
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 

Additional Inherited Members

- Public Types inherited from PBD::Controllable
enum  Flag {
  Toggle = 0x01 , GainLike = 0x02 , RealTime = 0x04 , NotAutomatable = 0x08 ,
  InlineControl = 0x10 , HiddenControl = 0x20 , MonitorControl = 0x40
}
 
enum  GroupControlDisposition { InverseGroup , NoGroup , UseGroup , ForGroup }
 
- Static Public Member Functions inherited from PBD::Controllable
static std::shared_ptr< Controllableby_id (const PBD::ID &)
 
static void dump_registry ()
 
static ControllableSet registered_controllables ()
 
- Static Public Attributes inherited from PBD::Controllable
static PBD::Signal< bool(std::weak_ptr< PBD::Controllable >)> StartLearning
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> StopLearning
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> GUIFocusChanged
 
static PBD::Signal< void(std::weak_ptr< PBD::Controllable >)> ControlTouched
 
static const std::string xml_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 

Detailed Description

Definition at line 27 of file slavable_automation_control.h.

Member Typedef Documentation

◆ Masters

Definition at line 131 of file slavable_automation_control.h.

Constructor & Destructor Documentation

◆ SlavableAutomationControl()

ARDOUR::SlavableAutomationControl::SlavableAutomationControl ( ARDOUR::Session ,
const Evoral::Parameter parameter,
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) 
)

◆ ~SlavableAutomationControl()

virtual ARDOUR::SlavableAutomationControl::~SlavableAutomationControl ( )
virtual

Member Function Documentation

◆ actually_set_value()

void ARDOUR::SlavableAutomationControl::actually_set_value ( double  value,
PBD::Controllable::GroupControlDisposition   
)
protectedvirtual

◆ add_master()

void ARDOUR::SlavableAutomationControl::add_master ( std::shared_ptr< AutomationControl )

◆ automation_run()

virtual void ARDOUR::SlavableAutomationControl::automation_run ( samplepos_t  start,
pframes_t  nframes 
)
virtual

Reimplemented from ARDOUR::AutomationControl.

Reimplemented in ARDOUR::MuteControl.

◆ boolean_automation_run()

bool ARDOUR::SlavableAutomationControl::boolean_automation_run ( samplepos_t  start,
pframes_t  len 
)
protected

◆ boolean_automation_run_locked()

virtual bool ARDOUR::SlavableAutomationControl::boolean_automation_run_locked ( samplepos_t  start,
pframes_t  len 
)
protectedvirtual

◆ clear_masters()

void ARDOUR::SlavableAutomationControl::clear_masters ( )

◆ find_next_event()

bool ARDOUR::SlavableAutomationControl::find_next_event ( Temporal::timepos_t const &  n,
Temporal::timepos_t const &  e,
Evoral::ControlEvent ev 
) const
inline

Definition at line 80 of file slavable_automation_control.h.

◆ find_next_event_locked()

bool ARDOUR::SlavableAutomationControl::find_next_event_locked ( Temporal::timepos_t const &  now,
Temporal::timepos_t const &  end,
Evoral::ControlEvent next_event 
) const

◆ get_boolean_masters()

int32_t ARDOUR::SlavableAutomationControl::get_boolean_masters ( ) const

◆ get_masters_curve()

bool ARDOUR::SlavableAutomationControl::get_masters_curve ( samplepos_t  s,
samplepos_t  e,
float *  v,
samplecnt_t  l 
) const
inline

Definition at line 63 of file slavable_automation_control.h.

◆ get_masters_curve_locked()

virtual bool ARDOUR::SlavableAutomationControl::get_masters_curve_locked ( samplepos_t  ,
samplepos_t  ,
float *  ,
samplecnt_t   
) const
protectedvirtual

Reimplemented in ARDOUR::GainControl.

◆ get_masters_value()

double ARDOUR::SlavableAutomationControl::get_masters_value ( ) const
inline

Definition at line 52 of file slavable_automation_control.h.

◆ get_masters_value_locked()

virtual double ARDOUR::SlavableAutomationControl::get_masters_value_locked ( ) const
protectedvirtual

◆ get_state()

XMLNode& ARDOUR::SlavableAutomationControl::get_state ( ) const
virtual

◆ get_value()

double ARDOUR::SlavableAutomationControl::get_value ( ) const
virtual

Get ‘internal’ value

Returns
raw value as used for the plugin/processor control port

Reimplemented from ARDOUR::AutomationControl.

Reimplemented in ARDOUR::SoloSafeControl, ARDOUR::SoloIsolateControl, and ARDOUR::SoloControl.

◆ get_value_locked()

double ARDOUR::SlavableAutomationControl::get_value_locked ( ) const
protected

◆ handle_master_change()

virtual bool ARDOUR::SlavableAutomationControl::handle_master_change ( std::shared_ptr< AutomationControl )
protectedvirtual

Reimplemented in ARDOUR::MuteControl.

◆ master_changed()

virtual void ARDOUR::SlavableAutomationControl::master_changed ( bool  from_self,
GroupControlDisposition  gcd,
std::weak_ptr< AutomationControl  
)
protectedvirtual

◆ master_going_away()

void ARDOUR::SlavableAutomationControl::master_going_away ( std::weak_ptr< AutomationControl )
protected

◆ masters()

std::set<std::shared_ptr<AutomationControl> > ARDOUR::SlavableAutomationControl::masters ( ) const

◆ masters_curve_multiply()

bool ARDOUR::SlavableAutomationControl::masters_curve_multiply ( timepos_t const &  ,
timepos_t const &  ,
float *  ,
samplecnt_t   
) const
protected

◆ post_add_master()

virtual void ARDOUR::SlavableAutomationControl::post_add_master ( std::shared_ptr< AutomationControl )
inlineprotectedvirtual

◆ pre_remove_master()

virtual void ARDOUR::SlavableAutomationControl::pre_remove_master ( std::shared_ptr< AutomationControl )
inlineprotectedvirtual

Reimplemented in ARDOUR::SoloControl, and ARDOUR::MuteControl.

Definition at line 151 of file slavable_automation_control.h.

◆ reduce_by_masters()

double ARDOUR::SlavableAutomationControl::reduce_by_masters ( double  val,
bool  ignore_automation_state = false 
) const
inline

Definition at line 58 of file slavable_automation_control.h.

◆ reduce_by_masters_locked()

virtual double ARDOUR::SlavableAutomationControl::reduce_by_masters_locked ( double  val,
bool   
) const
protectedvirtual

◆ remove_master()

void ARDOUR::SlavableAutomationControl::remove_master ( std::shared_ptr< AutomationControl )

◆ scale_automation_callback()

virtual double ARDOUR::SlavableAutomationControl::scale_automation_callback ( double  val,
double  ratio 
) const
protectedvirtual

◆ set_state()

int ARDOUR::SlavableAutomationControl::set_state ( XMLNode const &  ,
int   
)
virtual

◆ slaved()

bool ARDOUR::SlavableAutomationControl::slaved ( ) const

◆ slaved_to()

bool ARDOUR::SlavableAutomationControl::slaved_to ( std::shared_ptr< AutomationControl ) const

◆ update_boolean_masters_records()

void ARDOUR::SlavableAutomationControl::update_boolean_masters_records ( std::shared_ptr< AutomationControl )
protected

◆ use_saved_master_ratios()

void ARDOUR::SlavableAutomationControl::use_saved_master_ratios ( )

Member Data Documentation

◆ _masters

Masters ARDOUR::SlavableAutomationControl::_masters
protected

Definition at line 132 of file slavable_automation_control.h.

◆ _masters_node

XMLNode* ARDOUR::SlavableAutomationControl::_masters_node
protected

Definition at line 154 of file slavable_automation_control.h.

◆ master_lock

Glib::Threads::RWLock ARDOUR::SlavableAutomationControl::master_lock
mutableprotected

Definition at line 130 of file slavable_automation_control.h.

◆ MasterStatusChange

PBD::Signal<void()> ARDOUR::SlavableAutomationControl::MasterStatusChange

Definition at line 73 of file slavable_automation_control.h.


The documentation for this class was generated from the following file: