ardour
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
PortGroupList Class Reference

A list of PortGroups. More...

#include <port_group.h>

Inheritance diagram for PortGroupList:

Public Types

typedef std::vector
< boost::shared_ptr< PortGroup > > 
List
 

Public Member Functions

 PortGroupList ()
 
 ~PortGroupList ()
 
void add_group (boost::shared_ptr< PortGroup >)
 
void add_group_if_not_empty (boost::shared_ptr< PortGroup >)
 
void gather (ARDOUR::Session *, ARDOUR::DataType, bool, bool, bool)
 
PortGroup::BundleList const & bundles () const
 
void clear ()
 
void remove_bundle (boost::shared_ptr< ARDOUR::Bundle >)
 
ARDOUR::ChanCount total_channels () const
 
uint32_t size () const
 
boost::shared_ptr< ARDOUR::IOio_from_bundle (boost::shared_ptr< ARDOUR::Bundle >) const
 
void suspend_signals ()
 
void resume_signals ()
 
List::const_iterator begin () const
 
List::const_iterator end () const
 
bool empty () const
 

Public Attributes

PBD::Signal0< void > Changed
 
PBD::Signal1< void,
ARDOUR::Bundle::Change
BundleChanged
 

Private Member Functions

bool port_has_prefix (std::string const &, std::string const &) const
 
std::string common_prefix (std::vector< std::string > const &) const
 
std::string common_prefix_before (std::vector< std::string > const &, std::string const &) const
 
void emit_changed ()
 
void emit_bundle_changed (ARDOUR::Bundle::Change)
 
boost::shared_ptr< ARDOUR::Bundlemake_bundle_from_ports (std::vector< std::string > const &, ARDOUR::DataType, bool) const
 
void maybe_add_processor_to_list (boost::weak_ptr< ARDOUR::Processor >, std::list< boost::shared_ptr< ARDOUR::IO > > *, bool, std::set< boost::shared_ptr< ARDOUR::IO > > &)
 

Private Attributes

PortGroup::BundleList _bundles
 
List _groups
 
PBD::ScopedConnectionList _bundle_changed_connections
 
PBD::ScopedConnectionList _changed_connections
 
bool _signals_suspended
 
bool _pending_change
 
ARDOUR::Bundle::Change _pending_bundle_change
 

Detailed Description

A list of PortGroups.

Definition at line 100 of file port_group.h.

Member Typedef Documentation

Definition at line 106 of file port_group.h.

Constructor & Destructor Documentation

PortGroupList::PortGroupList ( )

PortGroupList constructor.

Definition at line 269 of file port_group.cc.

PortGroupList::~PortGroupList ( )

Definition at line 275 of file port_group.cc.

Member Function Documentation

void PortGroupList::add_group ( boost::shared_ptr< PortGroup g)

Definition at line 718 of file port_group.cc.

void PortGroupList::add_group_if_not_empty ( boost::shared_ptr< PortGroup g)

Definition at line 710 of file port_group.cc.

List::const_iterator PortGroupList::begin ( ) const
inline

Definition at line 123 of file port_group.h.

PortGroup::BundleList const & PortGroupList::bundles ( ) const

Definition at line 686 of file port_group.cc.

void PortGroupList::clear ( )

Definition at line 677 of file port_group.cc.

std::string PortGroupList::common_prefix ( std::vector< std::string > const &  p) const
private

Definition at line 660 of file port_group.cc.

std::string PortGroupList::common_prefix_before ( std::vector< std::string > const &  p,
std::string const &  s 
) const
private

Definition at line 632 of file port_group.cc.

void PortGroupList::emit_bundle_changed ( ARDOUR::Bundle::Change  c)
private

Definition at line 749 of file port_group.cc.

void PortGroupList::emit_changed ( )
private

Definition at line 739 of file port_group.cc.

bool PortGroupList::empty ( ) const

Definition at line 795 of file port_group.cc.

List::const_iterator PortGroupList::end ( ) const
inline

Definition at line 127 of file port_group.h.

void PortGroupList::gather ( ARDOUR::Session session,
ARDOUR::DataType  type,
bool  inputs,
bool  allow_dups,
bool  use_session_bundles 
)

Gather ports from around the system and put them in this PortGroupList.

Parameters
typeType of ports to collect, or NIL for all types.
use_session_bundlestrue to use the session's non-user bundles. Doing this will mean that hardware ports will be gathered into stereo pairs, as the session sets up bundles for these pairs. Not using the session bundles will mean that all hardware IO will be presented separately.

Definition at line 329 of file port_group.cc.

boost::shared_ptr< IO > PortGroupList::io_from_bundle ( boost::shared_ptr< ARDOUR::Bundle b) const

Definition at line 780 of file port_group.cc.

boost::shared_ptr< Bundle > PortGroupList::make_bundle_from_ports ( std::vector< std::string > const &  p,
ARDOUR::DataType  type,
bool  inputs 
) const
private

Definition at line 603 of file port_group.cc.

void PortGroupList::maybe_add_processor_to_list ( boost::weak_ptr< ARDOUR::Processor wp,
std::list< boost::shared_ptr< ARDOUR::IO > > *  route_ios,
bool  inputs,
std::set< boost::shared_ptr< ARDOUR::IO > > &  used_io 
)
private

Definition at line 281 of file port_group.cc.

bool PortGroupList::port_has_prefix ( std::string const &  n,
std::string const &  p 
) const
private

Definition at line 626 of file port_group.cc.

void PortGroupList::remove_bundle ( boost::shared_ptr< ARDOUR::Bundle b)

Definition at line 729 of file port_group.cc.

void PortGroupList::resume_signals ( )

Definition at line 764 of file port_group.cc.

uint32_t PortGroupList::size ( ) const
inline

Definition at line 115 of file port_group.h.

void PortGroupList::suspend_signals ( )

Definition at line 758 of file port_group.cc.

ChanCount PortGroupList::total_channels ( ) const

Definition at line 698 of file port_group.cc.

Member Data Documentation

PBD::ScopedConnectionList PortGroupList::_bundle_changed_connections
private

Definition at line 152 of file port_group.h.

PortGroup::BundleList PortGroupList::_bundles
mutableprivate

Definition at line 150 of file port_group.h.

PBD::ScopedConnectionList PortGroupList::_changed_connections
private

Definition at line 153 of file port_group.h.

List PortGroupList::_groups
private

Definition at line 151 of file port_group.h.

ARDOUR::Bundle::Change PortGroupList::_pending_bundle_change
private

Definition at line 156 of file port_group.h.

bool PortGroupList::_pending_change
private

Definition at line 155 of file port_group.h.

bool PortGroupList::_signals_suspended
private

Definition at line 154 of file port_group.h.

PBD::Signal1<void,ARDOUR::Bundle::Change> PortGroupList::BundleChanged

A bundle in one of our groups has changed

Definition at line 137 of file port_group.h.

PBD::Signal0<void> PortGroupList::Changed

The group list has changed in some way; a group has been added or removed, or the list cleared etc.

Definition at line 134 of file port_group.h.


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