Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::Slavable Class Referenceabstract

#include <slavable.h>

Inheritance diagram for ARDOUR::Slavable:
[legend]

Public Member Functions

 Slavable ()
 
virtual ~Slavable ()
 
XMLNodeget_state () const
 
int set_state (XMLNode const &, int)
 
virtual void assign (std::shared_ptr< VCA >)
 
void unassign (std::shared_ptr< VCA >)
 
virtual std::shared_ptr< AutomationControlautomation_control (const Evoral::Parameter &)=0
 
std::vector< std::shared_ptr< VCA > > masters (VCAManager *) const
 
bool assigned_to (VCAManager *, std::shared_ptr< VCA >) const
 

Public Attributes

PBD::Signal< void(std::shared_ptr< VCA >, bool)> AssignmentChange
 

Static Public Attributes

static std::string xml_node_name
 
static PBD::Signal< void(VCAManager *)> Assign
 

Protected Member Functions

virtual SlavableAutomationControlList slavables () const =0
 

Private Member Functions

bool assign_controls (std::shared_ptr< VCA >)
 
void unassign_controls (std::shared_ptr< VCA >)
 
bool assign_control (std::shared_ptr< VCA >, std::shared_ptr< SlavableAutomationControl >)
 
void unassign_control (std::shared_ptr< VCA >, std::shared_ptr< SlavableAutomationControl >)
 
int do_assign (VCAManager *s)
 
void weak_unassign (std::weak_ptr< VCA >)
 

Private Attributes

Glib::Threads::RWLock master_lock
 
std::set< uint32_t > _masters
 
PBD::ScopedConnection assign_connection
 
PBD::ScopedConnectionList unassign_connections
 

Detailed Description

Definition at line 44 of file slavable.h.

Constructor & Destructor Documentation

◆ Slavable()

ARDOUR::Slavable::Slavable ( )

◆ ~Slavable()

virtual ARDOUR::Slavable::~Slavable ( )
inlinevirtual

Definition at line 48 of file slavable.h.

Member Function Documentation

◆ assign()

virtual void ARDOUR::Slavable::assign ( std::shared_ptr< VCA )
virtual

Reimplemented in ARDOUR::VCA.

◆ assign_control()

bool ARDOUR::Slavable::assign_control ( std::shared_ptr< VCA ,
std::shared_ptr< SlavableAutomationControl  
)
private

◆ assign_controls()

bool ARDOUR::Slavable::assign_controls ( std::shared_ptr< VCA )
private

◆ assigned_to()

bool ARDOUR::Slavable::assigned_to ( VCAManager ,
std::shared_ptr< VCA  
) const

recursively test for master assignment to given VCA

◆ automation_control()

virtual std::shared_ptr<AutomationControl> ARDOUR::Slavable::automation_control ( const Evoral::Parameter )
pure virtual

Implemented in ARDOUR::Automatable.

◆ do_assign()

int ARDOUR::Slavable::do_assign ( VCAManager s)
private

◆ get_state()

XMLNode& ARDOUR::Slavable::get_state ( ) const

◆ masters()

std::vector<std::shared_ptr<VCA> > ARDOUR::Slavable::masters ( VCAManager ) const

◆ set_state()

int ARDOUR::Slavable::set_state ( XMLNode const &  ,
int   
)

◆ slavables()

virtual SlavableAutomationControlList ARDOUR::Slavable::slavables ( ) const
protectedpure virtual

◆ unassign()

void ARDOUR::Slavable::unassign ( std::shared_ptr< VCA )

◆ unassign_control()

void ARDOUR::Slavable::unassign_control ( std::shared_ptr< VCA ,
std::shared_ptr< SlavableAutomationControl  
)
private

◆ unassign_controls()

void ARDOUR::Slavable::unassign_controls ( std::shared_ptr< VCA )
private

◆ weak_unassign()

void ARDOUR::Slavable::weak_unassign ( std::weak_ptr< VCA )
private

Member Data Documentation

◆ _masters

std::set<uint32_t> ARDOUR::Slavable::_masters
private

Definition at line 81 of file slavable.h.

◆ Assign

PBD::Signal<void(VCAManager*)> ARDOUR::Slavable::Assign
static

Definition at line 63 of file slavable.h.

◆ assign_connection

PBD::ScopedConnection ARDOUR::Slavable::assign_connection
private

Definition at line 82 of file slavable.h.

◆ AssignmentChange

PBD::Signal<void(std::shared_ptr<VCA>,bool)> ARDOUR::Slavable::AssignmentChange

Definition at line 56 of file slavable.h.

◆ master_lock

Glib::Threads::RWLock ARDOUR::Slavable::master_lock
mutableprivate

Definition at line 80 of file slavable.h.

◆ unassign_connections

PBD::ScopedConnectionList ARDOUR::Slavable::unassign_connections
private

Definition at line 83 of file slavable.h.

◆ xml_node_name

std::string ARDOUR::Slavable::xml_node_name
static

Definition at line 60 of file slavable.h.


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