Ardour  9.0-pre0-822-g12e3bc5c20
ARDOUR::TransportMasterManager Class Reference

#include <transport_master_manager.h>

Public Types

typedef std::list< std::shared_ptr< TransportMaster > > TransportMasters
 

Public Member Functions

 TransportMasterManager (const TransportMasterManager &)=delete
 
TransportMasterManageroperator= (const TransportMasterManager &)=delete
 
 ~TransportMasterManager ()
 
int set_default_configuration ()
 
void restart ()
 
void engine_stopped ()
 
int add (SyncSource type, std::string const &name, bool removeable=true)
 
int remove (std::string const &name)
 
void clear (bool emit=true)
 
double pre_process_transport_masters (pframes_t, samplepos_t session_transport_position)
 
double get_current_speed_in_process_context () const
 
samplepos_t get_current_position_in_process_context () const
 
std::shared_ptr< TransportMastercurrent () const
 
int set_current (std::shared_ptr< TransportMaster >)
 
int set_current (SyncSource)
 
int set_current (std::string const &)
 
int set_state (XMLNode const &, int)
 
XMLNodeget_state () const
 
void set_session (Session *)
 
Sessionsession () const
 
bool master_invalid_this_cycle () const
 
std::shared_ptr< TransportMastermaster_by_type (SyncSource src) const
 
std::shared_ptr< TransportMastermaster_by_name (std::string const &) const
 
std::shared_ptr< TransportMastermaster_by_port (std::shared_ptr< Port > const &p) const
 
TransportMasters const & transport_masters () const
 
void block_disk_output ()
 
void unblock_disk_output ()
 
void reinit (double speed, samplepos_t pos)
 

Static Public Member Functions

static TransportMasterManagercreate ()
 
static TransportMasterManagerinstance ()
 
static void destroy ()
 
static bool exists ()
 

Public Attributes

PBD::Signal< void(std::shared_ptr< TransportMaster >)> Added
 
PBD::Signal< void(std::shared_ptr< TransportMaster >)> Removed
 
PBD::Signal< void(std::shared_ptr< TransportMaster >, std::shared_ptr< TransportMaster >)> CurrentChanged
 

Static Public Attributes

static const std::string state_node_name
 

Private Member Functions

 TransportMasterManager ()
 
void init_transport_master_dll (double speed, samplepos_t pos)
 
void maybe_restore_tc_format ()
 
void maybe_set_tc_format ()
 
int add_locked (std::shared_ptr< TransportMaster >)
 
double compute_matching_master_speed (pframes_t nframes, samplepos_t, bool &locate_required)
 
int set_current_locked (std::shared_ptr< TransportMaster >)
 
void parameter_changed (std::string const &what)
 

Private Attributes

TransportMasters _transport_masters
 
Glib::Threads::RWLock lock
 
double _master_speed
 
samplepos_t _master_position
 
std::shared_ptr< TransportMaster_current_master
 
Session_session
 
bool _master_invalid_this_cycle
 
bool disk_output_blocked
 
double t0
 
double t1
 
double e2
 
double bandwidth
 
double b
 
double c
 
double omega
 
int master_dll_initstate
 
std::optional< Timecode::TimecodeFormat_session_tc_format
 
PBD::ScopedConnection config_connection
 

Static Private Attributes

static TransportMasterManager_instance
 

Detailed Description

Definition at line 30 of file transport_master_manager.h.

Member Typedef Documentation

◆ TransportMasters

Definition at line 50 of file transport_master_manager.h.

Constructor & Destructor Documentation

◆ TransportMasterManager() [1/2]

ARDOUR::TransportMasterManager::TransportMasterManager ( const TransportMasterManager )
delete

◆ ~TransportMasterManager()

ARDOUR::TransportMasterManager::~TransportMasterManager ( )

◆ TransportMasterManager() [2/2]

ARDOUR::TransportMasterManager::TransportMasterManager ( )
private

Member Function Documentation

◆ add()

int ARDOUR::TransportMasterManager::add ( SyncSource  type,
std::string const &  name,
bool  removeable = true 
)

