OPAL
Version 3.10.10
|
#include <opalmixer.h>
Data Structures | |
struct | UserInput |
Public Member Functions | |
Construction | |
OpalMixerNodeManager () | |
virtual | ~OpalMixerNodeManager () |
virtual void | ShutDown () |
virtual PBoolean | GarbageCollection () |
Operations | |
virtual OpalMixerNode * | CreateNode (OpalMixerNodeInfo *info) |
virtual PSafePtr< OpalMixerNode > | AddNode (OpalMixerNodeInfo *info) |
void | AddNode (OpalMixerNode *node) |
PSafePtr< OpalMixerNode > | GetFirstNode (PSafetyMode mode=PSafeReference) const |
virtual PSafePtr< OpalMixerNode > | FindNode (const PString &name, PSafetyMode mode=PSafeReference) |
virtual void | RemoveNode (OpalMixerNode &node) |
void | AddNodeName (PString name, OpalMixerNode *node) |
void | RemoveNodeName (PString name) |
void | RemoveNodeNames (PStringList names) |
void | QueueUserInput (const PSafePtr< OpalMixerNode > &node, const OpalMixerConnection *connection, const PString &value) |
Protected Attributes | |
PSafeDictionary < PGloballyUniqueID, OpalMixerNode > | m_nodesByUID |
PDictionary< PString, OpalMixerNode > | m_nodesByName |
PQueuedThreadPool< UserInput > | m_userInputPool |
Mixer node manager. This class is a collection of OpalMixerNodes. It provides access to nodes by GUID or name.
OpalMixerNodeManager::OpalMixerNodeManager | ( | ) |
Create a new mixer node manager.
|
virtual |
Destroy all mixer nodes. Calls ShutDown.
|
virtual |
Add a new node. The info variable should be created on the heap and it is subsequently owned by the node. NULL can be passed if defaults are to be used. Calls CreateNode.
info | Initial info for node |
void OpalMixerNodeManager::AddNode | ( | OpalMixerNode * | node | ) |
Add an existing node.
void OpalMixerNodeManager::AddNodeName | ( | PString | name, |
OpalMixerNode * | node | ||
) |
Add node name to association list.
name | alias name for node |
node | node associated with name |
|
virtual |
Create a new node. This should create the new instance of the OpalMixerNode as required by the derived class, if any. The info variable should be created on the heap and it is subsequently owned by the node. NULL can be passed if defaults are to be used.
info | Initial info for node |
|
virtual |
Find a new node. This will search for the mixer node using GUID and then name.
name | GUID or alias name for node |
mode | Lock mode for returned pointer |
Referenced by OpalMixerEndPoint::FindNode().
|
virtual |
Execute garbage collection of nodes. Returns true if all garbage has been collected. Default behaviour deletes the objects that have been removed from the m_nodesByUID list.
|
inline |
Get the first node. The active nodes may be enumerated by the ++ operator on the PSafePtr.
mode | Lock mode for returned pointer |
References m_nodesByUID.
Referenced by OpalMixerEndPoint::GetFirstNode().
void OpalMixerNodeManager::QueueUserInput | ( | const PSafePtr< OpalMixerNode > & | node, |
const OpalMixerConnection * | connection, | ||
const PString & | value | ||
) |
Queue user input for braodcast
node | Node to qhich user input is broadcast |
connection | Connection NOT to send to |
value | String value of indication |
|
virtual |
Remove a node. Shut down all active connections with node, remove its name associations and delete it.
Referenced by OpalMixerEndPoint::RemoveNode().
void OpalMixerNodeManager::RemoveNodeName | ( | PString | name | ) |
Remove node's name from association list.
name | alias name for node |
void OpalMixerNodeManager::RemoveNodeNames | ( | PStringList | names | ) |
Remove list of node names from association list. Commonly used when node destroyed.
names | list of alias names for nodes |
|
virtual |
Shuts down, removes and destroys all mixer nodes.
|
protected |
|
protected |
Referenced by GetFirstNode().
|
protected |