MCPcopy Create free account
hub / github.com/OpenNI/OpenNI / OnNodeAdded

Method OnNodeAdded

Source/Modules/nimRecorder/RecorderNode.cpp:83–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81}
82
83XnStatus RecorderNode::OnNodeAdded(const XnChar* strNodeName, XnProductionNodeType type, XnCodecID compression)
84{
85 XnStatus nRetVal = XN_STATUS_OK;
86 XnUInt32 nNodeID = ++m_nNumNodes;
87
88 m_nConfigurationID++;
89
90 NodeAddedRecord nodeAddedRecord(m_pRecordBuffer, RECORD_MAX_SIZE, FALSE);
91 nodeAddedRecord.SetNodeName(strNodeName);
92 nodeAddedRecord.SetNodeType(type);
93 nodeAddedRecord.SetCompression(compression);
94 nodeAddedRecord.SetNodeID(nNodeID);
95 nRetVal = nodeAddedRecord.Encode();
96 if (nRetVal != XN_STATUS_OK)
97 {
98 xnLogWarning(XN_MASK_OPEN_NI, "Failed to encode Node Added nodeAddedRecord: %s", xnGetStatusString(nRetVal));
99 XN_ASSERT(FALSE);
100 return nRetVal;
101 }
102
103 XnUInt64 nNodeAddedPos = TellStream();
104 nRetVal = WriteRecordToStream(strNodeName, nodeAddedRecord);
105 if (nRetVal != XN_STATUS_OK)
106 {
107 xnLogWarning(XN_MASK_OPEN_NI, "Failed to write Node Added nodeAddedRecord to file: %s", xnGetStatusString(nRetVal));
108 XN_ASSERT(FALSE);
109 return nRetVal;
110 }
111 RecordedNodeInfo recordedNodeInfo;
112 xn::ProductionNode node;
113 recordedNodeInfo.nNodeID = nNodeID;
114 recordedNodeInfo.type = type;
115 recordedNodeInfo.compression = compression;
116 recordedNodeInfo.nNodeAddedPos = nNodeAddedPos;
117
118 if (xnIsTypeGenerator(type))
119 {
120 /* Create Codec for node */
121 nRetVal = m_context.GetProductionNodeByName(strNodeName, node);
122 XN_IS_STATUS_OK(nRetVal);
123 nRetVal = m_context.CreateCodec(compression, node, recordedNodeInfo.codec);
124 XN_IS_STATUS_OK(nRetVal);
125 }
126
127 /* Index recorded node info by name in hash */
128 nRetVal = m_recordedNodesInfo.Set(strNodeName, recordedNodeInfo);
129 XN_IS_STATUS_OK(nRetVal);
130
131 return XN_STATUS_OK;
132}
133
134XnStatus RecorderNode::OnNodeRemoved(const XnChar* strNodeName)
135{

Callers 1

HandleNodeAddedImplMethod · 0.45

Calls 10

xnGetStatusStringFunction · 0.85
xnIsTypeGeneratorFunction · 0.85
SetNodeNameMethod · 0.80
SetNodeTypeMethod · 0.80
SetCompressionMethod · 0.80
SetNodeIDMethod · 0.80
EncodeMethod · 0.80
CreateCodecMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected