#include <opalmixer.h>
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) |
Protected Attributes | |
PSafeDictionary< PGloballyUniqueID, OpalMixerNode > | m_nodesByUID |
PDictionary< PString, OpalMixerNode > | m_nodesByName |
OpalMixerNodeManager::OpalMixerNodeManager | ( | ) |
Create a new mixer node manager.
virtual OpalMixerNodeManager::~OpalMixerNodeManager | ( | ) | [virtual] |
Destroy all mixer nodes. Calls ShutDown.
void OpalMixerNodeManager::AddNode | ( | OpalMixerNode * | node | ) |
Add an existing node.
virtual PSafePtr<OpalMixerNode> OpalMixerNodeManager::AddNode | ( | OpalMixerNodeInfo * | info | ) | [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::AddNodeName | ( | PString | name, | |
OpalMixerNode * | node | |||
) |
Add node name to association list.
name | alias name for node |
node | node associated with name |
virtual OpalMixerNode* OpalMixerNodeManager::CreateNode | ( | OpalMixerNodeInfo * | info | ) | [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 PSafePtr<OpalMixerNode> OpalMixerNodeManager::FindNode | ( | const PString & | name, | |
PSafetyMode | mode = PSafeReference | |||
) | [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 |
virtual PBoolean OpalMixerNodeManager::GarbageCollection | ( | ) | [virtual] |
Execute garbage collection of nodes. Returns PTrue if all garbage has been collected. Default behaviour deletes the objects that have been removed from the m_nodesByUID list.
PSafePtr<OpalMixerNode> OpalMixerNodeManager::GetFirstNode | ( | PSafetyMode | mode = PSafeReference |
) | const [inline] |
Get the first node. The active nodes may be enumerated by the ++ operator on the PSafePtr.
mode | Lock mode for returned pointer |
virtual void OpalMixerNodeManager::RemoveNode | ( | OpalMixerNode & | node | ) | [virtual] |
Remove a node. Shut down all active connections with node, remove its name associations and delete it.
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 void OpalMixerNodeManager::ShutDown | ( | ) | [virtual] |
Shuts down, removes and destroys all mixer nodes.
PDictionary<PString, OpalMixerNode> OpalMixerNodeManager::m_nodesByName [protected] |
PSafeDictionary<PGloballyUniqueID, OpalMixerNode> OpalMixerNodeManager::m_nodesByUID [protected] |