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


nao_openni
Author(s): Bener SUAY
autogenerated on Mon Jan 6 2014 11:27:51