ardour
Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
ARDOUR::PortManager Class Reference

#include <port_manager.h>

Inheritance diagram for ARDOUR::PortManager:
ARDOUR::AudioEngine

Classes

class  PortRegistrationFailure
 

Public Types

typedef std::map< std::string,
boost::shared_ptr< Port > > 
Ports
 
typedef std::list
< boost::shared_ptr< Port > > 
PortList
 

Public Member Functions

 PortManager ()
 
virtual ~PortManager ()
 
PortEngineport_engine ()
 
uint32_t port_name_size () const
 
std::string my_name () const
 
boost::shared_ptr< Portregister_input_port (DataType, const std::string &portname, bool async=false)
 
boost::shared_ptr< Portregister_output_port (DataType, const std::string &portname, bool async=false)
 
int unregister_port (boost::shared_ptr< Port >)
 
int connect (const std::string &source, const std::string &destination)
 
int disconnect (const std::string &source, const std::string &destination)
 
int disconnect (boost::shared_ptr< Port >)
 
int reestablish_ports ()
 
int reconnect_ports ()
 
bool connected (const std::string &)
 
bool connected_to (const std::string &, const std::string &)
 
bool physically_connected (const std::string &)
 
int get_connections (const std::string &, std::vector< std::string > &)
 
boost::shared_ptr< Portget_port_by_name (const std::string &)
 
void port_renamed (const std::string &, const std::string &)
 
std::string make_port_name_relative (const std::string &name) const
 
std::string make_port_name_non_relative (const std::string &name) const
 
std::string get_pretty_name_by_name (const std::string &portname) const
 
bool port_is_mine (const std::string &fullname) const
 
bool port_is_physical (const std::string &) const
 
void get_physical_outputs (DataType type, std::vector< std::string > &)
 
void get_physical_inputs (DataType type, std::vector< std::string > &)
 
ChanCount n_physical_outputs () const
 
ChanCount n_physical_inputs () const
 
int get_ports (const std::string &port_name_pattern, DataType type, PortFlags flags, std::vector< std::string > &)
 
int get_ports (DataType, PortList &)
 
void remove_all_ports ()
 
bool can_request_input_monitoring () const
 
void request_input_monitoring (const std::string &, bool) const
 
void ensure_input_monitoring (const std::string &, bool) const
 
void registration_callback ()
 
int graph_order_callback ()
 
void connect_callback (const std::string &, const std::string &, bool connection)
 
bool port_remove_in_progress () const
 

Public Attributes

PBD::Signal0< void > GraphReordered
 
PBD::Signal0< void > PortRegisteredOrUnregistered
 
PBD::Signal5< void,
boost::weak_ptr< Port >
, std::string, boost::weak_ptr
< Port >, std::string, bool > 
PortConnectedOrDisconnected
 

Protected Member Functions

boost::shared_ptr< Portregister_port (DataType type, const std::string &portname, bool input, bool async=false)
 
void port_registration_failure (const std::string &portname)
 
void fade_out (gain_t, gain_t, pframes_t)
 
void silence (pframes_t nframes)
 
void silence_outputs (pframes_t nframes)
 
void check_monitoring ()
 
void cycle_start (pframes_t nframes)
 
void cycle_end (pframes_t nframes)
 

Protected Attributes

boost::shared_ptr< AudioBackend_backend
 
SerializedRCUManager< Portsports
 
bool _port_remove_in_progress
 
boost::shared_ptr< Ports_cycle_ports
 

Detailed Description

Definition at line 43 of file port_manager.h.

Member Typedef Documentation

Definition at line 47 of file port_manager.h.

typedef std::map<std::string,boost::shared_ptr<Port> > ARDOUR::PortManager::Ports

Definition at line 46 of file port_manager.h.

Constructor & Destructor Documentation

PortManager::PortManager ( )

Definition at line 37 of file port_manager.cc.

virtual ARDOUR::PortManager::~PortManager ( )
inlinevirtual

Definition at line 50 of file port_manager.h.

Member Function Documentation

bool PortManager::can_request_input_monitoring ( ) const

Definition at line 537 of file port_manager.cc.

void PortManager::check_monitoring ( )
protected

Definition at line 683 of file port_manager.cc.

int PortManager::connect ( const std::string &  source,
const std::string &  destination 
)

Definition at line 393 of file port_manager.cc.

void PortManager::connect_callback ( const std::string &  ,
const std::string &  ,
bool  connection 
)

Definition at line 504 of file port_manager.cc.

bool PortManager::connected ( const std::string &  )

Definition at line 377 of file port_manager.cc.

bool ARDOUR::PortManager::connected_to ( const std::string &  ,
const std::string &   
)
void PortManager::cycle_end ( pframes_t  nframes)
protected

Signal the end of an audio cycle. This signifies that the cycle began with cycle_start has ended. This MUST be called at the end of each cycle. Realtime safe.

Definition at line 618 of file port_manager.cc.

void PortManager::cycle_start ( pframes_t  nframes)
protected

Signal the start of an audio cycle. This MUST be called before any reading/writing for this cycle. Realtime safe.

Definition at line 605 of file port_manager.cc.

int ARDOUR::PortManager::disconnect ( const std::string &  source,
const std::string &  destination 
)
int PortManager::disconnect ( boost::shared_ptr< Port port)

Definition at line 456 of file port_manager.cc.

void PortManager::ensure_input_monitoring ( const std::string &  ,
bool   
) const

Definition at line 561 of file port_manager.cc.

