OpalMixerNode Class Reference

#include <opalmixer.h>


Public Member Functions

Construction
 OpalMixerNode (OpalMixerNodeManager &manager, OpalMixerNodeInfo *info)
 OpalMixerNode (OpalMixerEndPoint &endpoint, OpalMixerNodeInfo *info)
 ~OpalMixerNode ()
void ShutDown ()
Overrides from PObject
void PrintOn (ostream &strm) const
Operations
void AttachConnection (OpalConnection *connection)
void DetachConnection (OpalConnection *connection)
bool AttachStream (OpalMixerMediaStream *stream)
void DetachStream (OpalMixerMediaStream *stream)
void UseMediaBypass (unsigned sessionID, OpalConnection *connection=NULL)
bool WriteAudio (const OpalBaseMixer::Key_T &key, const RTP_DataFrame &input)
bool WriteVideo (const OpalBaseMixer::Key_T &key, const RTP_DataFrame &input)
Member variable access
const PGloballyUniqueID & GetGUID () const
const PStringList & GetNames () const
void AddName (const PString &name)
void RemoveName (const PString &name)
PINDEX GetConnectionCount () const
template<class Subclass>
PSafePtr< Subclass > GetFirstConnectionAs (PSafetyMode mode=PSafeReference) const
PSafePtr< OpalConnectionGetFirstConnection (PSafetyMode mode=PSafeReference) const
const OpalMixerNodeInfoGetNodeInfo ()
const PTime & GetCreationTime () const

Protected Member Functions

void Construct ()

Protected Attributes

OpalMixerNodeManagerm_manager
PGloballyUniqueID m_guid
PStringList m_names
OpalMixerNodeInfom_info
PTime m_creationTime
PSafeList< OpalConnectionm_connections
AudioMixer m_audioMixer
VideoMixer m_videoMixer

Data Structures

struct  AudioMixer
struct  MediaMixer
struct  VideoMixer


Detailed Description

Mixer node. This class represents a group of connections that are being mixed.


Constructor & Destructor Documentation

OpalMixerNode::OpalMixerNode ( OpalMixerNodeManager manager,
OpalMixerNodeInfo info 
)

Create a new node.

Parameters:
manager  Manager for this node
info  Configuration information

OpalMixerNode::OpalMixerNode ( OpalMixerEndPoint endpoint,
OpalMixerNodeInfo info 
)

Parameters:
endpoint  Endpoint for this node
info  Configuration information

OpalMixerNode::~OpalMixerNode (  ) 

Destroy node.


Member Function Documentation

void OpalMixerNode::AddName ( const PString &  name  ) 

Add a name for this node.

void OpalMixerNode::AttachConnection ( OpalConnection connection  ) 

Attach a connection.

Parameters:
connection  Connection to attach

bool OpalMixerNode::AttachStream ( OpalMixerMediaStream stream  ) 

Attach a stream for output.

Parameters:
stream  Stream to attach

void OpalMixerNode::Construct (  )  [protected]

void OpalMixerNode::DetachConnection ( OpalConnection connection  ) 

Detach a connection.

Parameters:
connection  Connection to detach

void OpalMixerNode::DetachStream ( OpalMixerMediaStream stream  ) 

Detach a stream for output.

Parameters:
stream  Stream to detach

PINDEX OpalMixerNode::GetConnectionCount (  )  const [inline]

Get count of connections. Note that as this value can change ata any moent, it is really not that useful and should definitely not be used for enumeration of the connections.

const PTime& OpalMixerNode::GetCreationTime (  )  const [inline]

Get the creation time of the node.

PSafePtr<OpalConnection> OpalMixerNode::GetFirstConnection ( PSafetyMode  mode = PSafeReference  )  const [inline]

Get first connection in the connections list.

template<class Subclass>
PSafePtr<Subclass> OpalMixerNode::GetFirstConnectionAs ( PSafetyMode  mode = PSafeReference  )  const [inline]

Get first connection in the connections list as type.

const PGloballyUniqueID& OpalMixerNode::GetGUID (  )  const [inline]

Get globally unique identifier for node.

const PStringList& OpalMixerNode::GetNames (  )  const [inline]

Get list of names for this node.

const OpalMixerNodeInfo& OpalMixerNode::GetNodeInfo (  )  [inline]

Get the raw audio accumulation buffer.

void OpalMixerNode::PrintOn ( ostream &  strm  )  const

Standard stream print function. The PObject class has a << operator defined that invokes this function polymorphically.

Parameters:
strm  Stream to output text representation

void OpalMixerNode::RemoveName ( const PString &  name  ) 

Remove a name for this node.

void OpalMixerNode::ShutDown (  ) 

Shut down node. This clears all attached connections, removes all names and generally shuts the node down.

void OpalMixerNode::UseMediaBypass ( unsigned  sessionID,
OpalConnection connection = NULL 
)

Use media bypass if applicable.

Parameters:
sessionID  Session ID to bypass, 0 indicates all
connection  Just deleted connection

bool OpalMixerNode::WriteAudio ( const OpalBaseMixer::Key_T key,
const RTP_DataFrame input 
) [inline]

Write data to mixer.

Parameters:
key  key for mixer stream
input  Input RTP data for media

bool OpalMixerNode::WriteVideo ( const OpalBaseMixer::Key_T key,
const RTP_DataFrame input 
) [inline]

Write data to mixer.

Parameters:
key  key for mixer stream
input  Input RTP data for media


Field Documentation

AudioMixer OpalMixerNode::m_audioMixer [protected]

PSafeList<OpalConnection> OpalMixerNode::m_connections [protected]

PTime OpalMixerNode::m_creationTime [protected]

PGloballyUniqueID OpalMixerNode::m_guid [protected]

OpalMixerNodeInfo* OpalMixerNode::m_info [protected]

OpalMixerNodeManager& OpalMixerNode::m_manager [protected]

PStringList OpalMixerNode::m_names [protected]

VideoMixer OpalMixerNode::m_videoMixer [protected]


The documentation for this class was generated from the following file:
Generated on Mon Feb 21 20:19:23 2011 for OPAL by  doxygen 1.4.7