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

#include <port_group.h>

Inheritance diagram for PortGroup:

Classes

struct  BundleRecord
 

Public Types

typedef std::list< BundleRecord * > BundleList
 

Public Member Functions

 PortGroup (std::string const &n)
 
 ~PortGroup ()
 
void add_bundle (boost::shared_ptr< ARDOUR::Bundle >, bool allow_dups=false)
 
void add_bundle (boost::shared_ptr< ARDOUR::Bundle >, boost::shared_ptr< ARDOUR::IO > io)
 
void add_bundle (boost::shared_ptr< ARDOUR::Bundle >, boost::shared_ptr< ARDOUR::IO >, Gdk::Color)
 
void remove_bundle (boost::shared_ptr< ARDOUR::Bundle >)
 
boost::shared_ptr< ARDOUR::Bundleonly_bundle ()
 
void clear ()
 
ARDOUR::ChanCount total_channels () const
 
boost::shared_ptr< ARDOUR::IOio_from_bundle (boost::shared_ptr< ARDOUR::Bundle >) const
 
void remove_duplicates ()
 
bool has_port (std::string const &) const
 
BundleList const & bundles () const
 

Public Attributes

std::string name
 name for the group More...
 
PBD::Signal0< void > Changed
 
PBD::Signal1< void,
ARDOUR::Bundle::Change
BundleChanged
 

Private Member Functions

void bundle_changed (ARDOUR::Bundle::Change)
 
void add_bundle_internal (boost::shared_ptr< ARDOUR::Bundle >, boost::shared_ptr< ARDOUR::IO >, bool, Gdk::Color, bool)
 

Private Attributes

BundleList _bundles
 

Detailed Description

A list of bundles grouped by some aspect of their type e.g. busses, tracks, system. A group has 0 or more bundles.

Definition at line 48 of file port_group.h.

Member Typedef Documentation

typedef std::list<BundleRecord*> PortGroup::BundleList

Definition at line 86 of file port_group.h.

Constructor & Destructor Documentation

PortGroup::PortGroup ( std::string const &  n)

PortGroup constructor.

Parameters
nName.

Definition at line 54 of file port_group.cc.

PortGroup::~PortGroup ( )

Definition at line 60 of file port_group.cc.

Member Function Documentation

void PortGroup::add_bundle ( boost::shared_ptr< ARDOUR::Bundle b,
bool  allow_dups = false 
)

Add a bundle to a group.

Parameters
bBundle.
allow_dupstrue to allow the group to contain more than one bundle with the same port, otherwise false.

Definition at line 73 of file port_group.cc.

void PortGroup::add_bundle ( boost::shared_ptr< ARDOUR::Bundle b,
boost::shared_ptr< ARDOUR::IO io 
)

Add a bundle to a group.

Parameters
bBundle.
ioIO whose ports are in the bundle.

Definition at line 83 of file port_group.cc.

void PortGroup::add_bundle ( boost::shared_ptr< ARDOUR::Bundle b,
boost::shared_ptr< ARDOUR::IO io,
Gdk::Color  c 
)

Add a bundle to a group.

Parameters
bBundle.
cColour to represent the bundle with.

Definition at line 93 of file port_group.cc.

void PortGroup::add_bundle_internal ( boost::shared_ptr< ARDOUR::Bundle b,
boost::shared_ptr< ARDOUR::IO io,
bool  has_colour,
Gdk::Color  colour,
bool  allow_dups 
)
private

Definition at line 107 of file port_group.cc.

void PortGroup::bundle_changed ( ARDOUR::Bundle::Change  c)
private

Definition at line 153 of file port_group.cc.

BundleList const& PortGroup::bundles ( ) const
inline

Definition at line 88 of file port_group.h.

void PortGroup::clear ( )

Definition at line 160 of file port_group.cc.

bool PortGroup::has_port ( std::string const &  p) const

Definition at line 171 of file port_group.cc.

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

Definition at line 202 of file port_group.cc.

boost::shared_ptr< Bundle > PortGroup::only_bundle ( )

Definition at line 183 of file port_group.cc.

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

Definition at line 133 of file port_group.cc.

void PortGroup::remove_duplicates ( )

Remove bundles whose channels are already represented by other, larger bundles

Definition at line 219 of file port_group.cc.

ChanCount PortGroup::total_channels ( ) const

Definition at line 191 of file port_group.cc.

Member Data Documentation

BundleList PortGroup::_bundles
private

Definition at line 96 of file port_group.h.

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

An individual bundle on our list has changed in some way

Definition at line 72 of file port_group.h.

PBD::Signal0<void> PortGroup::Changed

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

Definition at line 69 of file port_group.h.

std::string PortGroup::name

name for the group

Definition at line 64 of file port_group.h.


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