◆ add_locked()

int ARDOUR::TransportMasterManager::add_locked ( std::shared_ptr< TransportMaster )
private

◆ block_disk_output()

void ARDOUR::TransportMasterManager::block_disk_output ( )

◆ clear()

void ARDOUR::TransportMasterManager::clear ( bool  emit = true)

◆ compute_matching_master_speed()

double ARDOUR::TransportMasterManager::compute_matching_master_speed ( pframes_t  nframes,
samplepos_t  ,
bool &  locate_required 
)
private

◆ create()

static TransportMasterManager& ARDOUR::TransportMasterManager::create ( )
static

◆ current()

std::shared_ptr<TransportMaster> ARDOUR::TransportMasterManager::current ( ) const
inline

Definition at line 64 of file transport_master_manager.h.

◆ destroy()

static void ARDOUR::TransportMasterManager::destroy ( )
static

◆ engine_stopped()

void ARDOUR::TransportMasterManager::engine_stopped ( )

◆ exists()

static bool ARDOUR::TransportMasterManager::exists ( )
inlinestatic

Definition at line 48 of file transport_master_manager.h.

◆ get_current_position_in_process_context()

samplepos_t ARDOUR::TransportMasterManager::get_current_position_in_process_context ( ) const
inline

Definition at line 62 of file transport_master_manager.h.

◆ get_current_speed_in_process_context()

double ARDOUR::TransportMasterManager::get_current_speed_in_process_context ( ) const
inline

Definition at line 61 of file transport_master_manager.h.

◆ get_state()

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

◆ init_transport_master_dll()

void ARDOUR::TransportMasterManager::init_transport_master_dll ( double  speed,
samplepos_t  pos 
)
private

◆ instance()

static TransportMasterManager& ARDOUR::TransportMasterManager::instance ( )
static

◆ master_by_name()

std::shared_ptr<TransportMaster> ARDOUR::TransportMasterManager::master_by_name ( std::string const &  ) const

◆ master_by_port()

std::shared_ptr<TransportMaster> ARDOUR::TransportMasterManager::master_by_port ( std::shared_ptr< Port > const &  p) const

◆ master_by_type()

std::shared_ptr<TransportMaster> ARDOUR::TransportMasterManager::master_by_type ( SyncSource  src) const

◆ master_invalid_this_cycle()

bool ARDOUR::TransportMasterManager::master_invalid_this_cycle ( ) const
inline

Definition at line 77 of file transport_master_manager.h.

◆ maybe_restore_tc_format()

void ARDOUR::TransportMasterManager::maybe_restore_tc_format ( )
private

◆ maybe_set_tc_format()

void ARDOUR::TransportMasterManager::maybe_set_tc_format ( )
private

◆ operator=()

TransportMasterManager& ARDOUR::TransportMasterManager::operator= ( const TransportMasterManager )
delete

◆ parameter_changed()

void ARDOUR::TransportMasterManager::parameter_changed ( std::string const &  what)
private

◆ pre_process_transport_masters()

double ARDOUR::TransportMasterManager::pre_process_transport_masters ( pframes_t  ,
samplepos_t  session_transport_position 
)

◆ reinit()

void ARDOUR::TransportMasterManager::reinit ( double  speed,
samplepos_t  pos 
)

◆ remove()

int ARDOUR::TransportMasterManager::remove ( std::string const &  name)

◆ restart()

void ARDOUR::TransportMasterManager::restart ( )

◆ session()

Session* ARDOUR::TransportMasterManager::session ( ) const
inline

Definition at line 75 of file transport_master_manager.h.

◆ set_current() [1/3]

int ARDOUR::TransportMasterManager::set_current ( std::shared_ptr< TransportMaster )

◆ set_current() [2/3]

int ARDOUR::TransportMasterManager::set_current ( std::string const &  )

◆ set_current() [3/3]

int ARDOUR::TransportMasterManager::set_current ( SyncSource  )

◆ set_current_locked()

int ARDOUR::TransportMasterManager::set_current_locked ( std::shared_ptr< TransportMaster )
private

