OpenNI 1.0.0
|
00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.0 Alpha * 00004 * Copyright (C) 2010 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * OpenNI is free software: you can redistribute it and/or modify * 00009 * it under the terms of the GNU Lesser General Public License as published * 00010 * by the Free Software Foundation, either version 3 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 * OpenNI is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00016 * GNU Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public License * 00019 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * 00020 * * 00021 *****************************************************************************/ 00022 00023 00024 00025 00026 #ifndef __XN_MODULE_CPP_REGISTRATION_H__ 00027 #define __XN_MODULE_CPP_REGISTRATION_H__ 00028 00029 //--------------------------------------------------------------------------- 00030 // Includes 00031 //--------------------------------------------------------------------------- 00032 #include "XnModuleCppInterface.h" 00033 00034 using namespace xn; 00035 00036 //--------------------------------------------------------------------------- 00037 // Internal Macros 00038 //--------------------------------------------------------------------------- 00040 #define _XN_MODULE_INST g_pTheModule 00041 00042 #define _CONCAT(a,b) a##b 00043 00044 inline XnModuleNodeHandle __ModuleNodeToHandle(xn::ModuleProductionNode* pNode) 00045 { 00046 return ((XnModuleNodeHandle)pNode); 00047 } 00048 00049 #define __XN_EXPORT_NODE_COMMON(ExportedClass, ExportedName, Type, GetInterfaceFunc) \ 00050 \ 00051 static ExportedClass ExportedName; \ 00052 \ 00053 void XN_CALLBACK_TYPE _CONCAT(ExportedClass,GetDescription)(XnProductionNodeDescription* pDescription) \ 00054 { \ 00055 ExportedName.GetDescription(pDescription); \ 00056 } \ 00057 \ 00058 XnStatus XN_CALLBACK_TYPE _CONCAT(ExportedClass,EnumerateProductionTrees) \ 00059 (XnContext* pContext, XnNodeInfoList* pTreesList, XnEnumerationErrors* pErrors) \ 00060 { \ 00061 Context context(pContext); \ 00062 NodeInfoList list(pTreesList); \ 00063 EnumerationErrors errors(pErrors); \ 00064 return ExportedName.EnumerateProductionTrees(context, list, pErrors == NULL ? NULL : &errors); \ 00065 } \ 00066 \ 00067 XnStatus XN_CALLBACK_TYPE _CONCAT(ExportedClass,Create)(XnContext* pContext, \ 00068 const XnChar* strInstanceName, \ 00069 const XnChar* strCreationInfo, \ 00070 XnNodeInfoList* pNeededTrees, \ 00071 const XnChar* strConfigurationDir, \ 00072 XnModuleNodeHandle* phInstance) \ 00073 { \ 00074 xn::NodeInfoList* pNeeded = NULL; \ 00075 if (pNeededTrees != NULL) \ 00076 { \ 00077 pNeeded = XN_NEW(xn::NodeInfoList, pNeededTrees); \ 00078 } \ 00079 ModuleProductionNode* pNode; \ 00080 Context context(pContext); \ 00081 XnStatus nRetVal = ExportedName.Create(context, strInstanceName, strCreationInfo, \ 00082 pNeeded, strConfigurationDir, &pNode); \ 00083 if (nRetVal != XN_STATUS_OK) \ 00084 { \ 00085 XN_DELETE(pNeeded); \ 00086 return (nRetVal); \ 00087 } \ 00088 *phInstance = __ModuleNodeToHandle(pNode); \ 00089 XN_DELETE(pNeeded); \ 00090 return (XN_STATUS_OK); \ 00091 } \ 00092 \ 00093 void XN_CALLBACK_TYPE _CONCAT(ExportedClass,Destroy)(XnModuleNodeHandle hInstance) \ 00094 { \ 00095 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; \ 00096 ExportedName.Destroy(pNode); \ 00097 } \ 00098 \ 00099 void XN_CALLBACK_TYPE _CONCAT(ExportedClass,GetExportedInterface)( \ 00100 XnModuleExportedProductionNodeInterface* pInterface) \ 00101 { \ 00102 pInterface->GetDescription = _CONCAT(ExportedClass,GetDescription); \ 00103 pInterface->EnumerateProductionTrees = _CONCAT(ExportedClass,EnumerateProductionTrees); \ 00104 pInterface->Create = _CONCAT(ExportedClass,Create); \ 00105 pInterface->Destroy = _CONCAT(ExportedClass,Destroy); \ 00106 pInterface->GetInterface.Type = GetInterfaceFunc; \ 00107 } \ 00108 \ 00109 static XnStatus _CONCAT(ExportedClass,RegisterResult) = \ 00110 _XN_MODULE_INST->AddExportedNode(_CONCAT(ExportedClass,GetExportedInterface)); 00111 00112 #define _XN_EXPORT_NODE_COMMON(ExportedClass, Type, GetInterfaceFunc) \ 00113 __XN_EXPORT_NODE_COMMON(ExportedClass, _g_##ExportedClass, Type, GetInterfaceFunc) 00114 00115 #define _XN_VALIDATE_CAPABILITY_INTERFACE_RET(capInterface, retVal) \ 00116 if (capInterface == NULL) \ 00117 return retVal; 00118 00119 #define _XN_VALIDATE_CAPABILITY_INTERFACE(capInterface) \ 00120 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(capInterface, XN_STATUS_INVALID_OPERATION) 00121 00122 //--------------------------------------------------------------------------- 00123 // Utility Macros 00124 //--------------------------------------------------------------------------- 00125 00127 #define XN_EXPORT_MODULE(ModuleClass) \ 00128 \ 00129 static ModuleClass __moduleInstance; \ 00130 Module* _XN_MODULE_INST = &__moduleInstance; 00131 00133 #define XN_EXPORT_DEVICE(ExportedClass) \ 00134 _XN_EXPORT_NODE_COMMON(ExportedClass, Device, __ModuleGetDeviceInterface) 00135 00137 #define XN_EXPORT_DEPTH(ExportedClass) \ 00138 _XN_EXPORT_NODE_COMMON(ExportedClass, Depth, __ModuleGetDepthGeneratorInterface) 00139 00141 #define XN_EXPORT_IMAGE(ExportedClass) \ 00142 _XN_EXPORT_NODE_COMMON(ExportedClass, Image, __ModuleGetImageGeneratorInterface) 00143 00145 #define XN_EXPORT_IR(ExportedClass) \ 00146 _XN_EXPORT_NODE_COMMON(ExportedClass, IR, __ModuleGetIRGeneratorInterface) 00147 00148 #define XN_EXPORT_USER(ExportedClass) \ 00149 _XN_EXPORT_NODE_COMMON(ExportedClass, User, __ModuleGetUserGeneratorInterface) 00150 00151 #define XN_EXPORT_HANDS(ExportedClass) \ 00152 _XN_EXPORT_NODE_COMMON(ExportedClass, Hands, __ModuleGetHandsGeneratorInterface) 00153 00154 #define XN_EXPORT_GESTURE(ExportedClass) \ 00155 _XN_EXPORT_NODE_COMMON(ExportedClass, Gesture, __ModuleGetGestureGeneratorInterface) 00156 00157 #define XN_EXPORT_SCENE(ExportedClass) \ 00158 _XN_EXPORT_NODE_COMMON(ExportedClass, Scene, __ModuleGetSceneAnalyzerInterface) 00159 00161 #define XN_EXPORT_AUDIO(ExportedClass) \ 00162 _XN_EXPORT_NODE_COMMON(ExportedClass, Audio, __ModuleGetAudioGeneratorInterface) 00163 00165 #define XN_EXPORT_RECORDER(ExportedClass) \ 00166 _XN_EXPORT_NODE_COMMON(ExportedClass, Recorder, __ModuleGetRecorderInterface) 00167 00169 #define XN_EXPORT_PLAYER(ExportedClass) \ 00170 _XN_EXPORT_NODE_COMMON(ExportedClass, Player, __ModuleGetPlayerInterface) 00171 00172 #define XN_EXPORT_CODEC(ExportedClass) \ 00173 _XN_EXPORT_NODE_COMMON(ExportedClass, Codec, __ModuleGetCodecInterface) 00174 00175 //--------------------------------------------------------------------------- 00176 // Exported C functions 00177 //--------------------------------------------------------------------------- 00178 extern Module* _XN_MODULE_INST; 00179 00180 XN_C_API_EXPORT XnStatus XN_C_DECL XN_MODULE_LOAD() 00181 { 00182 XnStatus nRetVal = XN_STATUS_OK; 00183 00184 nRetVal = _XN_MODULE_INST->Load(); 00185 XN_IS_STATUS_OK(nRetVal); 00186 00187 return (XN_STATUS_OK); 00188 } 00189 00190 XN_C_API_EXPORT void XN_C_DECL XN_MODULE_UNLOAD() 00191 { 00192 _XN_MODULE_INST->Unload(); 00193 } 00194 00195 XN_C_API_EXPORT XnUInt32 XN_C_DECL XN_MODULE_GET_EXPORTED_NODES_COUNT() 00196 { 00197 return _XN_MODULE_INST->GetExportedNodesCount(); 00198 } 00199 00200 XN_C_API_EXPORT XnStatus XN_C_DECL XN_MODULE_GET_EXPORTED_NODES_ENTRY_POINTS(XnModuleGetExportedInterfacePtr* aEntryPoints, XnUInt32 nCount) 00201 { 00202 return _XN_MODULE_INST->GetExportedNodes(aEntryPoints, nCount); 00203 } 00204 00205 XN_C_API_EXPORT void XN_C_DECL XN_MODULE_GET_OPEN_NI_VERSION(XnVersion* pVersion) 00206 { 00207 pVersion->nMajor = XN_MAJOR_VERSION; 00208 pVersion->nMinor = XN_MINOR_VERSION; 00209 pVersion->nMaintenance = XN_MAINTENANCE_VERSION; 00210 pVersion->nBuild = XN_BUILD_VERSION; 00211 } 00212 00213 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsCapabilitySupported(XnModuleNodeHandle hInstance, const XnChar* strCapabilityName) 00214 { 00215 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00216 return pNode->IsCapabilitySupported(strCapabilityName); 00217 } 00218 00219 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleInitNotifications(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie) 00220 { 00221 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00222 ModuleExtendedSerializationInterface* pInterface = pNode->GetExtendedSerializationInterface(); 00223 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00224 return pInterface->NotifyExState(pNotifications, pCookie); 00225 } 00226 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleStopNotifications(XnModuleNodeHandle hInstance) 00227 { 00228 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00229 ModuleExtendedSerializationInterface* pInterface = pNode->GetExtendedSerializationInterface(); 00230 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00231 pInterface->UnregisterExNotifications(); 00232 } 00233 00234 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetLockState(XnModuleNodeHandle hInstance, XnBool bLocked) 00235 { 00236 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00237 ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); 00238 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00239 return pInterface->SetLockState(bLocked); 00240 } 00241 00242 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleGetLockState(XnModuleNodeHandle hInstance) 00243 { 00244 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00245 ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); 00246 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00247 return pInterface->GetLockState(); 00248 } 00249 00250 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToLockChange(XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00251 { 00252 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00253 ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); 00254 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00255 return pInterface->RegisterToLockChange(handler, pCookie, *phCallback); 00256 } 00257 00258 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromLockChange(XnModuleNodeHandle hInstance, XnCallbackHandle hCallback) 00259 { 00260 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00261 ModuleLockAwareInterface* pInterface = pNode->GetLockAwareInterface(); 00262 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00263 pInterface->UnregisterFromLockChange(hCallback); 00264 } 00265 00266 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetErrorState(XnModuleNodeHandle hInstance) 00267 { 00268 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00269 ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); 00270 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, XN_STATUS_OK); 00271 return pInterface->GetErrorState(); 00272 } 00273 00274 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToErrorStateChange(XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00275 { 00276 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00277 ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); 00278 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00279 return pInterface->RegisterToErrorStateChange(handler, pCookie, *phCallback); 00280 } 00281 00282 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromErrorStateChange(XnModuleNodeHandle hInstance, XnCallbackHandle hCallback) 00283 { 00284 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00285 ModuleErrorStateInterface* pInterface = pNode->GetErrorStateInterface(); 00286 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00287 pInterface->UnregisterFromErrorStateChange(hCallback); 00288 } 00289 00290 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetIntProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue) 00291 { 00292 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00293 return pNode->SetIntProperty(strName, nValue); 00294 } 00295 00296 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetRealProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue) 00297 { 00298 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00299 return pNode->SetRealProperty(strName, dValue); 00300 } 00301 00302 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetStringProperty(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue) 00303 { 00304 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00305 return pNode->SetStringProperty(strName, strValue); 00306 } 00307 00308 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetGeneralProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer) 00309 { 00310 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00311 return pNode->SetGeneralProperty(strName, nBufferSize, pBuffer); 00312 } 00313 00314 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetIntProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue) 00315 { 00316 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00317 return pNode->GetIntProperty(strName, *pnValue); 00318 } 00319 00320 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetRealProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue) 00321 { 00322 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00323 return pNode->GetRealProperty(strName, *pdValue); 00324 } 00325 00326 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetStringProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize) 00327 { 00328 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00329 return pNode->GetStringProperty(strName, csValue, nBufSize); 00330 } 00331 00332 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetGeneralProperty(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer) 00333 { 00334 ModuleProductionNode* pNode = (ModuleProductionNode*)hInstance; 00335 return pNode->GetGeneralProperty(strName, nBufferSize, pBuffer); 00336 } 00337 00338 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetOutputStream(XnModuleNodeHandle hInstance, void *pCookie, XnRecorderOutputStreamInterface *pStream) 00339 { 00340 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00341 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00342 return pNode->SetOutputStream(pCookie, pStream); 00343 } 00344 00345 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetInputStream(XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream) 00346 { 00347 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00348 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00349 return pNode->SetInputStream(pStreamCookie, pStream); 00350 } 00351 00352 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleReadNext(XnModuleNodeHandle hInstance) 00353 { 00354 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00355 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00356 return pNode->ReadNext(); 00357 } 00358 00359 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetRepeat(XnModuleNodeHandle hInstance, XnBool bRepeat) 00360 { 00361 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00362 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00363 return pNode->SetRepeat(bRepeat); 00364 } 00365 00366 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSeekToTimeStamp(XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin) 00367 { 00368 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00369 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00370 return pNode->SeekToTimeStamp(nTimeOffset, origin); 00371 } 00372 00373 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSeekToFrame(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin) 00374 { 00375 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00376 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00377 return pNode->SeekToFrame(strNodeName, nFrameOffset, origin); 00378 } 00379 00380 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleTellTimestamp(XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp) 00381 { 00382 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00383 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00384 return pNode->TellTimestamp(*pnTimestamp); 00385 } 00386 00387 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleTellFrame(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame) 00388 { 00389 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00390 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00391 return pNode->TellFrame(strNodeName, *pnFrame); 00392 } 00393 00394 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetNumFrames(XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames) 00395 { 00396 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00397 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00398 return pNode->GetNumFrames(strNodeName, *pnFrames); 00399 } 00400 00401 XN_C_API_EXPORT const XnChar* XN_CALLBACK_TYPE __ModuleGetSupportedFormat(XnModuleNodeHandle hInstance) 00402 { 00403 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00404 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00405 return pNode->GetSupportedFormat(); 00406 } 00407 00408 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsEOF(XnModuleNodeHandle hGenerator) 00409 { 00410 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00411 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00412 return pNode->IsEOF(); 00413 } 00414 00415 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToEndOfFileReached(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00416 { 00417 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00418 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00419 return pNode->RegisterToEndOfFileReached(handler, pCookie, *phCallback); 00420 } 00421 00422 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromEndOfFileReached(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00423 { 00424 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00425 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00426 pNode->UnregisterFromEndOfFileReached(hCallback); 00427 } 00428 00429 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetNodeNotifications(XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications) 00430 { 00431 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hInstance; 00432 ModulePlayer* pNode = dynamic_cast<ModulePlayer*>(pProdNode); 00433 return pNode->SetNodeNotifications(pNodeNotificationsCookie, pNodeNotifications); 00434 } 00435 00436 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeAdded(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, XnProductionNodeType type, XnCodecID compression) 00437 { 00438 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00439 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00440 return pNode->OnNodeAdded(strNodeName, type, compression); 00441 } 00442 00443 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeRemoved(XnModuleNodeHandle hGenerator, const XnChar *strNodeName) 00444 { 00445 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00446 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00447 return pNode->OnNodeRemoved(strNodeName); 00448 } 00449 00450 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeIntPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnUInt64 nValue) 00451 { 00452 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00453 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00454 return pNode->OnNodeIntPropChanged(strNodeName, strPropName, nValue); 00455 } 00456 00457 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeRealPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnDouble dValue) 00458 { 00459 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00460 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00461 return pNode->OnNodeRealPropChanged(strNodeName, strPropName, dValue); 00462 } 00463 00464 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeStringPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, const XnChar* strValue) 00465 { 00466 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00467 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00468 return pNode->OnNodeStringPropChanged(strNodeName, strPropName, strValue); 00469 } 00470 00471 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeGeneralPropChanged(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, const XnChar* strPropName, XnUInt32 nBufferSize, const void* pBuffer) 00472 { 00473 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00474 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00475 return pNode->OnNodeGeneralPropChanged(strNodeName, strPropName, nBufferSize, pBuffer); 00476 } 00477 00478 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeNewData(XnModuleNodeHandle hGenerator, const XnChar *strNodeName, XnUInt64 nTimeStamp, XnUInt32 nFrame, const void *pData, XnUInt32 nSize) 00479 { 00480 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00481 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00482 return pNode->OnNodeNewData(strNodeName, nTimeStamp, nFrame, pData, nSize); 00483 } 00484 00485 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleOnNodeStateReady(XnModuleNodeHandle hGenerator, const XnChar *strNodeName) 00486 { 00487 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00488 ModuleRecorder* pNode = dynamic_cast<ModuleRecorder*>(pProdNode); 00489 return pNode->OnNodeStateReady(strNodeName); 00490 } 00491 00492 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetMirror(XnModuleNodeHandle hGenerator, XnBool bMirror) 00493 { 00494 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00495 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00496 ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); 00497 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00498 return pInterface->SetMirror(bMirror); 00499 } 00500 00501 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsMirrored(XnModuleNodeHandle hGenerator) 00502 { 00503 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00504 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00505 ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); 00506 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00507 return pInterface->IsMirrored(); 00508 } 00509 00510 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToMirrorChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00511 { 00512 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00513 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00514 ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); 00515 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00516 return pInterface->RegisterToMirrorChange(handler, pCookie, *phCallback); 00517 } 00518 00519 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromMirrorChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00520 { 00521 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00522 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00523 ModuleMirrorInterface* pInterface = pNode->GetMirrorInterface(); 00524 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00525 pInterface->UnregisterFromMirrorChange(hCallback); 00526 } 00527 00528 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsViewPointSupported(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00529 { 00530 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00531 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00532 ProductionNode node(hNode); 00533 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00534 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00535 return pInterface->IsViewPointSupported(node); 00536 } 00537 00538 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetViewPoint(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00539 { 00540 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00541 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00542 ProductionNode node(hNode); 00543 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00544 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00545 return pInterface->SetViewPoint(node); 00546 } 00547 00548 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleResetViewPoint(XnModuleNodeHandle hGenerator) 00549 { 00550 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00551 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00552 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00553 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00554 return pInterface->ResetViewPoint(); 00555 } 00556 00557 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsViewPointAs(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00558 { 00559 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00560 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00561 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00562 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00563 ProductionNode node(hNode); 00564 return pInterface->IsViewPointAs(node); 00565 } 00566 00567 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToViewPointChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00568 { 00569 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00570 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00571 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00572 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00573 return pInterface->RegisterToViewPointChange(handler, pCookie, *phCallback); 00574 } 00575 00576 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromViewPointChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00577 { 00578 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00579 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00580 ModuleAlternativeViewPointInterface* pInterface = pNode->GetAlternativeViewPointInterface(); 00581 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00582 pInterface->UnregisterFromViewPointChange(hCallback); 00583 } 00584 00585 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleCanFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00586 { 00587 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00588 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00589 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00590 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00591 ProductionNode node(hNode); 00592 return pInterface->CanFrameSyncWith(node); 00593 } 00594 00595 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00596 { 00597 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00598 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00599 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00600 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00601 ProductionNode node(hNode); 00602 return pInterface->FrameSyncWith(node); 00603 } 00604 00605 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStopFrameSyncWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00606 { 00607 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00608 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00609 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00610 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00611 ProductionNode node(hNode); 00612 return pInterface->StopFrameSyncWith(node); 00613 } 00614 00615 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsFrameSyncedWith(XnModuleNodeHandle hGenerator, XnNodeHandle hNode) 00616 { 00617 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00618 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00619 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00620 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 00621 ProductionNode node(hNode); 00622 return pInterface->IsFrameSyncedWith(node); 00623 } 00624 00625 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToFrameSyncChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00626 { 00627 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00628 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00629 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00630 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00631 return pInterface->RegisterToFrameSyncChange(handler, pCookie, *phCallback); 00632 } 00633 00634 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromFrameSyncChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00635 { 00636 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00637 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00638 ModuleFrameSyncInterface* pInterface = pNode->GetFrameSyncInterface(); 00639 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00640 pInterface->UnregisterFromFrameSyncChange(hCallback); 00641 } 00642 00643 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStartGenerating(XnModuleNodeHandle hGenerator) 00644 { 00645 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00646 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00647 return pNode->StartGenerating(); 00648 } 00649 00650 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsGenerating(XnModuleNodeHandle hGenerator) 00651 { 00652 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00653 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00654 return pNode->IsGenerating(); 00655 } 00656 00657 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleStopGenerating(XnModuleNodeHandle hGenerator) 00658 { 00659 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00660 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00661 pNode->StopGenerating(); 00662 } 00663 00664 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGenerationRunningChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00665 { 00666 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00667 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00668 return pNode->RegisterToGenerationRunningChange(handler, pCookie, *phCallback); 00669 } 00670 00671 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromGenerationRunningChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00672 { 00673 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00674 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00675 pNode->UnregisterFromGenerationRunningChange(hCallback); 00676 } 00677 00678 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToNewDataAvailable(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00679 { 00680 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00681 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00682 return pNode->RegisterToNewDataAvailable(handler, pCookie, *phCallback); 00683 } 00684 00685 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromNewDataAvailable(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00686 { 00687 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00688 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00689 pNode->UnregisterFromNewDataAvailable(hCallback); 00690 } 00691 00692 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsNewDataAvailable(XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp) 00693 { 00694 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00695 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00696 return pNode->IsNewDataAvailable(*pnTimestamp); 00697 } 00698 00699 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleUpdateData(XnModuleNodeHandle hGenerator) 00700 { 00701 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00702 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00703 return pNode->UpdateData(); 00704 } 00705 00706 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetDataSize(XnModuleNodeHandle hGenerator) 00707 { 00708 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00709 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00710 return pNode->GetDataSize(); 00711 } 00712 00713 XN_C_API_EXPORT XnUInt64 XN_CALLBACK_TYPE __ModuleGetTimestamp(XnModuleNodeHandle hGenerator) 00714 { 00715 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00716 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00717 return pNode->GetTimestamp(); 00718 } 00719 00720 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetFrameID(XnModuleNodeHandle hGenerator) 00721 { 00722 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00723 ModuleGenerator* pNode = dynamic_cast<ModuleGenerator*>(pProdNode); 00724 return pNode->GetFrameID(); 00725 } 00726 00727 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetCropping(XnModuleNodeHandle hGenerator, const XnCropping* pCropping) 00728 { 00729 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00730 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00731 ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); 00732 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00733 return pInterface->SetCropping(*pCropping); 00734 } 00735 00736 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetCropping(XnModuleNodeHandle hGenerator, XnCropping* pCropping) 00737 { 00738 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00739 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00740 ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); 00741 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00742 return pInterface->GetCropping(*pCropping); 00743 } 00744 00745 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToCroppingChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00746 { 00747 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00748 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00749 ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); 00750 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00751 return pInterface->RegisterToCroppingChange(handler, pCookie, *phCallback); 00752 } 00753 00754 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromCroppingChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00755 { 00756 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00757 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00758 ModuleCroppingInterface* pInterface = pNode->GetCroppingInterface(); 00759 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00760 pInterface->UnregisterFromCroppingChange(hCallback); 00761 } 00762 00763 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedMapOutputModesCount(XnModuleNodeHandle hGenerator) 00764 { 00765 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00766 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00767 return pNode->GetSupportedMapOutputModesCount(); 00768 } 00769 00770 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSupportedMapOutputModes(XnModuleNodeHandle hGenerator, XnMapOutputMode* aModes, XnUInt32* pnCount) 00771 { 00772 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00773 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00774 return pNode->GetSupportedMapOutputModes(aModes, *pnCount); 00775 } 00776 00777 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetMapOutputMode(XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode) 00778 { 00779 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00780 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00781 return pNode->SetMapOutputMode(*pOutputMode); 00782 } 00783 00784 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetMapOutputMode(XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode) 00785 { 00786 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00787 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00788 return pNode->GetMapOutputMode(*pOutputMode); 00789 } 00790 00791 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToMapOutputModeChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00792 { 00793 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00794 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00795 return pNode->RegisterToMapOutputModeChange(handler, pCookie, *phCallback); 00796 } 00797 00798 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromMapOutputModeChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00799 { 00800 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00801 ModuleMapGenerator* pNode = dynamic_cast<ModuleMapGenerator*>(pProdNode); 00802 pNode->UnregisterFromMapOutputModeChange(hCallback); 00803 } 00804 00805 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedUserPositionsCount(XnModuleNodeHandle hGenerator) 00806 { 00807 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00808 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00809 ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); 00810 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, 0); 00811 return pInterface->GetSupportedUserPositionsCount(); 00812 } 00813 00814 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetUserPosition(XnModuleNodeHandle hGenerator, XnUInt32 nIndex, const XnBoundingBox3D* pPosition) 00815 { 00816 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00817 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00818 ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); 00819 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00820 return pInterface->SetUserPosition(nIndex, *pPosition); 00821 } 00822 00823 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetUserPosition(XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition) 00824 { 00825 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00826 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00827 ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); 00828 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00829 return pInterface->GetUserPosition(nIndex, *pPosition); 00830 } 00831 00832 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToUserPositionChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00833 { 00834 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00835 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00836 ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); 00837 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 00838 return pInterface->RegisterToUserPositionChange(handler, pCookie, *phCallback); 00839 } 00840 00841 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromUserPositionChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00842 { 00843 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00844 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00845 ModuleUserPositionInterface* pInterface = pNode->GetUserPositionInterface(); 00846 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 00847 pInterface->UnregisterFromUserPositionChange(hCallback); 00848 } 00849 00850 XN_C_API_EXPORT XnDepthPixel XN_CALLBACK_TYPE __ModuleGetDeviceMaxDepth(XnModuleNodeHandle hGenerator) 00851 { 00852 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00853 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00854 return pNode->GetDeviceMaxDepth(); 00855 } 00856 00857 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetFieldOfView(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV) 00858 { 00859 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00860 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00861 pNode->GetFieldOfView(*pFOV); 00862 } 00863 00864 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToFieldOfViewChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00865 { 00866 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00867 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00868 return pNode->RegisterToFieldOfViewChange(handler, pCookie, *phCallback); 00869 } 00870 00871 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromFieldOfViewChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00872 { 00873 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00874 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00875 pNode->UnregisterFromFieldOfViewChange(hCallback); 00876 } 00877 00878 XN_C_API_EXPORT XnDepthPixel* XN_CALLBACK_TYPE __ModuleGetDepthMap(XnModuleNodeHandle hGenerator) 00879 { 00880 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00881 ModuleDepthGenerator* pNode = dynamic_cast<ModuleDepthGenerator*>(pProdNode); 00882 return pNode->GetDepthMap(); 00883 } 00884 00885 XN_C_API_EXPORT XnUInt8* XN_CALLBACK_TYPE __ModuleGetImageMap(XnModuleNodeHandle hGenerator) 00886 { 00887 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00888 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00889 return pNode->GetImageMap(); 00890 } 00891 00892 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsPixelFormatSupported(XnModuleNodeHandle hGenerator, XnPixelFormat Format) 00893 { 00894 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00895 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00896 return pNode->IsPixelFormatSupported(Format); 00897 } 00898 00899 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetPixelFormat(XnModuleNodeHandle hGenerator, XnPixelFormat Format) 00900 { 00901 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00902 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00903 return pNode->SetPixelFormat(Format); 00904 } 00905 00906 XN_C_API_EXPORT XnPixelFormat XN_CALLBACK_TYPE __ModuleGetPixelFormat(XnModuleNodeHandle hGenerator) 00907 { 00908 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00909 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00910 return pNode->GetPixelFormat(); 00911 } 00912 00913 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPixelFormatChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00914 { 00915 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00916 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00917 return pNode->RegisterToPixelFormatChange(handler, pCookie, *phCallback); 00918 } 00919 00920 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromPixelFormatChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00921 { 00922 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00923 ModuleImageGenerator* pNode = dynamic_cast<ModuleImageGenerator*>(pProdNode); 00924 pNode->UnregisterFromPixelFormatChange(hCallback); 00925 } 00926 00927 XN_C_API_EXPORT XnIRPixel* XN_CALLBACK_TYPE __ModuleGetIRMap(XnModuleNodeHandle hGenerator) 00928 { 00929 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00930 ModuleIRGenerator* pNode = dynamic_cast<ModuleIRGenerator*>(pProdNode); 00931 return pNode->GetIRMap(); 00932 } 00933 00934 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleAddGesture(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea) 00935 { 00936 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00937 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00938 return pNode->AddGesture(strGesture, pArea); 00939 } 00940 00941 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRemoveGesture(XnModuleNodeHandle hGenerator, const XnChar* strGesture) 00942 { 00943 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00944 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00945 return pNode->RemoveGesture(strGesture); 00946 } 00947 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetActiveGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* pnGestures) 00948 { 00949 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00950 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00951 return pNode->GetActiveGestures(pstrGestures, *pnGestures); 00952 } 00953 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetAllActiveGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* pnGestures) 00954 { 00955 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00956 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00957 return pNode->GetAllActiveGestures(pstrGestures, nNameLength, *pnGestures); 00958 } 00959 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleEnumerateGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* pnGestures) 00960 { 00961 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00962 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00963 return pNode->EnumerateGestures(pstrGestures, *pnGestures); 00964 } 00965 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleEnumerateAllGestures(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* pnGestures) 00966 { 00967 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00968 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00969 return pNode->EnumerateAllGestures(pstrGestures, nNameLength, *pnGestures); 00970 } 00971 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsGestureAvailable(XnModuleNodeHandle hGenerator, const XnChar* strGesture) 00972 { 00973 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00974 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00975 return pNode->IsGestureAvailable(strGesture); 00976 } 00977 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsGestureProgressSupported(XnModuleNodeHandle hGenerator, const XnChar* strGesture) 00978 { 00979 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00980 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00981 return pNode->IsGestureProgressSupported(strGesture); 00982 } 00983 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterGestureCallbacks(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback) 00984 { 00985 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00986 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00987 return pNode->RegisterGestureCallbacks(RecognizedCB, ProgressCB, pCookie, *phCallback); 00988 } 00989 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterGestureCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 00990 { 00991 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00992 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00993 pNode->UnregisterGestureCallbacks(hCallback); 00994 } 00995 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToGestureChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 00996 { 00997 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 00998 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 00999 return pNode->RegisterToGestureChange(handler, pCookie, *phCallback); 01000 } 01001 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromGestureChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01002 { 01003 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01004 ModuleGestureGenerator* pNode = dynamic_cast<ModuleGestureGenerator*>(pProdNode); 01005 pNode->UnregisterFromGestureChange(hCallback); 01006 } 01007 01008 XN_C_API_EXPORT const XnLabel* XN_CALLBACK_TYPE __ModuleGetLabelMap(XnModuleNodeHandle hGenerator) 01009 { 01010 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01011 ModuleSceneAnalyzer* pNode = dynamic_cast<ModuleSceneAnalyzer*>(pProdNode); 01012 return pNode->GetLabelMap(); 01013 } 01014 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetFloor(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane) 01015 { 01016 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01017 ModuleSceneAnalyzer* pNode = dynamic_cast<ModuleSceneAnalyzer*>(pProdNode); 01018 return pNode->GetFloor(*pPlane); 01019 } 01020 01021 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterHandCallbacks(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback) 01022 { 01023 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01024 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01025 return pNode->RegisterHandCallbacks(CreateCB, UpdateCB, DestroyCB, pCookie, *phCallback); 01026 } 01027 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterHandCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01028 { 01029 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01030 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01031 pNode->UnregisterHandCallbacks(hCallback); 01032 } 01033 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStopTracking(XnModuleNodeHandle hGenerator, XnUserID user) 01034 { 01035 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01036 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01037 return pNode->StopTracking(user); 01038 } 01039 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStopTrackingAll(XnModuleNodeHandle hGenerator) 01040 { 01041 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01042 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01043 return pNode->StopTrackingAll(); 01044 } 01045 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStartTracking(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition) 01046 { 01047 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01048 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01049 return pNode->StartTracking(*pPosition); 01050 } 01051 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetTrackingSmoothing(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor) 01052 { 01053 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01054 ModuleHandsGenerator* pNode = dynamic_cast<ModuleHandsGenerator*>(pProdNode); 01055 return pNode->SetSmoothing(fSmoothingFactor); 01056 } 01057 01058 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsJointAvailable(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint) 01059 { 01060 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01061 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01062 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01063 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01064 return pInterface->IsJointAvailable(eJoint); 01065 } 01066 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsProfileAvailable(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile) 01067 { 01068 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01069 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01070 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01071 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01072 return pInterface->IsProfileAvailable(eProfile); 01073 } 01074 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetSkeletonProfile(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile) 01075 { 01076 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01077 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01078 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01079 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01080 return pInterface->SetSkeletonProfile(eProfile); 01081 } 01082 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetJointActive(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState) 01083 { 01084 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01085 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01086 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01087 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01088 return pInterface->SetJointActive(eJoint, bState); 01089 } 01090 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsJointActive(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint) 01091 { 01092 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01093 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01094 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01095 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01096 return pInterface->IsJointActive(eJoint); 01097 } 01098 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToJointConfigurationChange(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 01099 { 01100 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01101 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01102 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01103 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01104 return pInterface->RegisterToJointConfigurationChange(handler, pCookie, *phCallback); 01105 } 01106 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromJointConfigurationChange(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01107 { 01108 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01109 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01110 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01111 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 01112 pInterface->UnregisterFromJointConfigurationChange(hCallback); 01113 } 01114 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleEnumerateActiveJoints(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints) 01115 { 01116 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01117 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01118 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01119 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01120 return pInterface->EnumerateActiveJoints(pJoints, *pnJoints); 01121 } 01122 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJoint(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint) 01123 { 01124 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01125 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01126 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01127 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01128 return pInterface->GetSkeletonJoint(user, eJoint, *pJoint); 01129 } 01130 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJointPosition(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint) 01131 { 01132 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01133 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01134 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01135 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01136 return pInterface->GetSkeletonJointPosition(user, eJoint, *pJoint); 01137 } 01138 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonJointOrientation(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint) 01139 { 01140 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01141 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01142 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01143 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01144 return pInterface->GetSkeletonJointOrientation(user, eJoint, *pJoint); 01145 } 01146 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) 01147 { 01148 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01149 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01150 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01151 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01152 return pInterface->IsTracking(user); 01153 } 01154 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonCalibrated(XnModuleNodeHandle hGenerator, XnUserID user) 01155 { 01156 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01157 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01158 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01159 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01160 return pInterface->IsCalibrated(user); 01161 } 01162 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsSkeletonCalibrating(XnModuleNodeHandle hGenerator, XnUserID user) 01163 { 01164 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01165 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01166 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01167 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01168 return pInterface->IsCalibrating(user); 01169 } 01170 01171 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRequestSkeletonCalibration(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce) 01172 { 01173 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01174 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01175 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01176 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01177 return pInterface->RequestCalibration(user, bForce); 01178 } 01179 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleAbortSkeletonCalibration(XnModuleNodeHandle hGenerator, XnUserID user) 01180 { 01181 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01182 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01183 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01184 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01185 return pInterface->AbortCalibration(user); 01186 } 01187 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSaveCalibrationData(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot) 01188 { 01189 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01190 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01191 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01192 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01193 return pInterface->SaveCalibrationData(user, nSlot); 01194 } 01195 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleLoadCalibrationData(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot) 01196 { 01197 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01198 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01199 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01200 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01201 return pInterface->LoadCalibrationData(user, nSlot); 01202 } 01203 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleClearCalibrationData(XnModuleNodeHandle hGenerator, XnUInt32 nSlot) 01204 { 01205 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01206 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01207 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01208 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01209 return pInterface->ClearCalibrationData(nSlot); 01210 } 01211 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleIsCalibrationData(XnModuleNodeHandle hGenerator, XnUInt32 nSlot) 01212 { 01213 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01214 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01215 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01216 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01217 return pInterface->IsCalibrationData(nSlot); 01218 } 01219 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStartSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) 01220 { 01221 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01222 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01223 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01224 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01225 return pInterface->StartTracking(user); 01226 } 01227 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStopSkeletonTracking(XnModuleNodeHandle hGenerator, XnUserID user) 01228 { 01229 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01230 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01231 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01232 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01233 return pInterface->StopTracking(user); 01234 } 01235 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleResetSkeleton(XnModuleNodeHandle hGenerator, XnUserID user) 01236 { 01237 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01238 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01239 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01240 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01241 return pInterface->Reset(user); 01242 } 01243 XN_C_API_EXPORT XnBool XN_CALLBACK_TYPE __ModuleNeedPoseForSkeletonCalibration(XnModuleNodeHandle hGenerator) 01244 { 01245 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01246 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01247 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01248 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, FALSE); 01249 return pInterface->NeedPoseForCalibration(); 01250 } 01251 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSkeletonCalibrationPose(XnModuleNodeHandle hGenerator, XnChar* strPose) 01252 { 01253 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01254 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01255 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01256 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01257 return pInterface->GetCalibrationPose(strPose); 01258 } 01259 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetSkeletonSmoothing(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor) 01260 { 01261 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01262 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01263 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01264 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01265 return pInterface->SetSmoothing(fSmoothingFactor); 01266 } 01267 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterCalibrationCallbacks(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback) 01268 { 01269 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01270 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01271 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01272 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01273 return pInterface->RegisterCalibrationCallbacks(CalibrationStartCB, CalibrationEndCB, pCookie, *phCallback); 01274 } 01275 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterCalibrationCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01276 { 01277 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01278 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01279 ModuleSkeletonInterface* pInterface = pNode->GetSkeletonInterface(); 01280 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 01281 pInterface->UnregisterCalibrationCallbacks(hCallback); 01282 } 01284 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetNumberOfPoses(XnModuleNodeHandle hGenerator) 01285 { 01286 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01287 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01288 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01289 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface, 0); 01290 return pInterface->GetNumberOfPoses(); 01291 } 01292 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetAvailablePoses(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses) 01293 { 01294 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01295 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01296 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01297 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01298 return pInterface->GetAvailablePoses(pstrPoses, *pnPoses); 01299 } 01300 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetAllAvailablePoses(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses) 01301 { 01302 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01303 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01304 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01305 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01306 return pInterface->GetAllAvailablePoses(pstrPoses, nNameLength, *pnPoses); 01307 } 01308 01309 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStartPoseDetection(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user) 01310 { 01311 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01312 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01313 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01314 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01315 return pInterface->StartPoseDetection(strPose, user); 01316 } 01317 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleStopPoseDetection(XnModuleNodeHandle hGenerator, XnUserID user) 01318 { 01319 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01320 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01321 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01322 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01323 return pInterface->StopPoseDetection(user); 01324 } 01325 01326 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToPoseCallbacks(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback PoseDetectionStartCB, XnModulePoseDetectionCallback PoseDetectionEndCB, void* pCookie, XnCallbackHandle* phCallback) 01327 { 01328 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01329 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01330 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01331 _XN_VALIDATE_CAPABILITY_INTERFACE(pInterface); 01332 return pInterface->RegisterToPoseDetectionCallbacks(PoseDetectionStartCB, PoseDetectionEndCB, pCookie, *phCallback); 01333 } 01334 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromPoseCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01335 { 01336 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01337 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01338 ModulePoseDetectionInteface* pInterface = pNode->GetPoseDetectionInteface(); 01339 _XN_VALIDATE_CAPABILITY_INTERFACE_RET(pInterface,); 01340 pInterface->UnregisterFromPoseDetectionCallbacks(hCallback); 01341 } 01342 01343 XN_C_API_EXPORT XnUInt16 XN_CALLBACK_TYPE __ModuleGetNumberOfUsers(XnModuleNodeHandle hGenerator) 01344 { 01345 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01346 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01347 return pNode->GetNumberOfUsers(); 01348 } 01349 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetUsers(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers) 01350 { 01351 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01352 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01353 return pNode->GetUsers(pUsers, *pnUsers); 01354 } 01355 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetUserCoM(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM) 01356 { 01357 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01358 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01359 return pNode->GetCoM(user, *pCoM); 01360 } 01361 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetUserPixels(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene) 01362 { 01363 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01364 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01365 return pNode->GetUserPixels(user, pScene); 01366 } 01367 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterUserCallbacks(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback) 01368 { 01369 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01370 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01371 return pNode->RegisterUserCallbacks(NewUserCB, LostUserCB, pCookie, *phCallback); 01372 } 01373 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterUserCallbacks(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01374 { 01375 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01376 ModuleUserGenerator* pNode = dynamic_cast<ModuleUserGenerator*>(pProdNode); 01377 pNode->UnregisterUserCallbacks(hCallback); 01378 } 01379 01380 XN_C_API_EXPORT XnUChar* XN_CALLBACK_TYPE __ModuleGetAudioBuffer(XnModuleNodeHandle hGenerator) 01381 { 01382 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01383 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01384 return pNode->GetAudioBuffer(); 01385 } 01386 XN_C_API_EXPORT XnUInt32 XN_CALLBACK_TYPE __ModuleGetSupportedWaveOutputModesCount(XnModuleNodeHandle hGenerator) 01387 { 01388 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01389 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01390 return pNode->GetSupportedWaveOutputModesCount(); 01391 } 01392 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetSupportedWaveOutputModes(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount) 01393 { 01394 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01395 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01396 return pNode->GetSupportedWaveOutputModes(aSupportedModes, *pnCount); 01397 } 01398 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleSetWaveOutputMode(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* pOutputMode) 01399 { 01400 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01401 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01402 return pNode->SetWaveOutputMode(*pOutputMode); 01403 } 01404 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleGetWaveOutputMode(XnModuleNodeHandle hGenerator, XnWaveOutputMode* pOutputMode) 01405 { 01406 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01407 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01408 return pNode->GetWaveOutputMode(*pOutputMode); 01409 } 01410 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleRegisterToWaveOutputModeChanges(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback) 01411 { 01412 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01413 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01414 return pNode->RegisterToWaveOutputModeChanges(handler, pCookie, *phCallback); 01415 } 01416 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleUnregisterFromWaveOutputModeChanges(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback) 01417 { 01418 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hGenerator; 01419 ModuleAudioGenerator* pNode = dynamic_cast<ModuleAudioGenerator*>(pProdNode); 01420 pNode->UnregisterFromWaveOutputModeChanges(hCallback); 01421 } 01422 01423 XN_C_API_EXPORT XnCodecID XN_CALLBACK_TYPE __ModuleGetCodecID(XnModuleNodeHandle hCodec) 01424 { 01425 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; 01426 ModuleCodec* pCodec = dynamic_cast<ModuleCodec*>(pProdNode); 01427 return pCodec->GetCodecID(); 01428 } 01429 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleCodecInit(XnModuleNodeHandle hCodec, XnNodeHandle hNode) 01430 { 01431 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; 01432 ModuleCodec* pCodec = dynamic_cast<ModuleCodec*>(pProdNode); 01433 return pCodec->Init(ProductionNode(hNode)); 01434 } 01435 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleCompressData(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten) 01436 { 01437 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; 01438 ModuleCodec* pCodec = dynamic_cast<ModuleCodec*>(pProdNode); 01439 return pCodec->CompressData(pSrc, nSrcSize, pDst, nDstSize, pnBytesWritten); 01440 } 01441 XN_C_API_EXPORT XnStatus XN_CALLBACK_TYPE __ModuleDecompressData(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten) 01442 { 01443 ModuleProductionNode* pProdNode = (ModuleProductionNode*)hCodec; 01444 ModuleCodec* pCodec = dynamic_cast<ModuleCodec*>(pProdNode); 01445 return pCodec->DecompressData(pSrc, nSrcSize, pDst, nDstSize, pnBytesWritten); 01446 } 01447 01448 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetExtendedSerializationInterface(XnModuleExtendedSerializationInterface* pInterface) 01449 { 01450 pInterface->InitNotifications = __ModuleInitNotifications; 01451 pInterface->StopNotifications = __ModuleStopNotifications; 01452 } 01453 01454 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetLockAwareInterface(XnModuleLockAwareInterface* pInterface) 01455 { 01456 pInterface->SetLockState = __ModuleSetLockState; 01457 pInterface->GetLockState = __ModuleGetLockState; 01458 pInterface->RegisterToLockChange = __ModuleRegisterToLockChange; 01459 pInterface->UnregisterFromLockChange = __ModuleUnregisterFromLockChange; 01460 } 01461 01462 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetErrorStateInterface(XnModuleErrorStateInterface* pInterface) 01463 { 01464 pInterface->GetErrorState = __ModuleGetErrorState; 01465 pInterface->RegisterToErrorStateChange = __ModuleRegisterToErrorStateChange; 01466 pInterface->UnregisterFromErrorStateChange = __ModuleUnregisterFromErrorStateChange; 01467 } 01468 01469 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetProductionNodeInterface(XnModuleProductionNodeInterface* pInterface) 01470 { 01471 pInterface->IsCapabilitySupported = __ModuleIsCapabilitySupported; 01472 pInterface->SetIntProperty = __ModuleSetIntProperty; 01473 pInterface->SetRealProperty = __ModuleSetRealProperty; 01474 pInterface->SetStringProperty = __ModuleSetStringProperty; 01475 pInterface->SetGeneralProperty = __ModuleSetGeneralProperty; 01476 pInterface->GetIntProperty = __ModuleGetIntProperty; 01477 pInterface->GetRealProperty = __ModuleGetRealProperty; 01478 pInterface->GetStringProperty = __ModuleGetStringProperty; 01479 pInterface->GetGeneralProperty = __ModuleGetGeneralProperty; 01480 01481 __ModuleGetExtendedSerializationInterface(pInterface->pExtendedSerializationInterface); 01482 __ModuleGetLockAwareInterface(pInterface->pLockAwareInterface); 01483 __ModuleGetErrorStateInterface(pInterface->pErrorStateInterface); 01484 } 01485 01486 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetDeviceInterface(XnModuleDeviceInterface* pInterface) 01487 { 01488 __ModuleGetProductionNodeInterface(pInterface->pProductionNode); 01489 } 01490 01491 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetMirrorInterface(XnModuleMirrorInterface* pInterface) 01492 { 01493 pInterface->SetMirror = __ModuleSetMirror; 01494 pInterface->IsMirrored = __ModuleIsMirrored; 01495 pInterface->RegisterToMirrorChange = __ModuleRegisterToMirrorChange; 01496 pInterface->UnregisterFromMirrorChange = __ModuleUnregisterFromMirrorChange; 01497 } 01498 01499 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetAlternativeViewPointInterface(XnModuleAlternativeViewPointInterface* pInterface) 01500 { 01501 pInterface->IsViewPointSupported = __ModuleIsViewPointSupported; 01502 pInterface->SetViewPoint = __ModuleSetViewPoint; 01503 pInterface->ResetViewPoint = __ModuleResetViewPoint; 01504 pInterface->IsViewPointAs = __ModuleIsViewPointAs; 01505 pInterface->RegisterToViewPointChange = __ModuleRegisterToViewPointChange; 01506 pInterface->UnregisterFromViewPointChange = __ModuleUnregisterFromViewPointChange; 01507 } 01508 01509 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetFrameSyncInterface(XnModuleFrameSyncInterface* pInterface) 01510 { 01511 pInterface->CanFrameSyncWith = __ModuleCanFrameSyncWith; 01512 pInterface->FrameSyncWith = __ModuleFrameSyncWith; 01513 pInterface->StopFrameSyncWith = __ModuleStopFrameSyncWith; 01514 pInterface->IsFrameSyncedWith = __ModuleIsFrameSyncedWith; 01515 pInterface->RegisterToFrameSyncChange = __ModuleRegisterToFrameSyncChange; 01516 pInterface->UnregisterFromFrameSyncChange = __ModuleUnregisterFromFrameSyncChange; 01517 } 01518 01519 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetGeneratorInterface(XnModuleGeneratorInterface* pInterface) 01520 { 01521 __ModuleGetProductionNodeInterface(pInterface->pProductionNodeInterface); 01522 pInterface->StartGenerating = __ModuleStartGenerating; 01523 pInterface->IsGenerating = __ModuleIsGenerating; 01524 pInterface->StopGenerating = __ModuleStopGenerating; 01525 pInterface->RegisterToGenerationRunningChange = __ModuleRegisterToGenerationRunningChange; 01526 pInterface->UnregisterFromGenerationRunningChange = __ModuleUnregisterFromGenerationRunningChange; 01527 pInterface->RegisterToNewDataAvailable = __ModuleRegisterToNewDataAvailable; 01528 pInterface->UnregisterFromNewDataAvailable = __ModuleUnregisterFromNewDataAvailable; 01529 pInterface->IsNewDataAvailable = __ModuleIsNewDataAvailable; 01530 pInterface->UpdateData = __ModuleUpdateData; 01531 pInterface->GetDataSize = __ModuleGetDataSize; 01532 pInterface->GetTimestamp = __ModuleGetTimestamp; 01533 pInterface->GetFrameID = __ModuleGetFrameID; 01534 __ModuleGetMirrorInterface(pInterface->pMirrorInterface); 01535 __ModuleGetAlternativeViewPointInterface(pInterface->pAlternativeViewPointInterface); 01536 __ModuleGetFrameSyncInterface(pInterface->pFrameSyncInterface); 01537 } 01538 01539 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetNodeNotifications(XnNodeNotifications *pInterface) 01540 { 01541 pInterface->OnNodeAdded = __ModuleOnNodeAdded; 01542 pInterface->OnNodeRemoved = __ModuleOnNodeRemoved; 01543 pInterface->OnNodeIntPropChanged = __ModuleOnNodeIntPropChanged; 01544 pInterface->OnNodeRealPropChanged = __ModuleOnNodeRealPropChanged; 01545 pInterface->OnNodeStringPropChanged = __ModuleOnNodeStringPropChanged; 01546 pInterface->OnNodeGeneralPropChanged = __ModuleOnNodeGeneralPropChanged; 01547 pInterface->OnNodeStateReady = __ModuleOnNodeStateReady; 01548 pInterface->OnNodeNewData = __ModuleOnNodeNewData; 01549 } 01550 01551 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetRecorderInterface(XnModuleRecorderInterface* pInterface) 01552 { 01553 pInterface->SetOutputStream = __ModuleSetOutputStream; 01554 __ModuleGetProductionNodeInterface(pInterface->pProductionNode); 01555 __ModuleGetNodeNotifications(pInterface->pNodeNotifications); 01556 } 01557 01558 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetPlayerInterface(XnModulePlayerInterface* pInterface) 01559 { 01560 __ModuleGetProductionNodeInterface(pInterface->pProductionNode); 01561 pInterface->SetInputStream = __ModuleSetInputStream; 01562 pInterface->ReadNext = __ModuleReadNext; 01563 pInterface->SetNodeNotifications = __ModuleSetNodeNotifications; 01564 pInterface->SetRepeat = __ModuleSetRepeat; 01565 pInterface->SeekToTimeStamp = __ModuleSeekToTimeStamp; 01566 pInterface->SeekToFrame = __ModuleSeekToFrame; 01567 pInterface->TellTimestamp = __ModuleTellTimestamp; 01568 pInterface->TellFrame = __ModuleTellFrame; 01569 pInterface->GetNumFrames = __ModuleGetNumFrames; 01570 pInterface->GetSupportedFormat = __ModuleGetSupportedFormat; 01571 pInterface->IsEOF = __ModuleIsEOF; 01572 pInterface->RegisterToEndOfFileReached = __ModuleRegisterToEndOfFileReached; 01573 pInterface->UnregisterFromEndOfFileReached = __ModuleUnregisterFromEndOfFileReached; 01574 } 01575 01576 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetCroppingInterface(XnModuleCroppingInterface* pInterface) 01577 { 01578 pInterface->SetCropping = __ModuleSetCropping; 01579 pInterface->GetCropping = __ModuleGetCropping; 01580 pInterface->RegisterToCroppingChange = __ModuleRegisterToCroppingChange; 01581 pInterface->UnregisterFromCroppingChange = __ModuleUnregisterFromCroppingChange; 01582 } 01583 01584 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetMapGeneratorInterface(XnModuleMapGeneratorInterface* pInterface) 01585 { 01586 __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); 01587 pInterface->GetSupportedMapOutputModesCount = __ModuleGetSupportedMapOutputModesCount; 01588 pInterface->GetSupportedMapOutputModes = __ModuleGetSupportedMapOutputModes; 01589 pInterface->SetMapOutputMode = __ModuleSetMapOutputMode; 01590 pInterface->GetMapOutputMode = __ModuleGetMapOutputMode; 01591 pInterface->RegisterToMapOutputModeChange = __ModuleRegisterToMapOutputModeChange; 01592 pInterface->UnregisterFromMapOutputModeChange = __ModuleUnregisterFromMapOutputModeChange; 01593 __ModuleGetCroppingInterface(pInterface->pCroppingInterface); 01594 } 01595 01596 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetUserPositionInterface(XnModuleUserPositionCapabilityInterface* pInterface) 01597 { 01598 pInterface->GetSupportedUserPositionsCount = __ModuleGetSupportedUserPositionsCount; 01599 pInterface->SetUserPosition = __ModuleSetUserPosition; 01600 pInterface->GetUserPosition = __ModuleGetUserPosition; 01601 pInterface->RegisterToUserPositionChange = __ModuleRegisterToUserPositionChange; 01602 pInterface->UnregisterFromUserPositionChange = __ModuleUnregisterFromUserPositionChange; 01603 } 01604 01605 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetDepthGeneratorInterface(XnModuleDepthGeneratorInterface* pInterface) 01606 { 01607 __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); 01608 pInterface->GetDeviceMaxDepth = __ModuleGetDeviceMaxDepth; 01609 pInterface->GetFieldOfView = __ModuleGetFieldOfView; 01610 pInterface->RegisterToFieldOfViewChange = __ModuleRegisterToFieldOfViewChange; 01611 pInterface->UnregisterFromFieldOfViewChange = __ModuleUnregisterFromFieldOfViewChange; 01612 pInterface->GetDepthMap = __ModuleGetDepthMap; 01613 __ModuleGetUserPositionInterface(pInterface->pUserPositionInterface); 01614 } 01615 01616 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetImageGeneratorInterface(XnModuleImageGeneratorInterface* pInterface) 01617 { 01618 __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); 01619 pInterface->GetImageMap = __ModuleGetImageMap; 01620 pInterface->IsPixelFormatSupported = __ModuleIsPixelFormatSupported; 01621 pInterface->SetPixelFormat = __ModuleSetPixelFormat; 01622 pInterface->GetPixelFormat = __ModuleGetPixelFormat; 01623 pInterface->RegisterToPixelFormatChange = __ModuleRegisterToPixelFormatChange; 01624 pInterface->UnregisterFromPixelFormatChange = __ModuleUnregisterFromPixelFormatChange; 01625 } 01626 01627 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetIRGeneratorInterface(XnModuleIRGeneratorInterface* pInterface) 01628 { 01629 __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); 01630 pInterface->GetIRMap = __ModuleGetIRMap; 01631 } 01632 01633 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetGestureGeneratorInterface(XnModuleGestureGeneratorInterface* pInterface) 01634 { 01635 __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); 01636 pInterface->AddGesture = __ModuleAddGesture; 01637 pInterface->RemoveGesture = __ModuleRemoveGesture; 01638 pInterface->GetActiveGestures = __ModuleGetActiveGestures; 01639 pInterface->GetAllActiveGestures = __ModuleGetAllActiveGestures; 01640 pInterface->EnumerateGestures = __ModuleEnumerateGestures; 01641 pInterface->EnumerateAllGestures = __ModuleEnumerateAllGestures; 01642 pInterface->IsGestureAvailable = __ModuleIsGestureAvailable; 01643 pInterface->IsGestureProgressSupported = __ModuleIsGestureProgressSupported; 01644 pInterface->RegisterGestureCallbacks = __ModuleRegisterGestureCallbacks; 01645 pInterface->UnregisterGestureCallbacks = __ModuleUnregisterGestureCallbacks; 01646 pInterface->RegisterToGestureChange = __ModuleRegisterToGestureChange; 01647 pInterface->UnregisterFromGestureChange = __ModuleUnregisterFromGestureChange; 01648 } 01649 01650 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetSceneAnalyzerInterface(XnModuleSceneAnalyzerInterface* pInterface) 01651 { 01652 __ModuleGetMapGeneratorInterface(pInterface->pMapInterface); 01653 pInterface->GetLabelMap = __ModuleGetLabelMap; 01654 pInterface->GetFloor = __ModuleGetFloor; 01655 } 01656 01657 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetSkeletonInterface(XnModuleSkeletonCapabilityInterface* pInterface) 01658 { 01659 pInterface->IsJointAvailable = __ModuleIsJointAvailable; 01660 pInterface->IsProfileAvailable = __ModuleIsProfileAvailable; 01661 pInterface->SetSkeletonProfile = __ModuleSetSkeletonProfile; 01662 pInterface->SetJointActive = __ModuleSetJointActive; 01663 pInterface->IsJointActive = __ModuleIsJointActive; 01664 pInterface->RegisterToJointConfigurationChange = __ModuleRegisterToJointConfigurationChange; 01665 pInterface->UnregisterFromJointConfigurationChange = __ModuleUnregisterFromJointConfigurationChange; 01666 pInterface->EnumerateActiveJoints = __ModuleEnumerateActiveJoints; 01667 pInterface->GetSkeletonJoint = __ModuleGetSkeletonJoint; 01668 pInterface->GetSkeletonJointPosition = __ModuleGetSkeletonJointPosition; 01669 pInterface->GetSkeletonJointOrientation = __ModuleGetSkeletonJointOrientation; 01670 pInterface->IsTracking = __ModuleIsSkeletonTracking; 01671 pInterface->IsCalibrated = __ModuleIsSkeletonCalibrated; 01672 pInterface->IsCalibrating = __ModuleIsSkeletonCalibrating; 01673 pInterface->RequestCalibration = __ModuleRequestSkeletonCalibration; 01674 pInterface->AbortCalibration = __ModuleAbortSkeletonCalibration; 01675 pInterface->SaveCalibrationData = __ModuleSaveCalibrationData; 01676 pInterface->LoadCalibrationData = __ModuleLoadCalibrationData; 01677 pInterface->ClearCalibrationData = __ModuleClearCalibrationData; 01678 pInterface->IsCalibrationData = __ModuleIsCalibrationData; 01679 pInterface->StartTracking = __ModuleStartSkeletonTracking; 01680 pInterface->StopTracking = __ModuleStopSkeletonTracking; 01681 pInterface->Reset = __ModuleResetSkeleton; 01682 pInterface->NeedPoseForCalibration = __ModuleNeedPoseForSkeletonCalibration; 01683 pInterface->GetCalibrationPose = __ModuleGetSkeletonCalibrationPose; 01684 pInterface->SetSmoothing = __ModuleSetSkeletonSmoothing; 01685 pInterface->RegisterCalibrationCallbacks = __ModuleRegisterCalibrationCallbacks; 01686 pInterface->UnregisterCalibrationCallbacks = __ModuleUnregisterCalibrationCallbacks; 01687 } 01688 01689 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetPoseDetectionInteface(XnModulePoseDetectionCapabilityInterface* pInteface) 01690 { 01691 pInteface->GetNumberOfPoses = __ModuleGetNumberOfPoses; 01692 pInteface->GetAvailablePoses = __ModuleGetAvailablePoses; 01693 pInteface->GetAllAvailablePoses = __ModuleGetAllAvailablePoses; 01694 pInteface->StartPoseDetection = __ModuleStartPoseDetection; 01695 pInteface->StopPoseDetection = __ModuleStopPoseDetection; 01696 pInteface->RegisterToPoseCallbacks = __ModuleRegisterToPoseCallbacks; 01697 pInteface->UnregisterFromPoseCallbacks = __ModuleUnregisterFromPoseCallbacks; 01698 } 01699 01700 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetUserGeneratorInterface(XnModuleUserGeneratorInterface* pInterface) 01701 { 01702 __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); 01703 01704 pInterface->GetNumberOfUsers = __ModuleGetNumberOfUsers; 01705 pInterface->GetUsers = __ModuleGetUsers; 01706 pInterface->GetCoM = __ModuleGetUserCoM; 01707 pInterface->GetUserPixels = __ModuleGetUserPixels; 01708 pInterface->RegisterUserCallbacks = __ModuleRegisterUserCallbacks; 01709 pInterface->UnregisterUserCallbacks = __ModuleUnregisterUserCallbacks; 01710 01711 __ModuleGetSkeletonInterface(pInterface->pSkeletonInterface); 01712 __ModuleGetPoseDetectionInteface(pInterface->pPoseDetectionInteface); 01713 } 01714 01715 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetHandsGeneratorInterface(XnModuleHandsGeneratorInterface* pInterface) 01716 { 01717 __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); 01718 01719 pInterface->StartTracking = __ModuleStartTracking; 01720 pInterface->StopTracking = __ModuleStopTracking; 01721 pInterface->StopTrackingAll = __ModuleStopTrackingAll; 01722 pInterface->RegisterHandCallbacks = __ModuleRegisterHandCallbacks; 01723 pInterface->UnregisterHandCallbacks = __ModuleUnregisterHandCallbacks; 01724 pInterface->SetSmoothing = __ModuleSetTrackingSmoothing; 01725 } 01726 01727 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetAudioGeneratorInterface(XnModuleAudioGeneratorInterface* pInterface) 01728 { 01729 __ModuleGetGeneratorInterface(pInterface->pGeneratorInterface); 01730 01731 pInterface->GetAudioBuffer = __ModuleGetAudioBuffer; 01732 pInterface->GetSupportedWaveOutputModesCount = __ModuleGetSupportedWaveOutputModesCount; 01733 pInterface->GetSupportedWaveOutputModes = __ModuleGetSupportedWaveOutputModes; 01734 pInterface->SetWaveOutputMode = __ModuleSetWaveOutputMode; 01735 pInterface->GetWaveOutputMode = __ModuleGetWaveOutputMode; 01736 pInterface->RegisterToWaveOutputModeChanges = __ModuleRegisterToWaveOutputModeChanges; 01737 pInterface->UnregisterFromWaveOutputModeChanges = __ModuleUnregisterFromWaveOutputModeChanges; 01738 } 01739 01740 XN_C_API_EXPORT void XN_CALLBACK_TYPE __ModuleGetCodecInterface(XnModuleCodecInterface* pInterface) 01741 { 01742 __ModuleGetProductionNodeInterface(pInterface->pProductionNode); 01743 01744 pInterface->GetCodecID = __ModuleGetCodecID; 01745 pInterface->Init = __ModuleCodecInit; 01746 pInterface->CompressData = __ModuleCompressData; 01747 pInterface->DecompressData = __ModuleDecompressData; 01748 } 01749 01750 #endif // __XN_MODULE_CPP_REGISTRATION_H__