void PlayerImpl::Destroy() { CloseFileImpl(); for (PlayedNodesHash::Iterator it = m_playedNodes.begin(); it != m_playedNodes.end(); ++it) { PlayedNodeInfo& nodeInfo = it.Value(); xnUnlockNodeForChanges(nodeInfo.hNode, nodeInfo.hLock); xnProductionNodeRelease(nodeInfo.hNode); } m_playedNodes.Clear(); }
XnStatus PlayerImpl::RemoveNode(const XnChar* strNodeName) { XnStatus nRetVal = XN_STATUS_OK; PlayedNodeInfo playedNodeInfo = {0}; nRetVal = m_playedNodes.Get(strNodeName, playedNodeInfo); XN_IS_STATUS_OK(nRetVal); nRetVal = xnUnlockNodeForChanges(playedNodeInfo.hNode, playedNodeInfo.hLock); XN_IS_STATUS_OK(nRetVal); nRetVal = m_playedNodes.Remove(strNodeName); XN_IS_STATUS_OK(nRetVal); return (XN_STATUS_OK); }
XnStatus PlayerImpl::RemoveNode(const XnChar* strNodeName) { XnStatus nRetVal = XN_STATUS_OK; PlayedNodeInfo playedNodeInfo = {0}; nRetVal = m_playedNodes.Get(strNodeName, playedNodeInfo); XN_IS_STATUS_OK(nRetVal); nRetVal = xnUnlockNodeForChanges(playedNodeInfo.hNode, playedNodeInfo.hLock); if (nRetVal != XN_STATUS_OK) { xnLogWarning(XN_MASK_OPEN_NI, "Failed to unlock node when removing from playing: %s", xnGetStatusString(nRetVal)); } nRetVal = m_playedNodes.Remove(strNodeName); XN_ASSERT(nRetVal == XN_STATUS_OK); xnProductionNodeRelease(playedNodeInfo.hNode); return (XN_STATUS_OK); }