◆ set_default_configuration()

int ARDOUR::TransportMasterManager::set_default_configuration ( )

◆ set_session()

void ARDOUR::TransportMasterManager::set_session ( Session )

◆ set_state()

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

◆ transport_masters()

TransportMasters const& ARDOUR::TransportMasterManager::transport_masters ( ) const
inline

Definition at line 83 of file transport_master_manager.h.

◆ unblock_disk_output()

void ARDOUR::TransportMasterManager::unblock_disk_output ( )

Member Data Documentation

◆ _current_master

std::shared_ptr<TransportMaster> ARDOUR::TransportMasterManager::_current_master
private

Definition at line 99 of file transport_master_manager.h.

◆ _instance

TransportMasterManager* ARDOUR::TransportMasterManager::_instance
staticprivate

Definition at line 117 of file transport_master_manager.h.

◆ _master_invalid_this_cycle

bool ARDOUR::TransportMasterManager::_master_invalid_this_cycle
private

Definition at line 102 of file transport_master_manager.h.

◆ _master_position

samplepos_t ARDOUR::TransportMasterManager::_master_position
private

Definition at line 97 of file transport_master_manager.h.

◆ _master_speed

double ARDOUR::TransportMasterManager::_master_speed
private

Definition at line 96 of file transport_master_manager.h.

◆ _session

Session* ARDOUR::TransportMasterManager::_session
private

Definition at line 100 of file transport_master_manager.h.

◆ _session_tc_format

std::optional<Timecode::TimecodeFormat> ARDOUR::TransportMasterManager::_session_tc_format
private

Definition at line 120 of file transport_master_manager.h.

◆ _transport_masters

TransportMasters ARDOUR::TransportMasterManager::_transport_masters
private

Definition at line 94 of file transport_master_manager.h.

◆ Added

PBD::Signal<void(std::shared_ptr<TransportMaster> )> ARDOUR::TransportMasterManager::Added

Definition at line 56 of file transport_master_manager.h.

◆ b

double ARDOUR::TransportMasterManager::b
private

Definition at line 112 of file transport_master_manager.h.

◆ bandwidth

double ARDOUR::TransportMasterManager::bandwidth
private

Definition at line 111 of file transport_master_manager.h.

◆ c

double ARDOUR::TransportMasterManager::c
private

Definition at line 112 of file transport_master_manager.h.

◆ config_connection

PBD::ScopedConnection ARDOUR::TransportMasterManager::config_connection
private

Definition at line 128 of file transport_master_manager.h.

◆ CurrentChanged

PBD::Signal<void(std::shared_ptr<TransportMaster>, std::shared_ptr<TransportMaster> )> ARDOUR::TransportMasterManager::CurrentChanged

Definition at line 69 of file transport_master_manager.h.

◆ disk_output_blocked

bool ARDOUR::TransportMasterManager::disk_output_blocked
private

Definition at line 103 of file transport_master_manager.h.

◆ e2

double ARDOUR::TransportMasterManager::e2
private

Definition at line 110 of file transport_master_manager.h.

◆ lock

Glib::Threads::RWLock ARDOUR::TransportMasterManager::lock
mutableprivate

Definition at line 95 of file transport_master_manager.h.

◆ master_dll_initstate

int ARDOUR::TransportMasterManager::master_dll_initstate
private

Definition at line 115 of file transport_master_manager.h.

◆ omega

double ARDOUR::TransportMasterManager::omega
private

Definition at line 112 of file transport_master_manager.h.

◆ Removed

PBD::Signal<void(std::shared_ptr<TransportMaster> )> ARDOUR::TransportMasterManager::Removed

Definition at line 57 of file transport_master_manager.h.

◆ state_node_name

const std::string ARDOUR::TransportMasterManager::state_node_name
static

Definition at line 85 of file transport_master_manager.h.

◆ t0

double ARDOUR::TransportMasterManager::t0
private

Definition at line 108 of file transport_master_manager.h.

◆ t1

double ARDOUR::TransportMasterManager::t1
private

Definition at line 109 of file transport_master_manager.h.


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