/**************************************************************************** * * * OpenNI 1.x Alpha * * Copyright (C) 2011 PrimeSense Ltd. * * * * This file is part of OpenNI. * * * * OpenNI is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published * * by the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * * * OpenNI is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public License * * along with OpenNI. If not, see . * * * ****************************************************************************/ #ifndef XN_MODULE_C_FUNCTIONS_H_ #define XN_MODULE_C_FUNCTIONS_H_ #include "XnModuleCppInterface.h" using namespace xn; #ifdef XN_NO_DYNAMIC_CAST #include "XnDerivedCast.h" #endif #define _XN_VALIDATE_CAPABILITY_INTERFACE_RET(capInterface, retVal) \ if (capInterface == NULL) \ return retVal; #define _XN_VALIDATE_CAPABILITY_INTERFACE(capInterface) \ _XN_VALIDATE_CAPABILITY_INTERFACE_RET(capInterface, XN_STATUS_INVALID_OPERATION) XnBool XN_CALLBACK_TYPE __ModuleIsCapabilitySupported(XnModuleNodeHandle hInstance, const XnChar* strCapabilityName) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->IsCapabilitySupported(strCapabilityName); } XnStatus XN_CALLBACK_TYPE __ModuleInitNotifications(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleExtendedSerializationInterface* pInterface = pNode->GetExtendedSerializationInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->NotifyExState(pNotifications, pCookie); } void XN_CALLBACK_TYPE __ModuleStopNotifications(XnModuleNodeHandle hInstance) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleExtendedSerializationInterface* pInterface = pNode->GetExtendedSerializationInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterExNotifications(); } XnStatus XN_CALLBACK_TYPE __ModuleSetLockState(XnModuleNodeHandle hInstance, XnBool bLocked) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetLockState(bLocked); } XnBool XN_CALLBACK_TYPE __ModuleGetLockState(XnModuleNodeHandle hInstance) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->GetLockState(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToLockChange(XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToLockChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromLockChange(XnModuleNodeHandle hInstance, XnCallbackHandle hCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromLockChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleGetErrorState(XnModuleNodeHandle hInstance) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, XN_STATUS_OK); return pInterface->GetErrorState(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToErrorStateChange(XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToErrorStateChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromErrorStateChange(XnModuleNodeHandle hInstance, XnCallbackHandle hCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromErrorStateChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleGeneralIntGetRange(XnModuleNodeHandle hInstance, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleGeneralIntInterface* pInterface = pNode->GetGeneralIntInterface(strCap); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetRange(strCap, *pnMin, *pnMax, *pnStep, *pnDefault, *pbIsAutoSupported); } XnStatus XN_CALLBACK_TYPE __ModuleGeneralIntGet(XnModuleNodeHandle hInstance, const XnChar* strCap, XnInt32* pnValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleGeneralIntInterface* pInterface = pNode->GetGeneralIntInterface(strCap); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->Get(strCap, *pnValue); } XnStatus XN_CALLBACK_TYPE __ModuleGeneralIntSet(XnModuleNodeHandle hInstance, const XnChar* strCap, XnInt32 nValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleGeneralIntInterface* pInterface = pNode->GetGeneralIntInterface(strCap); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->Set(strCap, nValue); } XnStatus XN_CALLBACK_TYPE __ModuleGeneralIntRegisterToValueChange (XnModuleNodeHandle hInstance, const XnChar* strCap, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleGeneralIntInterface* pInterface = pNode->GetGeneralIntInterface(strCap); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToValueChange(strCap, handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleGeneralIntUnregisterFromValueChange (XnModuleNodeHandle hInstance, const XnChar* strCap, XnCallbackHandle hCallback) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; ModuleGeneralIntInterface* pInterface = pNode->GetGeneralIntInterface(strCap); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromValueChange(strCap, hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleSetIntProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->SetIntProperty(strName, nValue); } XnStatus XN_CALLBACK_TYPE __ModuleSetRealProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->SetRealProperty(strName, dValue); } XnStatus XN_CALLBACK_TYPE __ModuleSetStringProperty(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->SetStringProperty(strName, strValue); } XnStatus XN_CALLBACK_TYPE __ModuleSetGeneralProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->SetGeneralProperty(strName, nBufferSize, pBuffer); } XnStatus XN_CALLBACK_TYPE __ModuleGetIntProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->GetIntProperty(strName, *pnValue); } XnStatus XN_CALLBACK_TYPE __ModuleGetRealProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->GetRealProperty(strName, *pdValue); } XnStatus XN_CALLBACK_TYPE __ModuleGetStringProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->GetStringProperty(strName, csValue, nBufSize); } XnStatus XN_CALLBACK_TYPE __ModuleGetGeneralProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer) { ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; return pNode->GetGeneralProperty(strName, nBufferSize, pBuffer); } XnStatus XN_CALLBACK_TYPE __ModuleSetOutputStream(XnModuleNodeHandle hInstance, void *pCookie, XnRecorderOutputStreamInterface *pStream) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->SetOutputStream(pCookie, pStream); } XnStatus XN_CALLBACK_TYPE __ModuleSetInputStream(XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->SetInputStream(pStreamCookie, pStream); } XnStatus XN_CALLBACK_TYPE __ModuleReadNext(XnModuleNodeHandle hInstance) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->ReadNext(); } XnStatus XN_CALLBACK_TYPE __ModuleSetRepeat(XnModuleNodeHandle hInstance, XnBool bRepeat) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->SetRepeat(bRepeat); } XnStatus XN_CALLBACK_TYPE __ModuleSeekToTimeStamp(XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->SeekToTimeStamp(nTimeOffset, origin); } XnStatus XN_CALLBACK_TYPE __ModuleSeekToFrame(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->SeekToFrame(strNodeName, nFrameOffset, origin); } XnStatus XN_CALLBACK_TYPE __ModuleTellTimestamp(XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->TellTimestamp(*pnTimestamp); } XnStatus XN_CALLBACK_TYPE __ModuleTellFrame(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->TellFrame(strNodeName, *pnFrame); } XnStatus XN_CALLBACK_TYPE __ModuleGetNumFrames(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->GetNumFrames(strNodeName, *pnFrames); } const XnChar* XN_CALLBACK_TYPE __ModuleGetSupportedFormat(XnModuleNodeHandle hInstance) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->GetSupportedFormat(); } XnBool XN_CALLBACK_TYPE __ModuleIsEOF(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->IsEOF(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToEndOfFileReached(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->RegisterToEndOfFileReached(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromEndOfFileReached(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModulePlayer* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromEndOfFileReached(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleSetNodeNotifications(XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModulePlayer* pNode = dynamic_cast(pProdNode); return pNode->SetNodeNotifications(pNodeNotificationsCookie, pNodeNotifications); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeAdded(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, XnProductionNodeType type, XnCodecID compression) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeAdded(strNodeName, type, compression); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeRemoved(XnModuleNodeHandle hGenerator, const XnChar *strNodeName) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeRemoved(strNodeName); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeIntPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnUInt64 nValue) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeIntPropChanged(strNodeName, strPropName, nValue); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeRealPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnDouble dValue) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeRealPropChanged(strNodeName, strPropName, dValue); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeStringPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, const XnChar* strValue) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeStringPropChanged(strNodeName, strPropName, strValue); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeGeneralPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnUInt32 nBufferSize, const void* pBuffer) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeGeneralPropChanged(strNodeName, strPropName, nBufferSize, pBuffer); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeNewData(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, XnUInt64 nTimeStamp, XnUInt32 nFrame, const void *pData, XnUInt32 nSize) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeNewData(strNodeName, nTimeStamp, nFrame, pData, nSize); } XnStatus XN_CALLBACK_TYPE __ModuleOnNodeStateReady(XnModuleNodeHandle hGenerator, const XnChar *strNodeName) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleRecorder* pNode = dynamic_cast(pProdNode); return pNode->OnNodeStateReady(strNodeName); } XnStatus XN_CALLBACK_TYPE __ModuleGetDeviceName(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModuleDevice* pNode = dynamic_cast(pProdNode); ModuleDeviceIdentificationInterface* pInterface = pNode->GetIdentificationInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetDeviceName(strBuffer, *pnBufferSize); } XnStatus XN_CALLBACK_TYPE __ModuleGetVendorSpecificData(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModuleDevice* pNode = dynamic_cast(pProdNode); ModuleDeviceIdentificationInterface* pInterface = pNode->GetIdentificationInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetVendorSpecificData(strBuffer, *pnBufferSize); } XnStatus XN_CALLBACK_TYPE __ModuleGetSerialNumber(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; ModuleDevice* pNode = dynamic_cast(pProdNode); ModuleDeviceIdentificationInterface* pInterface = pNode->GetIdentificationInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetSerialNumber(strBuffer, *pnBufferSize); } XnStatus XN_CALLBACK_TYPE __ModuleSetMirror(XnModuleNodeHandle hGenerator, XnBool bMirror) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetMirror(bMirror); } XnBool XN_CALLBACK_TYPE __ModuleIsMirrored(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsMirrored(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToMirrorChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToMirrorChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromMirrorChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromMirrorChange(hCallback); } XnBool XN_CALLBACK_TYPE __ModuleIsViewPointSupported(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ProductionNode node(hNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsViewPointSupported(node); } XnStatus XN_CALLBACK_TYPE __ModuleSetViewPoint(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ProductionNode node(hNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetViewPoint(node); } XnStatus XN_CALLBACK_TYPE __ModuleResetViewPoint(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->ResetViewPoint(); } XnBool XN_CALLBACK_TYPE __ModuleIsViewPointAs(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); ProductionNode node(hNode); return pInterface->IsViewPointAs(node); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToViewPointChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToViewPointChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromViewPointChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromViewPointChange(hCallback); } XnBool XN_CALLBACK_TYPE __ModuleCanFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); ProductionNode node(hNode); return pInterface->CanFrameSyncWith(node); } XnStatus XN_CALLBACK_TYPE __ModuleFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); ProductionNode node(hNode); return pInterface->FrameSyncWith(node); } XnStatus XN_CALLBACK_TYPE __ModuleStopFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); ProductionNode node(hNode); return pInterface->StopFrameSyncWith(node); } XnBool XN_CALLBACK_TYPE __ModuleIsFrameSyncedWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); ProductionNode node(hNode); return pInterface->IsFrameSyncedWith(node); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToFrameSyncChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToFrameSyncChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromFrameSyncChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromFrameSyncChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleStartGenerating(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->StartGenerating(); } XnBool XN_CALLBACK_TYPE __ModuleIsGenerating(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->IsGenerating(); } void XN_CALLBACK_TYPE __ModuleStopGenerating(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); pNode->StopGenerating(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGenerationRunningChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToGenerationRunningChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromGenerationRunningChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromGenerationRunningChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToNewDataAvailable(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToNewDataAvailable(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromNewDataAvailable(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromNewDataAvailable(hCallback); } XnBool XN_CALLBACK_TYPE __ModuleIsNewDataAvailable(XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->IsNewDataAvailable(*pnTimestamp); } XnStatus XN_CALLBACK_TYPE __ModuleUpdateData(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->UpdateData(); } const void* XN_CALLBACK_TYPE __ModuleGetData(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetData(); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetDataSize(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetDataSize(); } XnUInt64 XN_CALLBACK_TYPE __ModuleGetTimestamp(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetTimestamp(); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetFrameID(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetFrameID(); } XnStatus XN_CALLBACK_TYPE __ModuleSetCropping(XnModuleNodeHandle hGenerator, const XnCropping* pCropping) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetCropping(*pCropping); } XnStatus XN_CALLBACK_TYPE __ModuleGetCropping(XnModuleNodeHandle hGenerator, XnCropping* pCropping) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetCropping(*pCropping); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToCroppingChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToCroppingChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromCroppingChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromCroppingChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleSetPowerLineFrequency(XnModuleNodeHandle hGenerator, XnPowerLineFrequency nFrequency) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleAntiFlickerInterface* pInterface = pNode->GetAntiFlickerInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetPowerLineFrequency(nFrequency); } XnPowerLineFrequency XN_CALLBACK_TYPE __ModuleGetPowerLineFrequency(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleAntiFlickerInterface* pInterface = pNode->GetAntiFlickerInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, XN_POWER_LINE_FREQUENCY_OFF); return pInterface->GetPowerLineFrequency(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPowerLineFrequencyChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleAntiFlickerInterface* pInterface = pNode->GetAntiFlickerInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToPowerLineFrequencyChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromPowerLineFrequencyChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); ModuleAntiFlickerInterface* pInterface = pNode->GetAntiFlickerInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromPowerLineFrequencyChange(hCallback); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedMapOutputModesCount(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetSupportedMapOutputModesCount(); } XnStatus XN_CALLBACK_TYPE __ModuleGetSupportedMapOutputModes(XnModuleNodeHandle hGenerator, XnMapOutputMode* aModes, XnUInt32* pnCount) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetSupportedMapOutputModes(aModes, *pnCount); } XnStatus XN_CALLBACK_TYPE __ModuleSetMapOutputMode(XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->SetMapOutputMode(*pOutputMode); } XnStatus XN_CALLBACK_TYPE __ModuleGetMapOutputMode(XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetMapOutputMode(*pOutputMode); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToMapOutputModeChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToMapOutputModeChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromMapOutputModeChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromMapOutputModeChange(hCallback); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetBytesPerPixel(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleMapGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetBytesPerPixel(); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedUserPositionsCount(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, 0); return pInterface->GetSupportedUserPositionsCount(); } XnStatus XN_CALLBACK_TYPE __ModuleSetUserPosition(XnModuleNodeHandle hGenerator, XnUInt32 nIndex, const XnBoundingBox3D* pPosition) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetUserPosition(nIndex, *pPosition); } XnStatus XN_CALLBACK_TYPE __ModuleGetUserPosition(XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetUserPosition(nIndex, *pPosition); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToUserPositionChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToUserPositionChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromUserPositionChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromUserPositionChange(hCallback); } XnDepthPixel XN_CALLBACK_TYPE __ModuleGetDeviceMaxDepth(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetDeviceMaxDepth(); } void XN_CALLBACK_TYPE __ModuleGetFieldOfView(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); pNode->GetFieldOfView(*pFOV); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToFieldOfViewChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToFieldOfViewChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromFieldOfViewChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromFieldOfViewChange(hCallback); } XnDepthPixel* XN_CALLBACK_TYPE __ModuleGetDepthMap(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleDepthGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetDepthMap(); } XnUInt8* XN_CALLBACK_TYPE __ModuleGetImageMap(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetImageMap(); } XnBool XN_CALLBACK_TYPE __ModuleIsPixelFormatSupported(XnModuleNodeHandle hGenerator, XnPixelFormat Format) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); return pNode->IsPixelFormatSupported(Format); } XnStatus XN_CALLBACK_TYPE __ModuleSetPixelFormat(XnModuleNodeHandle hGenerator, XnPixelFormat Format) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); return pNode->SetPixelFormat(Format); } XnPixelFormat XN_CALLBACK_TYPE __ModuleGetPixelFormat(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetPixelFormat(); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPixelFormatChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToPixelFormatChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromPixelFormatChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleImageGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromPixelFormatChange(hCallback); } XnIRPixel* XN_CALLBACK_TYPE __ModuleGetIRMap(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleIRGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetIRMap(); } XnStatus XN_CALLBACK_TYPE __ModuleAddGesture(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->AddGesture(strGesture, pArea); } XnStatus XN_CALLBACK_TYPE __ModuleRemoveGesture(XnModuleNodeHandle hGenerator, const XnChar* strGesture) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->RemoveGesture(strGesture); } XnStatus XN_CALLBACK_TYPE __ModuleGetActiveGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* pnGestures) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetActiveGestures(pstrGestures, *pnGestures); } XnStatus XN_CALLBACK_TYPE __ModuleGetAllActiveGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* pnGestures) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetAllActiveGestures(pstrGestures, nNameLength, *pnGestures); } XnStatus XN_CALLBACK_TYPE __ModuleEnumerateGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* pnGestures) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->EnumerateGestures(pstrGestures, *pnGestures); } XnStatus XN_CALLBACK_TYPE __ModuleEnumerateAllGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* pnGestures) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->EnumerateAllGestures(pstrGestures, nNameLength, *pnGestures); } XnBool XN_CALLBACK_TYPE __ModuleIsGestureAvailable(XnModuleNodeHandle hGenerator, const XnChar* strGesture) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->IsGestureAvailable(strGesture); } XnBool XN_CALLBACK_TYPE __ModuleIsGestureProgressSupported(XnModuleNodeHandle hGenerator, const XnChar* strGesture) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->IsGestureProgressSupported(strGesture); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterGestureCallbacks(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterGestureCallbacks(RecognizedCB, ProgressCB, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterGestureCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterGestureCallbacks(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGestureChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToGestureChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromGestureChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromGestureChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGestureIntermediateStageCompleted(XnModuleNodeHandle hGenerator, XnModuleGestureIntermediateStageCompleted handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToGestureIntermediateStageCompleted(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromGestureIntermediateStageCompleted(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromGestureIntermediateStageCompleted(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGestureReadyForNextIntermediateStage(XnModuleNodeHandle hGenerator, XnModuleGestureReadyForNextIntermediateStage handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToGestureReadyForNextIntermediateStage(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromGestureReadyForNextIntermediateStage(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleGestureGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromGestureReadyForNextIntermediateStage(hCallback); } const XnLabel* XN_CALLBACK_TYPE __ModuleGetLabelMap(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleSceneAnalyzer* pNode = dynamic_cast(pProdNode); return pNode->GetLabelMap(); } XnStatus XN_CALLBACK_TYPE __ModuleGetFloor(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleSceneAnalyzer* pNode = dynamic_cast(pProdNode); return pNode->GetFloor(*pPlane); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterHandCallbacks(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterHandCallbacks(CreateCB, UpdateCB, DestroyCB, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterHandCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterHandCallbacks(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleStopTracking(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); return pNode->StopTracking(user); } XnStatus XN_CALLBACK_TYPE __ModuleStopTrackingAll(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); return pNode->StopTrackingAll(); } XnStatus XN_CALLBACK_TYPE __ModuleStartTracking(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); return pNode->StartTracking(*pPosition); } XnStatus XN_CALLBACK_TYPE __ModuleSetTrackingSmoothing(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); return pNode->SetSmoothing(fSmoothingFactor); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToHandTouchingFOVEdgeCallback(XnModuleNodeHandle hGenerator, XnModuleHandTouchingFOVEdge handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); ModuleHandTouchingFOVEdgeInterface* pInterface = pNode->GetHandTouchingFOVEdgeInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToHandTouchingFOVEdge(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromHandTouchingFOVEdgeCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleHandsGenerator* pNode = dynamic_cast(pProdNode); ModuleHandTouchingFOVEdgeInterface* pInterface = pNode->GetHandTouchingFOVEdgeInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, ); pInterface->UnregisterFromHandTouchingFOVEdge(hCallback); } XnBool XN_CALLBACK_TYPE __ModuleIsJointAvailable(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsJointAvailable(eJoint); } XnBool XN_CALLBACK_TYPE __ModuleIsProfileAvailable(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsProfileAvailable(eProfile); } XnStatus XN_CALLBACK_TYPE __ModuleSetSkeletonProfile(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetSkeletonProfile(eProfile); } XnStatus XN_CALLBACK_TYPE __ModuleSetJointActive(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetJointActive(eJoint, bState); } XnBool XN_CALLBACK_TYPE __ModuleIsJointActive(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsJointActive(eJoint); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToJointConfigurationChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToJointConfigurationChange(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromJointConfigurationChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromJointConfigurationChange(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleEnumerateActiveJoints(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->EnumerateActiveJoints(pJoints, *pnJoints); } XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJoint(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetSkeletonJoint(user, eJoint, *pJoint); } XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJointPosition(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetSkeletonJointPosition(user, eJoint, *pJoint); } XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJointOrientation(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetSkeletonJointOrientation(user, eJoint, *pJoint); } XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsTracking(user); } XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonCalibrated(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsCalibrated(user); } XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonCalibrating(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsCalibrating(user); } XnStatus XN_CALLBACK_TYPE __ModuleRequestSkeletonCalibration(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RequestCalibration(user, bForce); } XnStatus XN_CALLBACK_TYPE __ModuleAbortSkeletonCalibration(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->AbortCalibration(user); } XnStatus XN_CALLBACK_TYPE __ModuleSaveCalibrationDataToFile(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SaveCalibrationDataToFile(user, strFileName); } XnStatus XN_CALLBACK_TYPE __ModuleLoadCalibrationDataFromFile(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->LoadCalibrationDataFromFile(user, strFileName); } XnStatus XN_CALLBACK_TYPE __ModuleSaveCalibrationData(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SaveCalibrationData(user, nSlot); } XnStatus XN_CALLBACK_TYPE __ModuleLoadCalibrationData(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->LoadCalibrationData(user, nSlot); } XnStatus XN_CALLBACK_TYPE __ModuleClearCalibrationData(XnModuleNodeHandle hGenerator, XnUInt32 nSlot) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->ClearCalibrationData(nSlot); } XnBool XN_CALLBACK_TYPE __ModuleIsCalibrationData(XnModuleNodeHandle hGenerator, XnUInt32 nSlot) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->IsCalibrationData(nSlot); } XnStatus XN_CALLBACK_TYPE __ModuleStartSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->StartTracking(user); } XnStatus XN_CALLBACK_TYPE __ModuleStopSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->StopTracking(user); } XnStatus XN_CALLBACK_TYPE __ModuleResetSkeleton(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->Reset(user); } XnBool XN_CALLBACK_TYPE __ModuleNeedPoseForSkeletonCalibration(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); return pInterface->NeedPoseForCalibration(); } XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonCalibrationPose(XnModuleNodeHandle hGenerator, XnChar* strPose) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetCalibrationPose(strPose); } XnStatus XN_CALLBACK_TYPE __ModuleSetSkeletonSmoothing(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->SetSmoothing(fSmoothingFactor); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterCalibrationCallbacks(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterCalibrationCallbacks(CalibrationStartCB, CalibrationEndCB, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterCalibrationCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterCalibrationCallbacks(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToCalibrationStartCallback(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToCalibrationStart(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromCalibrationStartCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromCalibrationStart(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToCalibrationInProgressCallback(XnModuleNodeHandle hGenerator, XnModuleCalibrationInProgress handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToCalibrationInProgress(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromCalibrationInProgressCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromCalibrationInProgress(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToCalibrationCompleteCallback(XnModuleNodeHandle hGenerator, XnModuleCalibrationComplete handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToCalibrationComplete(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromCalibrationCompleteCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromCalibrationComplete(hCallback); } /// XnUInt32 XN_CALLBACK_TYPE __ModuleGetNumberOfPoses(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, 0); return pInterface->GetNumberOfPoses(); } XnStatus XN_CALLBACK_TYPE __ModuleGetAvailablePoses(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetAvailablePoses(pstrPoses, *pnPoses); } XnStatus XN_CALLBACK_TYPE __ModuleGetAllAvailablePoses(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->GetAllAvailablePoses(pstrPoses, nNameLength, *pnPoses); } XnStatus XN_CALLBACK_TYPE __ModuleStartPoseDetection(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->StartPoseDetection(strPose, user); } XnStatus XN_CALLBACK_TYPE __ModuleStopPoseDetection(XnModuleNodeHandle hGenerator, XnUserID user) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->StopPoseDetection(user); } XnStatus XN_CALLBACK_TYPE __ModuleStopSinglePoseDetection(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strPose) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->StopSinglePoseDetection(user, strPose); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPoseCallbacks(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback PoseDetectionStartCB, XnModulePoseDetectionCallback PoseDetectionEndCB, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToPoseDetectionCallbacks(PoseDetectionStartCB, PoseDetectionEndCB, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromPoseCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromPoseDetectionCallbacks(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPoseDetected(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToPoseDetected(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromPoseDetected(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromPoseDetected(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToOutOfPose(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToOutOfPose(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromOutOfPose(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromOutOfPose(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPoseInProgressCallback(XnModuleNodeHandle hGenerator, XnModulePoseDetectionInProgressCallback handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); return pInterface->RegisterToPoseDetectionInProgress(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromPoseInProgressCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); pInterface->UnregisterFromPoseDetectionInProgress(hCallback); } XnUInt16 XN_CALLBACK_TYPE __ModuleGetNumberOfUsers(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetNumberOfUsers(); } XnStatus XN_CALLBACK_TYPE __ModuleGetUsers(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetUsers(pUsers, *pnUsers); } XnStatus XN_CALLBACK_TYPE __ModuleGetUserCoM(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetCoM(user, *pCoM); } XnStatus XN_CALLBACK_TYPE __ModuleGetUserPixels(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetUserPixels(user, pScene); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterUserCallbacks(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterUserCallbacks(NewUserCB, LostUserCB, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterUserCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterUserCallbacks(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToUserExitCallback(XnModuleNodeHandle hGenerator, XnModuleUserHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToUserExit(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromUserExitCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromUserExit(hCallback); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToUserReEnterCallback(XnModuleNodeHandle hGenerator, XnModuleUserHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToUserReEnter(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromUserReEnterCallback(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleUserGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromUserReEnter(hCallback); } XnUChar* XN_CALLBACK_TYPE __ModuleGetAudioBuffer(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetAudioBuffer(); } XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedWaveOutputModesCount(XnModuleNodeHandle hGenerator) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetSupportedWaveOutputModesCount(); } XnStatus XN_CALLBACK_TYPE __ModuleGetSupportedWaveOutputModes(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetSupportedWaveOutputModes(aSupportedModes, *pnCount); } XnStatus XN_CALLBACK_TYPE __ModuleSetWaveOutputMode(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* pOutputMode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->SetWaveOutputMode(*pOutputMode); } XnStatus XN_CALLBACK_TYPE __ModuleGetWaveOutputMode(XnModuleNodeHandle hGenerator, XnWaveOutputMode* pOutputMode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->GetWaveOutputMode(*pOutputMode); } XnStatus XN_CALLBACK_TYPE __ModuleRegisterToWaveOutputModeChanges(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); return pNode->RegisterToWaveOutputModeChanges(handler, pCookie, *phCallback); } void XN_CALLBACK_TYPE __ModuleUnregisterFromWaveOutputModeChanges(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; ModuleAudioGenerator* pNode = dynamic_cast(pProdNode); pNode->UnregisterFromWaveOutputModeChanges(hCallback); } XnCodecID XN_CALLBACK_TYPE __ModuleGetCodecID(XnModuleNodeHandle hCodec) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; ModuleCodec* pCodec = dynamic_cast(pProdNode); return pCodec->GetCodecID(); } XnStatus XN_CALLBACK_TYPE __ModuleCodecInit(XnModuleNodeHandle hCodec, XnNodeHandle hNode) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; ModuleCodec* pCodec = dynamic_cast(pProdNode); return pCodec->Init(ProductionNode(hNode)); } XnStatus XN_CALLBACK_TYPE __ModuleCompressData(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; ModuleCodec* pCodec = dynamic_cast(pProdNode); return pCodec->CompressData(pSrc, nSrcSize, pDst, nDstSize, pnBytesWritten); } XnStatus XN_CALLBACK_TYPE __ModuleDecompressData(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; ModuleCodec* pCodec = dynamic_cast(pProdNode); return pCodec->DecompressData(pSrc, nSrcSize, pDst, nDstSize, pnBytesWritten); } const XnChar* XN_CALLBACK_TYPE __ModuleScriptGetSupportedFormat(XnModuleNodeHandle hScript) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hScript; ModuleScriptNode* pScript = dynamic_cast(pProdNode); return pScript->GetSupportedFormat(); } XnStatus XN_CALLBACK_TYPE __ModuleLoadScriptFromFile(XnModuleNodeHandle hScript, const XnChar* strFileName) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hScript; ModuleScriptNode* pScript = dynamic_cast(pProdNode); return pScript->LoadScriptFromFile(strFileName); } XnStatus XN_CALLBACK_TYPE __ModuleLoadScriptFromString(XnModuleNodeHandle hScript, const XnChar* strScript) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hScript; ModuleScriptNode* pScript = dynamic_cast(pProdNode); return pScript->LoadScriptFromString(strScript); } XnStatus XN_CALLBACK_TYPE __ModuleScriptRun(XnModuleNodeHandle hScript, XnNodeInfoList* pCreatedNodes, XnEnumerationErrors* pErrors) { ModuleProductionNode* pProdNode = (ModuleProductionNode*)hScript; ModuleScriptNode* pScript = dynamic_cast(pProdNode); NodeInfoList createdNodes(pCreatedNodes); EnumerationErrors errors(pErrors); return pScript->Run(createdNodes, errors); } void XN_CALLBACK_TYPE __ModuleGetExtendedSerializationInterface(XnModuleExtendedSerializationInterface* pInterface) { pInterface->InitNotifications = __ModuleInitNotifications; pInterface->StopNotifications = __ModuleStopNotifications; } void XN_CALLBACK_TYPE __ModuleGetLockAwareInterface(XnModuleLockAwareInterface* pInterface) { pInterface->SetLockState = __ModuleSetLockState; pInterface->GetLockState = __ModuleGetLockState; pInterface->RegisterToLockChange = __ModuleRegisterToLockChange; pInterface->UnregisterFromLockChange = __ModuleUnregisterFromLockChange; } void XN_CALLBACK_TYPE __ModuleGetErrorStateInterface(XnModuleErrorStateInterface* pInterface) { pInterface->GetErrorState = __ModuleGetErrorState; pInterface->RegisterToErrorStateChange = __ModuleRegisterToErrorStateChange; pInterface->UnregisterFromErrorStateChange = __ModuleUnregisterFromErrorStateChange; } void XN_CALLBACK_TYPE __ModuleGetGeneralIntInterface(XnModuleGeneralIntInterface* pInterface) { pInterface->GetRange = __ModuleGeneralIntGetRange; pInterface->Get = __ModuleGeneralIntGet; pInterface->Set = __ModuleGeneralIntSet; pInterface->RegisterToValueChange = __ModuleGeneralIntRegisterToValueChange; pInterface->UnregisterFromValueChange = __ModuleGeneralIntUnregisterFromValueChange; } void XN_CALLBACK_TYPE __ModuleGetProductionNodeInterface(XnModuleProductionNodeInterface* pInterface) { pInterface->IsCapabilitySupported = __ModuleIsCapabilitySupported; pInterface->SetIntProperty = __ModuleSetIntProperty; pInterface->SetRealProperty = __ModuleSetRealProperty; pInterface->SetStringProperty = __ModuleSetStringProperty; pInterface->SetGeneralProperty = __ModuleSetGeneralProperty; pInterface->GetIntProperty = __ModuleGetIntProperty; pInterface->GetRealProperty = __ModuleGetRealProperty; pInterface->GetStringProperty = __ModuleGetStringProperty; pInterface->GetGeneralProperty = __ModuleGetGeneralProperty; __ModuleGetExtendedSerializationInterface(pInterface->pExtendedSerializationInterface); __ModuleGetLockAwareInterface(pInterface->pLockAwareInterface); __ModuleGetErrorStateInterface(pInterface->pErrorStateInterface); __ModuleGetGeneralIntInterface(pInterface->pGeneralIntInterface); } void XN_CALLBACK_TYPE __ModuleGetDeviceIdentificationInterface(XnModuleDeviceIdentificationInterface* pInterface) { pInterface->GetDeviceName = __ModuleGetDeviceName; pInterface->GetVendorSpecificData = __ModuleGetVendorSpecificData; pInterface->GetSerialNumber = __ModuleGetSerialNumber; } void XN_CALLBACK_TYPE __ModuleGetDeviceInterface(XnModuleDeviceInterface* pInterface) { __ModuleGetProductionNodeInterface(pInterface->pProductionNode); __ModuleGetDeviceIdentificationInterface(pInterface->pDeviceIdentificationInterface); } void XN_CALLBACK_TYPE __ModuleGetMirrorInterface(XnModuleMirrorInterface* pInterface) { pInterface->SetMirror = __ModuleSetMirror; pInterface->IsMirrored = __ModuleIsMirrored; pInterface->RegisterToMirrorChange = __ModuleRegisterToMirrorChange; pInterface->UnregisterFromMirrorChange = __ModuleUnregisterFromMirrorChange; } void XN_CALLBACK_TYPE __ModuleGetAlternativeViewPointInterface(XnModuleAlternativeViewPointInterface* pInterface) { pInterface->IsViewPointSupported = __ModuleIsViewPointSupported; pInterface->SetViewPoint = __ModuleSetViewPoint; pInterface->ResetViewPoint = __ModuleResetViewPoint; pInterface->IsViewPointAs = __ModuleIsViewPointAs; pInterface->RegisterToViewPointChange = __ModuleRegisterToViewPointChange; pInterface->UnregisterFromViewPointChange = __ModuleUnregisterFromViewPointChange; } void XN_CALLBACK_TYPE __ModuleGetFrameSyncInterface(XnModuleFrameSyncInterface* pInterface) { pInterface->CanFrameSyncWith = __ModuleCanFrameSyncWith; pInterface->FrameSyncWith = __ModuleFrameSyncWith; pInterface->StopFrameSyncWith = __ModuleStopFrameSyncWith; pInterface->IsFrameSyncedWith = __ModuleIsFrameSyncedWith; pInterface->RegisterToFrameSyncChange = __ModuleRegisterToFrameSyncChange; pInterface->UnregisterFromFrameSyncChange = __ModuleUnregisterFromFrameSyncChange; } void XN_CALLBACK_TYPE __ModuleGetGeneratorInterface(XnModuleGeneratorInterface* pInterface) { __ModuleGetProductionNodeInterface(pInterface->pProductionNodeInterface); pInterface->StartGenerating = __ModuleStartGenerating; pInterface->IsGenerating = __ModuleIsGenerating; pInterface->StopGenerating = __ModuleStopGenerating; pInterface->RegisterToGenerationRunningChange = __ModuleRegisterToGenerationRunningChange; pInterface->UnregisterFromGenerationRunningChange = __ModuleUnregisterFromGenerationRunningChange; pInterface->RegisterToNewDataAvailable = __ModuleRegisterToNewDataAvailable; pInterface->UnregisterFromNewDataAvailable = __ModuleUnregisterFromNewDataAvailable; pInterface->IsNewDataAvailable = __ModuleIsNewDataAvailable; pInterface->UpdateData = __ModuleUpdateData; pInterface->GetData = __ModuleGetData; pInterface->GetDataSize = __ModuleGetDataSize; pInterface->GetTimestamp = __ModuleGetTimestamp; pInterface->GetFrameID = __ModuleGetFrameID; __ModuleGetMirrorInterface(pInterface->pMirrorInterface); __ModuleGetAlternativeViewPointInterface(pInterface->pAlternativeViewPointInterface); __ModuleGetFrameSyncInterface(pInterface->pFrameSyncInterface); } void XN_CALLBACK_TYPE __ModuleGetNodeNotificationsInterface(XnNodeNotifications *pInterface) { pInterface->OnNodeAdded = __ModuleOnNodeAdded; pInterface->OnNodeRemoved = __ModuleOnNodeRemoved; pInterface->OnNodeIntPropChanged = __ModuleOnNodeIntPropChanged; pInterface->OnNodeRealPropChanged = __ModuleOnNodeRealPropChanged; pInterface->OnNodeStringPropChanged = __ModuleOnNodeStringPropChanged; pInterface->OnNodeGeneralPropChanged = __ModuleOnNodeGeneralPropChanged; pInterface->OnNodeStateReady = __ModuleOnNodeStateReady; pInterface->OnNodeNewData = __ModuleOnNodeNewData; } void XN_CALLBACK_TYPE __ModuleGetRecorderInterface(XnModuleRecorderInterface* pInterface) { pInterface->SetOutputStream = __ModuleSetOutputStream; __ModuleGetProductionNodeInterface(pInterface->pProductionNode); __ModuleGetNodeNotificationsInterface(pInterface->pNodeNotifications); } void XN_CALLBACK_TYPE __ModuleGetPlayerInterface(XnModulePlayerInterface* pInterface) { __ModuleGetProductionNodeInterface(pInterface->pProductionNode); pInterface->SetInputStream = __ModuleSetInputStream; pInterface->ReadNext = __ModuleReadNext; pInterface->SetNodeNotifications = __ModuleSetNodeNotifications; pInterface->SetRepeat = __ModuleSetRepeat; pInterface->SeekToTimeStamp = __ModuleSeekToTimeStamp; pInterface->SeekToFrame = __ModuleSeekToFrame; pInterface->TellTimestamp = __ModuleTellTimestamp; pInterface->TellFrame = __ModuleTellFrame; pInterface->GetNumFrames = __ModuleGetNumFrames; pInterface->GetSupportedFormat = __ModuleGetSupportedFormat; pInterface->IsEOF = __ModuleIsEOF; pInterface->RegisterToEndOfFileReached = __ModuleRegisterToEndOfFileReached; pInterface->UnregisterFromEndOfFileReached = __ModuleUnregisterFromEndOfFileReached; } void XN_CALLBACK_TYPE __ModuleGetCroppingInterface(XnModuleCroppingInterface* pInterface) { pInterface->SetCropping = __ModuleSetCropping; pInterface->GetCropping = __ModuleGetCropping; pInterface->RegisterToCroppingChange = __ModuleRegisterToCroppingChange; pInterface->UnregisterFromCroppingChange = __ModuleUnregisterFromCroppingChange; } void XN_CALLBACK_TYPE __ModuleGetAntiFlickerInterface(XnModuleAntiFlickerInterface* pInterface) { pInterface->SetPowerLineFrequency = __ModuleSetPowerLineFrequency; pInterface->GetPowerLineFrequency = __ModuleGetPowerLineFrequency; pInterface->RegisterToPowerLineFrequencyChange = __ModuleRegisterToPowerLineFrequencyChange; pInterface->UnregisterFromPowerLineFrequencyChange = __ModuleUnregisterFromPowerLineFrequencyChange; } void XN_CALLBACK_TYPE __ModuleGetMapGeneratorInterface(XnModuleMapGeneratorInterface* pInterface) { __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); pInterface->GetSupportedMapOutputModesCount = __ModuleGetSupportedMapOutputModesCount; pInterface->GetSupportedMapOutputModes = __ModuleGetSupportedMapOutputModes; pInterface->SetMapOutputMode = __ModuleSetMapOutputMode; pInterface->GetMapOutputMode = __ModuleGetMapOutputMode; pInterface->RegisterToMapOutputModeChange = __ModuleRegisterToMapOutputModeChange; pInterface->UnregisterFromMapOutputModeChange = __ModuleUnregisterFromMapOutputModeChange; pInterface->GetBytesPerPixel = __ModuleGetBytesPerPixel; __ModuleGetCroppingInterface(pInterface->pCroppingInterface); __ModuleGetAntiFlickerInterface(pInterface->pAntiFlickerInterface); } void XN_CALLBACK_TYPE __ModuleGetUserPositionInterface(XnModuleUserPositionCapabilityInterface* pInterface) { pInterface->GetSupportedUserPositionsCount = __ModuleGetSupportedUserPositionsCount; pInterface->SetUserPosition = __ModuleSetUserPosition; pInterface->GetUserPosition = __ModuleGetUserPosition; pInterface->RegisterToUserPositionChange = __ModuleRegisterToUserPositionChange; pInterface->UnregisterFromUserPositionChange = __ModuleUnregisterFromUserPositionChange; } void XN_CALLBACK_TYPE __ModuleGetDepthGeneratorInterface(XnModuleDepthGeneratorInterface* pInterface) { __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); pInterface->GetDeviceMaxDepth = __ModuleGetDeviceMaxDepth; pInterface->GetFieldOfView = __ModuleGetFieldOfView; pInterface->RegisterToFieldOfViewChange = __ModuleRegisterToFieldOfViewChange; pInterface->UnregisterFromFieldOfViewChange = __ModuleUnregisterFromFieldOfViewChange; pInterface->GetDepthMap = __ModuleGetDepthMap; __ModuleGetUserPositionInterface(pInterface->pUserPositionInterface); } void XN_CALLBACK_TYPE __ModuleGetImageGeneratorInterface(XnModuleImageGeneratorInterface* pInterface) { __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); pInterface->GetImageMap = __ModuleGetImageMap; pInterface->IsPixelFormatSupported = __ModuleIsPixelFormatSupported; pInterface->SetPixelFormat = __ModuleSetPixelFormat; pInterface->GetPixelFormat = __ModuleGetPixelFormat; pInterface->RegisterToPixelFormatChange = __ModuleRegisterToPixelFormatChange; pInterface->UnregisterFromPixelFormatChange = __ModuleUnregisterFromPixelFormatChange; } void XN_CALLBACK_TYPE __ModuleGetIRGeneratorInterface(XnModuleIRGeneratorInterface* pInterface) { __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); pInterface->GetIRMap = __ModuleGetIRMap; } void XN_CALLBACK_TYPE __ModuleGetGestureGeneratorInterface(XnModuleGestureGeneratorInterface* pInterface) { __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); pInterface->AddGesture = __ModuleAddGesture; pInterface->RemoveGesture = __ModuleRemoveGesture; pInterface->GetActiveGestures = __ModuleGetActiveGestures; pInterface->GetAllActiveGestures = __ModuleGetAllActiveGestures; pInterface->EnumerateGestures = __ModuleEnumerateGestures; pInterface->EnumerateAllGestures = __ModuleEnumerateAllGestures; pInterface->IsGestureAvailable = __ModuleIsGestureAvailable; pInterface->IsGestureProgressSupported = __ModuleIsGestureProgressSupported; pInterface->RegisterGestureCallbacks = __ModuleRegisterGestureCallbacks; pInterface->UnregisterGestureCallbacks = __ModuleUnregisterGestureCallbacks; pInterface->RegisterToGestureChange = __ModuleRegisterToGestureChange; pInterface->UnregisterFromGestureChange = __ModuleUnregisterFromGestureChange; pInterface->RegisterToGestureIntermediateStageCompleted = __ModuleRegisterToGestureIntermediateStageCompleted; pInterface->UnregisterFromGestureIntermediateStageCompleted = __ModuleUnregisterFromGestureIntermediateStageCompleted; pInterface->RegisterToGestureReadyForNextIntermediateStage = __ModuleRegisterToGestureReadyForNextIntermediateStage; pInterface->UnregisterFromGestureReadyForNextIntermediateStage = __ModuleUnregisterFromGestureReadyForNextIntermediateStage; } void XN_CALLBACK_TYPE __ModuleGetSceneAnalyzerInterface(XnModuleSceneAnalyzerInterface* pInterface) { __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); pInterface->GetLabelMap = __ModuleGetLabelMap; pInterface->GetFloor = __ModuleGetFloor; } void XN_CALLBACK_TYPE __ModuleGetSkeletonInterface(XnModuleSkeletonCapabilityInterface* pInterface) { pInterface->IsJointAvailable = __ModuleIsJointAvailable; pInterface->IsProfileAvailable = __ModuleIsProfileAvailable; pInterface->SetSkeletonProfile = __ModuleSetSkeletonProfile; pInterface->SetJointActive = __ModuleSetJointActive; pInterface->IsJointActive = __ModuleIsJointActive; pInterface->RegisterToJointConfigurationChange = __ModuleRegisterToJointConfigurationChange; pInterface->UnregisterFromJointConfigurationChange = __ModuleUnregisterFromJointConfigurationChange; pInterface->EnumerateActiveJoints = __ModuleEnumerateActiveJoints; pInterface->GetSkeletonJoint = __ModuleGetSkeletonJoint; pInterface->GetSkeletonJointPosition = __ModuleGetSkeletonJointPosition; pInterface->GetSkeletonJointOrientation = __ModuleGetSkeletonJointOrientation; pInterface->IsTracking = __ModuleIsSkeletonTracking; pInterface->IsCalibrated = __ModuleIsSkeletonCalibrated; pInterface->IsCalibrating = __ModuleIsSkeletonCalibrating; pInterface->RequestCalibration = __ModuleRequestSkeletonCalibration; pInterface->AbortCalibration = __ModuleAbortSkeletonCalibration; pInterface->SaveCalibrationDataToFile = __ModuleSaveCalibrationDataToFile; pInterface->LoadCalibrationDataFromFile = __ModuleLoadCalibrationDataFromFile; pInterface->SaveCalibrationData = __ModuleSaveCalibrationData; pInterface->LoadCalibrationData = __ModuleLoadCalibrationData; pInterface->ClearCalibrationData = __ModuleClearCalibrationData; pInterface->IsCalibrationData = __ModuleIsCalibrationData; pInterface->StartTracking = __ModuleStartSkeletonTracking; pInterface->StopTracking = __ModuleStopSkeletonTracking; pInterface->Reset = __ModuleResetSkeleton; pInterface->NeedPoseForCalibration = __ModuleNeedPoseForSkeletonCalibration; pInterface->GetCalibrationPose = __ModuleGetSkeletonCalibrationPose; pInterface->SetSmoothing = __ModuleSetSkeletonSmoothing; pInterface->RegisterCalibrationCallbacks = __ModuleRegisterCalibrationCallbacks; pInterface->UnregisterCalibrationCallbacks = __ModuleUnregisterCalibrationCallbacks; pInterface->RegisterToCalibrationInProgress = __ModuleRegisterToCalibrationInProgressCallback; pInterface->UnregisterFromCalibrationInProgress = __ModuleUnregisterFromCalibrationInProgressCallback; pInterface->RegisterToCalibrationComplete = __ModuleRegisterToCalibrationCompleteCallback; pInterface->UnregisterFromCalibrationComplete = __ModuleUnregisterFromCalibrationCompleteCallback; pInterface->RegisterToCalibrationStart = __ModuleRegisterToCalibrationStartCallback; pInterface->UnregisterFromCalibrationStart = __ModuleUnregisterFromCalibrationStartCallback; } void XN_CALLBACK_TYPE __ModuleGetPoseDetectionInterface(XnModulePoseDetectionCapabilityInterface* pInteface) { pInteface->GetNumberOfPoses = __ModuleGetNumberOfPoses; pInteface->GetAvailablePoses = __ModuleGetAvailablePoses; pInteface->GetAllAvailablePoses = __ModuleGetAllAvailablePoses; pInteface->StartPoseDetection = __ModuleStartPoseDetection; pInteface->StopPoseDetection = __ModuleStopPoseDetection; pInteface->StopSinglePoseDetection = __ModuleStopSinglePoseDetection; pInteface->RegisterToPoseCallbacks = __ModuleRegisterToPoseCallbacks; pInteface->UnregisterFromPoseCallbacks = __ModuleUnregisterFromPoseCallbacks; pInteface->RegisterToPoseDetectionInProgress = __ModuleRegisterToPoseInProgressCallback; pInteface->UnregisterFromPoseDetectionInProgress = __ModuleUnregisterFromPoseInProgressCallback; pInteface->RegisterToPoseDetected = __ModuleRegisterToPoseDetected; pInteface->UnregisterFromPoseDetected = __ModuleUnregisterFromPoseDetected; pInteface->RegisterToOutOfPose = __ModuleRegisterToOutOfPose; pInteface->UnregisterFromOutOfPose = __ModuleUnregisterFromOutOfPose; } void XN_CALLBACK_TYPE __ModuleGetUserGeneratorInterface(XnModuleUserGeneratorInterface* pInterface) { __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); pInterface->GetNumberOfUsers = __ModuleGetNumberOfUsers; pInterface->GetUsers = __ModuleGetUsers; pInterface->GetCoM = __ModuleGetUserCoM; pInterface->GetUserPixels = __ModuleGetUserPixels; pInterface->RegisterUserCallbacks = __ModuleRegisterUserCallbacks; pInterface->UnregisterUserCallbacks = __ModuleUnregisterUserCallbacks; __ModuleGetSkeletonInterface(pInterface->pSkeletonInterface); __ModuleGetPoseDetectionInterface(pInterface->pPoseDetectionInterface); pInterface->RegisterToUserExit = __ModuleRegisterToUserExitCallback; pInterface->UnregisterFromUserExit = __ModuleUnregisterFromUserExitCallback; pInterface->RegisterToUserReEnter = __ModuleRegisterToUserReEnterCallback; pInterface->UnregisterFromUserReEnter = __ModuleUnregisterFromUserReEnterCallback; } void XN_CALLBACK_TYPE __ModuleGetHandTouchingFOVEdgeInterface(XnModuleHandTouchingFOVEdgeCapabilityInterface* pInterface) { pInterface->RegisterToHandTouchingFOVEdge = __ModuleRegisterToHandTouchingFOVEdgeCallback; pInterface->UnregisterFromHandTouchingFOVEdge = __ModuleUnregisterFromHandTouchingFOVEdgeCallback; } void XN_CALLBACK_TYPE __ModuleGetHandsGeneratorInterface(XnModuleHandsGeneratorInterface* pInterface) { __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); pInterface->StartTracking = __ModuleStartTracking; pInterface->StopTracking = __ModuleStopTracking; pInterface->StopTrackingAll = __ModuleStopTrackingAll; pInterface->RegisterHandCallbacks = __ModuleRegisterHandCallbacks; pInterface->UnregisterHandCallbacks = __ModuleUnregisterHandCallbacks; pInterface->SetSmoothing = __ModuleSetTrackingSmoothing; __ModuleGetHandTouchingFOVEdgeInterface(pInterface->pHandTouchingFOVEdgeInterface); } void XN_CALLBACK_TYPE __ModuleGetAudioGeneratorInterface(XnModuleAudioGeneratorInterface* pInterface) { __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); pInterface->GetAudioBuffer = __ModuleGetAudioBuffer; pInterface->GetSupportedWaveOutputModesCount = __ModuleGetSupportedWaveOutputModesCount; pInterface->GetSupportedWaveOutputModes = __ModuleGetSupportedWaveOutputModes; pInterface->SetWaveOutputMode = __ModuleSetWaveOutputMode; pInterface->GetWaveOutputMode = __ModuleGetWaveOutputMode; pInterface->RegisterToWaveOutputModeChanges = __ModuleRegisterToWaveOutputModeChanges; pInterface->UnregisterFromWaveOutputModeChanges = __ModuleUnregisterFromWaveOutputModeChanges; } void XN_CALLBACK_TYPE __ModuleGetCodecInterface(XnModuleCodecInterface* pInterface) { __ModuleGetProductionNodeInterface(pInterface->pProductionNode); pInterface->GetCodecID = __ModuleGetCodecID; pInterface->Init = __ModuleCodecInit; pInterface->CompressData = __ModuleCompressData; pInterface->DecompressData = __ModuleDecompressData; } void XN_CALLBACK_TYPE __ModuleGetScriptNodeInterface(XnModuleScriptNodeInterface* pInterface) { __ModuleGetProductionNodeInterface(pInterface->pProductionNode); pInterface->GetSupportedFormat = __ModuleScriptGetSupportedFormat; pInterface->LoadScriptFromFile = __ModuleLoadScriptFromFile; pInterface->LoadScriptFromString = __ModuleLoadScriptFromString; pInterface->Run = __ModuleScriptRun; } #endif /* XN_MODULE_C_FUNCTIONS_H_ */