void PortManager::fade_out ( gain_t  base_gain,
gain_t  gain_step,
pframes_t  nframes 
)
protected

Definition at line 700 of file port_manager.cc.

int ARDOUR::PortManager::get_connections ( const std::string &  ,
std::vector< std::string > &   
)
void PortManager::get_physical_inputs ( DataType  type,
std::vector< std::string > &  s 
)

Definition at line 171 of file port_manager.cc.

void PortManager::get_physical_outputs ( DataType  type,
std::vector< std::string > &  s 
)

Definition at line 162 of file port_manager.cc.

boost::shared_ptr< Port > PortManager::get_port_by_name ( const std::string &  )
Parameters
nameFull or short name of port
Returns
Corresponding Port or 0.

Definition at line 204 of file port_manager.cc.

int ARDOUR::PortManager::get_ports ( const std::string &  port_name_pattern,
DataType  type,
PortFlags  flags,
std::vector< std::string > &   
)
int PortManager::get_ports ( DataType  type,
PortList pl 
)

Definition at line 250 of file port_manager.cc.

std::string PortManager::get_pretty_name_by_name ( const std::string &  portname) const

Definition at line 112 of file port_manager.cc.

int PortManager::graph_order_callback ( )

Definition at line 595 of file port_manager.cc.

string PortManager::make_port_name_non_relative ( const std::string &  name) const

Definition at line 96 of file port_manager.cc.

string PortManager::make_port_name_relative ( const std::string &  name) const

Definition at line 70 of file port_manager.cc.

string PortManager::my_name ( ) const

Definition at line 585 of file port_manager.cc.

ChanCount PortManager::n_physical_inputs ( ) const

Definition at line 191 of file port_manager.cc.

ChanCount PortManager::n_physical_outputs ( ) const

Definition at line 181 of file port_manager.cc.

bool ARDOUR::PortManager::physically_connected ( const std::string &  )
PortEngine & PortManager::port_engine ( )

Definition at line 721 of file port_manager.cc.

bool PortManager::port_is_mine ( const std::string &  fullname) const

Definition at line 129 of file port_manager.cc.

bool PortManager::port_is_physical ( const std::string &  portname) const

Definition at line 147 of file port_manager.cc.

uint32_t PortManager::port_name_size ( ) const

Definition at line 575 of file port_manager.cc.

void PortManager::port_registration_failure ( const std::string &  portname)
protected

Definition at line 274 of file port_manager.cc.

bool ARDOUR::PortManager::port_remove_in_progress ( ) const
inline

Definition at line 123 of file port_manager.h.

void PortManager::port_renamed ( const std::string &  old_relative_name,
const std::string &  new_relative_name 
)

Definition at line 236 of file port_manager.cc.

int PortManager::reconnect_ports ( )

Definition at line 488 of file port_manager.cc.

int PortManager::reestablish_ports ( )

Definition at line 462 of file port_manager.cc.

boost::shared_ptr< Port > PortManager::register_input_port ( DataType  ,
const std::string &  portname,
bool  async = false 
)

Definition at line 343 of file port_manager.cc.

boost::shared_ptr< Port > PortManager::register_output_port ( DataType  ,
const std::string &  portname,
bool  async = false 
)

Definition at line 349 of file port_manager.cc.

boost::shared_ptr< Port > PortManager::register_port ( DataType  type,
const std::string &  portname,
bool  input,
bool  async = false 
)
protected

Definition at line 298 of file port_manager.cc.

void PortManager::registration_callback ( )

Definition at line 529 of file port_manager.cc.

void PortManager::remove_all_ports ( )

Definition at line 44 of file port_manager.cc.

void PortManager::request_input_monitoring ( const std::string &  ,
bool   
) const

Definition at line 547 of file port_manager.cc.

void PortManager::silence ( pframes_t  nframes)
protected

Definition at line 634 of file port_manager.cc.

void PortManager::silence_outputs ( pframes_t  nframes)
protected

Definition at line 644 of file port_manager.cc.

int PortManager::unregister_port ( boost::shared_ptr< Port port)

Definition at line 355 of file port_manager.cc.

Member Data Documentation

boost::shared_ptr<AudioBackend> ARDOUR::PortManager::_backend
protected

Definition at line 139 of file port_manager.h.

boost::shared_ptr<Ports> ARDOUR::PortManager::_cycle_ports
protected

List of ports to be used between ::cycle_start() and ::cycle_end()

Definition at line 148 of file port_manager.h.

bool ARDOUR::PortManager::_port_remove_in_progress
protected

Definition at line 141 of file port_manager.h.

PBD::Signal0<void> ARDOUR::PortManager::GraphReordered

Emitted if the backend notifies us of a graph order event

Definition at line 126 of file port_manager.h.

PBD::Signal5<void, boost::weak_ptr<Port>, std::string, boost::weak_ptr<Port>, std::string, bool> ARDOUR::PortManager::PortConnectedOrDisconnected

Emitted if a Port is connected or disconnected. The Port parameters are the ports being connected / disconnected, or 0 if they are not known to Ardour. The std::string parameters are the (long) port names. The bool parameter is true if ports were connected, or false for disconnected.

Definition at line 136 of file port_manager.h.

PBD::Signal0<void> ARDOUR::PortManager::PortRegisteredOrUnregistered

Emitted if a Port is registered or unregistered

Definition at line 129 of file port_manager.h.

SerializedRCUManager<Ports> ARDOUR::PortManager::ports
protected

Definition at line 140 of file port_manager.h.


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