![]() |
OpenNI 1.5.7
|
00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.x Alpha * 00004 * Copyright (C) 2012 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * Licensed under the Apache License, Version 2.0 (the "License"); * 00009 * you may not use this file except in compliance with the License. * 00010 * You may obtain a copy of the License at * 00011 * * 00012 * http://www.apache.org/licenses/LICENSE-2.0 * 00013 * * 00014 * Unless required by applicable law or agreed to in writing, software * 00015 * distributed under the License is distributed on an "AS IS" BASIS, * 00016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 00017 * See the License for the specific language governing permissions and * 00018 * limitations under the License. * 00019 * * 00020 *****************************************************************************/ 00021 #ifndef __XN_MODULE_INTERFACE_H__ 00022 #define __XN_MODULE_INTERFACE_H__ 00023 00024 //--------------------------------------------------------------------------- 00025 // Includes 00026 //--------------------------------------------------------------------------- 00027 #include <XnTypes.h> 00028 00029 //--------------------------------------------------------------------------- 00030 // Defines 00031 //--------------------------------------------------------------------------- 00032 #define XN_MODULE_LOAD xnModuleLoad 00033 #define XN_MODULE_UNLOAD xnModuleUnload 00034 #define XN_MODULE_GET_EXPORTED_NODES_COUNT xnModuleGetExportedNodesCount 00035 #define XN_MODULE_GET_EXPORTED_NODES_ENTRY_POINTS xnModuleGetExportedNodesEntryPoints 00036 #define XN_MODULE_GET_OPEN_NI_VERSION xnModuleGetOpenNIVersion 00037 00038 //--------------------------------------------------------------------------- 00039 // Forward Declarations 00040 //--------------------------------------------------------------------------- 00041 struct XnModuleProductionNodeInterface; 00042 struct XnModuleDeviceInterface; 00043 struct XnModuleDepthGeneratorInterface; 00044 struct XnModuleImageGeneratorInterface; 00045 struct XnModuleIRGeneratorInterface; 00046 struct XnModuleGestureGeneratorInterface; 00047 struct XnModuleUserGeneratorInterface; 00048 struct XnModuleHandsGeneratorInterface; 00049 struct XnModuleSceneAnalyzerInterface; 00050 struct XnModuleAudioGeneratorInterface; 00051 struct XnModuleRecorderInterface; 00052 struct XnModulePlayerInterface; 00053 struct XnModuleGeneratorInterface; 00054 struct XnModuleCodecInterface; 00055 struct XnModuleScriptNodeInterface; 00056 struct XnModuleMapGeneratorInterface; 00057 00058 //--------------------------------------------------------------------------- 00059 // Types 00060 //--------------------------------------------------------------------------- 00061 00062 typedef void (XN_CALLBACK_TYPE* XnModuleGetExportedInterfacePtr)(XnModuleExportedProductionNodeInterface* pInterface); 00063 typedef XnStatus (XN_C_DECL* XnModuleLoadPtr)(); 00064 typedef void (XN_C_DECL* XnModuleUnloadPtr)(); 00065 typedef XnUInt32 (XN_C_DECL* XnModuleGetExportedNodesCountPtr)(); 00066 typedef XnStatus (XN_C_DECL* XnModuleGetExportedNodesEntryPointsPtr)(XnModuleGetExportedInterfacePtr* aEntryPoints, XnUInt32 nCount); 00067 typedef void (XN_C_DECL* XnModuleGetOpenNIVersionPtr)(XnVersion* pVersion); 00068 00069 typedef struct XnOpenNIModuleInterface 00070 { 00071 XnModuleLoadPtr pLoadFunc; 00072 XnModuleUnloadPtr pUnloadFunc; 00073 XnModuleGetExportedNodesCountPtr pGetCountFunc; 00074 XnModuleGetExportedNodesEntryPointsPtr pGetEntryPointsFunc; 00075 XnModuleGetOpenNIVersionPtr pGetVersionFunc; 00076 } XnOpenNIModuleInterface; 00077 00079 typedef void (XN_CALLBACK_TYPE* XnModuleStateChangedHandler)(void* pCookie); 00080 00081 // User 00082 typedef void (XN_CALLBACK_TYPE* XnModuleUserHandler)(XnUserID user, void* pCookie); 00083 00084 // Hand touching FOV edge 00085 typedef void (XN_CALLBACK_TYPE* XnModuleHandTouchingFOVEdge)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie); 00086 00087 // UI 00088 typedef void (XN_CALLBACK_TYPE* XnModuleHandCreate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); 00089 typedef void (XN_CALLBACK_TYPE* XnModuleHandUpdate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); 00090 typedef void (XN_CALLBACK_TYPE* XnModuleHandDestroy)(XnUserID user, XnFloat fTime, void* pCookie); 00091 00092 // Gesture Module 00093 typedef void (XN_CALLBACK_TYPE* XnModuleGestureRecognized)(const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie); 00094 typedef void (XN_CALLBACK_TYPE* XnModuleGestureProgress)(const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie); 00095 typedef void (XN_CALLBACK_TYPE* XnModuleGestureIntermediateStageCompleted)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); 00096 typedef void (XN_CALLBACK_TYPE* XnModuleGestureReadyForNextIntermediateStage)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); 00097 00098 // Skeleton 00099 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationStart)(XnUserID user, void* pCookie); 00100 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationEnd)(XnUserID user, XnBool bSuccess, void* pCookie); 00101 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationInProgress)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); 00102 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationComplete)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); 00103 00104 // Pose Detection 00105 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionCallback)(const XnChar* strPose, XnUserID user, void* pCookie); 00106 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionInProgressCallback)(const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseError, void* pCookie); 00107 00108 typedef struct XnModuleExportedProductionNodeInterface 00109 { 00115 void (XN_CALLBACK_TYPE* GetDescription) 00116 (XnProductionNodeDescription* pDescription); 00117 00125 XnStatus (XN_CALLBACK_TYPE* EnumerateProductionTrees) 00126 (XnContext* pContext, 00127 XnNodeInfoList* pNodesList, 00128 XnEnumerationErrors* pErrors); 00129 00140 XnStatus (XN_CALLBACK_TYPE* Create) 00141 (XnContext* pContext, 00142 const XnChar* strInstanceName, 00143 const XnChar* strCreationInfo, 00144 XnNodeInfoList* pNeededNodes, 00145 const XnChar* strConfigurationDir, 00146 XnModuleNodeHandle* phInstance); 00147 00153 void (XN_CALLBACK_TYPE* Destroy) 00154 (XnModuleNodeHandle hInstance); 00155 00163 union 00164 { 00165 void (XN_CALLBACK_TYPE* ProductionNode)(struct XnModuleProductionNodeInterface* pInterface); 00166 void (XN_CALLBACK_TYPE* Device)(struct XnModuleDeviceInterface* pInterface); 00167 void (XN_CALLBACK_TYPE* Generator)(struct XnModuleGeneratorInterface* pInterface); 00168 void (XN_CALLBACK_TYPE* MapGenerator)(struct XnModuleMapGeneratorInterface* pInterface); 00169 void (XN_CALLBACK_TYPE* Depth)(struct XnModuleDepthGeneratorInterface* pInterface); 00170 void (XN_CALLBACK_TYPE* Image)(struct XnModuleImageGeneratorInterface* pInterface); 00171 void (XN_CALLBACK_TYPE* IR)(struct XnModuleIRGeneratorInterface* pInterface); 00172 void (XN_CALLBACK_TYPE* User)(struct XnModuleUserGeneratorInterface* pInterface); 00173 void (XN_CALLBACK_TYPE* Hands)(struct XnModuleHandsGeneratorInterface* pInterace); 00174 void (XN_CALLBACK_TYPE* Gesture)(struct XnModuleGestureGeneratorInterface* pInterface); 00175 void (XN_CALLBACK_TYPE* Scene)(struct XnModuleSceneAnalyzerInterface* pInterface); 00176 void (XN_CALLBACK_TYPE* Audio)(struct XnModuleAudioGeneratorInterface* pInterface); 00177 void (XN_CALLBACK_TYPE* Recorder)(struct XnModuleRecorderInterface* pInterface); 00178 void (XN_CALLBACK_TYPE* Player)(struct XnModulePlayerInterface* pInterface); 00179 void (XN_CALLBACK_TYPE* Codec)(struct XnModuleCodecInterface* pInterface); 00180 void (XN_CALLBACK_TYPE* Script)(struct XnModuleScriptNodeInterface* pInterface); 00181 00182 void (XN_CALLBACK_TYPE* General)(void* pInterface); 00183 } GetInterface; 00184 00185 } XnModuleExportedProductionNodeInterface; 00186 00187 typedef struct XnModuleExtendedSerializationInterface 00188 { 00189 XnStatus (XN_CALLBACK_TYPE* InitNotifications)(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie); 00190 void (XN_CALLBACK_TYPE* StopNotifications)(XnModuleNodeHandle hInstance); 00191 00192 } XnModuleExtendedSerializationInterface; 00193 00194 typedef struct XnModuleLockAwareInterface 00195 { 00202 XnStatus (XN_CALLBACK_TYPE* SetLockState)(XnModuleNodeHandle hInstance, XnBool bLocked); 00203 00209 XnBool (XN_CALLBACK_TYPE* GetLockState)(XnModuleNodeHandle hInstance); 00210 00219 XnStatus (XN_CALLBACK_TYPE* RegisterToLockChange) 00220 (XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, 00221 void* pCookie, XnCallbackHandle* phCallback); 00222 00229 void (XN_CALLBACK_TYPE* UnregisterFromLockChange) 00230 (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback); 00231 00232 } XnModuleLockAwareInterface; 00233 00234 typedef struct XnModuleErrorStateInterface 00235 { 00241 XnStatus (XN_CALLBACK_TYPE* GetErrorState)(XnModuleNodeHandle hInstance); 00242 00251 XnStatus (XN_CALLBACK_TYPE* RegisterToErrorStateChange) 00252 (XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, 00253 void* pCookie, XnCallbackHandle* phCallback); 00254 00261 void (XN_CALLBACK_TYPE* UnregisterFromErrorStateChange) 00262 (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback); 00263 00264 } XnModuleErrorStateInterface; 00265 00266 typedef struct XnModuleGeneralIntInterface 00267 { 00279 XnStatus (XN_CALLBACK_TYPE* GetRange)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported); 00280 00288 XnStatus (XN_CALLBACK_TYPE* Get)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnValue); 00289 00297 XnStatus (XN_CALLBACK_TYPE* Set)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32 nValue); 00298 00308 XnStatus (XN_CALLBACK_TYPE* RegisterToValueChange) 00309 (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnModuleStateChangedHandler handler, 00310 void* pCookie, XnCallbackHandle* phCallback); 00311 00319 void (XN_CALLBACK_TYPE* UnregisterFromValueChange) 00320 (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnCallbackHandle hCallback); 00321 00322 } XnModuleGeneralIntInterface; 00323 00324 typedef struct XnModuleProductionNodeInterface 00325 { 00332 XnBool (XN_CALLBACK_TYPE* IsCapabilitySupported)( 00333 XnModuleNodeHandle hInstance, 00334 const XnChar* strCapabilityName 00335 ); 00336 00344 XnStatus (XN_CALLBACK_TYPE* SetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue); 00345 XnStatus (XN_CALLBACK_TYPE* SetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue); 00346 XnStatus (XN_CALLBACK_TYPE* SetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue); 00347 XnStatus (XN_CALLBACK_TYPE* SetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer); 00348 00356 XnStatus (XN_CALLBACK_TYPE* GetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue); 00357 XnStatus (XN_CALLBACK_TYPE* GetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue); 00358 XnStatus (XN_CALLBACK_TYPE* GetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize); 00359 XnStatus (XN_CALLBACK_TYPE* GetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer); 00360 00361 XnModuleExtendedSerializationInterface* pExtendedSerializationInterface; 00362 XnModuleLockAwareInterface* pLockAwareInterface; 00363 XnModuleErrorStateInterface* pErrorStateInterface; 00364 XnModuleGeneralIntInterface* pGeneralIntInterface; 00365 00366 } XnModuleProductionNodeInterface; 00367 00368 typedef struct XnModuleDeviceIdentificationInterface 00369 { 00381 XnStatus (XN_CALLBACK_TYPE* GetDeviceName)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00382 00394 XnStatus (XN_CALLBACK_TYPE* GetVendorSpecificData)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00395 00407 XnStatus (XN_CALLBACK_TYPE* GetSerialNumber)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00408 00409 } XnModuleDeviceIdentificationInterface; 00410 00411 typedef struct XnModuleDeviceInterface 00412 { 00413 XnModuleProductionNodeInterface* pProductionNode; 00414 00415 XnModuleDeviceIdentificationInterface* pDeviceIdentificationInterface; 00416 00417 } XnModuleDeviceInterface; 00418 00419 typedef struct XnModuleMirrorInterface 00420 { 00427 XnStatus (XN_CALLBACK_TYPE* SetMirror)(XnModuleNodeHandle hInstance, XnBool bMirror); 00428 00434 XnBool (XN_CALLBACK_TYPE* IsMirrored)(XnModuleNodeHandle hInstance); 00435 00444 XnStatus (XN_CALLBACK_TYPE* RegisterToMirrorChange) 00445 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00446 void* pCookie, XnCallbackHandle* phCallback); 00447 00454 void (XN_CALLBACK_TYPE* UnregisterFromMirrorChange) 00455 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00456 00457 } XnModuleMirrorInterface; 00458 00459 typedef struct XnModuleAlternativeViewPointInterface 00460 { 00470 XnBool (XN_CALLBACK_TYPE* IsViewPointSupported)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00471 00478 XnStatus (XN_CALLBACK_TYPE* SetViewPoint)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00479 00486 XnBool (XN_CALLBACK_TYPE* IsViewPointAs)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00487 00493 XnStatus (XN_CALLBACK_TYPE* ResetViewPoint)(XnModuleNodeHandle hGenerator); 00494 00503 XnStatus (XN_CALLBACK_TYPE* RegisterToViewPointChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00504 00511 void (XN_CALLBACK_TYPE* UnregisterFromViewPointChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00512 00523 XnStatus (XN_CALLBACK_TYPE* GetPixelCoordinatesInViewPoint)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther, XnUInt32 x, XnUInt32 y, XnUInt32* pAltX, XnUInt32* pAltY); 00524 00525 } XnModuleAlternativeViewPointInterface; 00526 00527 typedef struct XnModuleFrameSyncInterface 00528 { 00537 XnBool (XN_CALLBACK_TYPE* CanFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00538 00545 XnStatus (XN_CALLBACK_TYPE* FrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00546 00553 XnStatus (XN_CALLBACK_TYPE* StopFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00554 00561 XnBool (XN_CALLBACK_TYPE* IsFrameSyncedWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00562 00571 XnStatus (XN_CALLBACK_TYPE* RegisterToFrameSyncChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00572 00579 void (XN_CALLBACK_TYPE* UnregisterFromFrameSyncChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00580 00581 } XnModuleFrameSyncInterface; 00582 00584 typedef struct XnModuleGeneratorInterface 00585 { 00589 XnModuleProductionNodeInterface* pProductionNodeInterface; 00590 00596 XnStatus (XN_CALLBACK_TYPE* StartGenerating) 00597 (XnModuleNodeHandle hGenerator); 00598 00604 XnBool (XN_CALLBACK_TYPE* IsGenerating) 00605 (XnModuleNodeHandle hGenerator); 00606 00612 void (XN_CALLBACK_TYPE* StopGenerating) 00613 (XnModuleNodeHandle hGenerator); 00614 00623 XnStatus (XN_CALLBACK_TYPE* RegisterToGenerationRunningChange) 00624 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00625 void* pCookie, XnCallbackHandle* phCallback); 00626 00633 void (XN_CALLBACK_TYPE* UnregisterFromGenerationRunningChange) 00634 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00635 00643 XnStatus (XN_CALLBACK_TYPE* RegisterToNewDataAvailable) 00644 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00645 void* pCookie, XnCallbackHandle* phCallback); 00646 00653 void (XN_CALLBACK_TYPE* UnregisterFromNewDataAvailable) 00654 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00655 00662 XnBool (XN_CALLBACK_TYPE* IsNewDataAvailable) 00663 (XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp); 00664 00671 XnStatus (XN_CALLBACK_TYPE* UpdateData) 00672 (XnModuleNodeHandle hGenerator); 00673 00679 XnUInt32 (XN_CALLBACK_TYPE* GetDataSize)(XnModuleNodeHandle hGenerator); 00680 00686 XnUInt64 (XN_CALLBACK_TYPE* GetTimestamp)(XnModuleNodeHandle hGenerator); 00687 00693 XnUInt32 (XN_CALLBACK_TYPE* GetFrameID)(XnModuleNodeHandle hGenerator); 00694 00695 XnModuleMirrorInterface* pMirrorInterface; 00696 XnModuleAlternativeViewPointInterface* pAlternativeViewPointInterface; 00697 void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28) 00698 XnModuleFrameSyncInterface* pFrameSyncInterface; 00699 00700 //Note: The GetData() function was added in version 1.0.0.28 00706 const void* (XN_CALLBACK_TYPE* GetData)(XnModuleNodeHandle hGenerator); 00707 00708 } XnModuleGeneratorInterface; 00709 00710 typedef struct XnModuleRecorderInterface 00711 { 00712 /* 00713 * Sets the output stream for the recorder module. 00714 * 00715 * @param hInstance [in] A handle to the instance. 00716 * @param pStreamToken [in] A token that the recorder module must save for passing to later stream calls. 00717 * @param pStream [in] The stream interface the recorder module must save for later stream calls. 00718 */ 00719 XnStatus (XN_CALLBACK_TYPE* SetOutputStream) 00720 (XnModuleNodeHandle hInstance, void *pStreamToken, XnRecorderOutputStreamInterface *pStream); 00721 00722 XnModuleProductionNodeInterface* pProductionNode; 00723 XnNodeNotifications* pNodeNotifications; 00724 } XnModuleRecorderInterface; 00725 00726 typedef struct XnModulePlayerInterface 00727 { 00728 /* 00729 * Sets the input stream for the player module 00730 * 00731 * @param hInstance [in] A handle to the instance. 00732 * @param pStreamCookie [in] A cookie that the player module must save for passing to later stream calls. 00733 * @param pStream [in] The stream interface the player module must save for later stream calls. 00734 */ 00735 XnStatus (XN_CALLBACK_TYPE* SetInputStream) 00736 (XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream); 00737 00743 XnStatus (XN_CALLBACK_TYPE* ReadNext)(XnModuleNodeHandle hInstance); 00744 00745 /* 00746 * Sets the node notifications object to be used by the player. The player will use this object to 00747 * notify about events it encounters in the stream that was set with @ref SetInputStream(). 00748 * 00749 * @param hInstance [in] A handle to the instance. 00750 * @param pNodeNotificationsCookie [in] A cookie that the player module must save for passing to node notification calls. 00751 * @param pNodeNotifications [in] The node notifications interface that the player module will use to raise node notifications it finds in the stream. 00752 */ 00753 XnStatus (XN_CALLBACK_TYPE* SetNodeNotifications) 00754 (XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications); 00755 00756 XnStatus (XN_CALLBACK_TYPE* SetRawNodeNotifications) 00757 (XnModuleNodeHandle hInstance, void *pRawNodeNotificationsCookie, XnNodeNotifications *pRawNodeNotifications); 00758 00759 00760 /* 00761 * Determines whether the player repeats the played stream or not. 00762 * 00763 * @param bRepeat [in] If TRUE, repeat is set to be ON. If FALSE, repeat is set to be OFF. 00764 */ 00765 XnStatus (XN_CALLBACK_TYPE* SetRepeat) 00766 (XnModuleNodeHandle hInstance, XnBool bRepeat); 00767 00768 XnStatus (XN_CALLBACK_TYPE* SeekToTimeStamp) 00769 (XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin); 00770 00771 XnStatus (XN_CALLBACK_TYPE* SeekToFrame) 00772 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin); 00773 00774 XnStatus (XN_CALLBACK_TYPE* TellTimestamp) 00775 (XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp); 00776 00777 XnStatus (XN_CALLBACK_TYPE* TellFrame) 00778 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame); 00779 00780 XnStatus (XN_CALLBACK_TYPE* GetNumFrames) 00781 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames); 00782 00783 const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat) 00784 (XnModuleNodeHandle hInstance); 00785 00786 XnBool (XN_CALLBACK_TYPE* IsEOF) 00787 (XnModuleNodeHandle hInstance); 00788 00797 XnStatus (XN_CALLBACK_TYPE* RegisterToEndOfFileReached) 00798 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00799 void* pCookie, XnCallbackHandle* phCallback); 00800 00807 void (XN_CALLBACK_TYPE* UnregisterFromEndOfFileReached) 00808 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00809 00810 XnModuleProductionNodeInterface* pProductionNode; 00811 void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28) 00812 00813 } XnModulePlayerInterface; 00814 00815 typedef struct XnModuleCroppingInterface 00816 { 00823 XnStatus (XN_CALLBACK_TYPE* SetCropping)(XnModuleNodeHandle hGenerator, const XnCropping* pCropping); 00824 00831 XnStatus (XN_CALLBACK_TYPE* GetCropping)(XnModuleNodeHandle hGenerator, XnCropping* pCropping); 00832 00841 XnStatus (XN_CALLBACK_TYPE* RegisterToCroppingChange) 00842 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00843 void* pCookie, XnCallbackHandle* phCallback); 00844 00851 void (XN_CALLBACK_TYPE* UnregisterFromCroppingChange) 00852 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00853 00854 } XnModuleCroppingInterface; 00855 00856 typedef struct XnModuleAntiFlickerInterface 00857 { 00864 XnStatus (XN_CALLBACK_TYPE* SetPowerLineFrequency)(XnModuleNodeHandle hGenerator, XnPowerLineFrequency nFrequency); 00865 00871 XnPowerLineFrequency (XN_CALLBACK_TYPE* GetPowerLineFrequency)(XnModuleNodeHandle hGenerator); 00872 00881 XnStatus (XN_CALLBACK_TYPE* RegisterToPowerLineFrequencyChange) 00882 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00883 void* pCookie, XnCallbackHandle* phCallback); 00884 00891 void (XN_CALLBACK_TYPE* UnregisterFromPowerLineFrequencyChange) 00892 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00893 00894 } XnModuleAntiFlickerInterface; 00895 00896 typedef struct XnModuleMapGeneratorInterface 00897 { 00901 XnModuleGeneratorInterface* pGeneratorInterface; 00902 00909 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedMapOutputModesCount) 00910 (XnModuleNodeHandle hGenerator); 00911 00921 XnStatus (XN_CALLBACK_TYPE* GetSupportedMapOutputModes) 00922 (XnModuleNodeHandle hGenerator, 00923 XnMapOutputMode* aModes, XnUInt32* pnCount); 00924 00931 XnStatus (XN_CALLBACK_TYPE* SetMapOutputMode) 00932 (XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode); 00933 00940 XnStatus (XN_CALLBACK_TYPE* GetMapOutputMode) 00941 (XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode); 00942 00951 XnStatus (XN_CALLBACK_TYPE* RegisterToMapOutputModeChange) 00952 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00953 void* pCookie, XnCallbackHandle* phCallback); 00954 00961 void (XN_CALLBACK_TYPE* UnregisterFromMapOutputModeChange) 00962 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00963 00964 XnModuleCroppingInterface* pCroppingInterface; 00965 00966 // NOTE: GetBytesPerPixel() was added in OpenNI 1.0.0.30 00972 XnUInt32 (XN_CALLBACK_TYPE* GetBytesPerPixel) 00973 (XnModuleNodeHandle hGenerator); 00974 00975 XnModuleAntiFlickerInterface* pAntiFlickerInterface; 00976 00977 } XnModuleMapGeneratorInterface; 00978 00982 typedef struct XnModuleUserPositionCapabilityInterface 00983 { 00989 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedUserPositionsCount) 00990 (XnModuleNodeHandle hGenerator); 00991 00999 XnStatus (XN_CALLBACK_TYPE* SetUserPosition)( 01000 XnModuleNodeHandle hGenerator, 01001 XnUInt32 nIndex, 01002 const XnBoundingBox3D* pPosition); 01003 01011 XnStatus (XN_CALLBACK_TYPE* GetUserPosition) 01012 (XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition); 01013 01022 XnStatus (XN_CALLBACK_TYPE* RegisterToUserPositionChange) 01023 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01024 void* pCookie, XnCallbackHandle* phCallback); 01025 01032 void (XN_CALLBACK_TYPE* UnregisterFromUserPositionChange) 01033 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01034 01035 } XnModuleUserPositionCapabilityInterface; 01036 01038 typedef struct XnModuleDepthGeneratorInterface 01039 { 01043 XnModuleMapGeneratorInterface* pMapInterface; 01044 01050 XnDepthPixel* (XN_CALLBACK_TYPE* GetDepthMap) 01051 (XnModuleNodeHandle hGenerator); 01052 01058 XnDepthPixel (XN_CALLBACK_TYPE* GetDeviceMaxDepth) 01059 (XnModuleNodeHandle hGenerator); 01060 01069 void (XN_CALLBACK_TYPE* GetFieldOfView)(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV); 01070 01079 XnStatus (XN_CALLBACK_TYPE* RegisterToFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01080 void* pCookie, XnCallbackHandle* phCallback); 01081 01088 void (XN_CALLBACK_TYPE* UnregisterFromFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01089 01093 XnModuleUserPositionCapabilityInterface* pUserPositionInterface; 01094 01095 } XnModuleDepthGeneratorInterface; 01096 01098 typedef struct XnModuleImageGeneratorInterface 01099 { 01103 XnModuleMapGeneratorInterface* pMapInterface; 01104 01106 XnUInt8* (XN_CALLBACK_TYPE* GetImageMap)( 01107 XnModuleNodeHandle hGenerator 01108 ); 01109 01116 XnBool (XN_CALLBACK_TYPE* IsPixelFormatSupported)(XnModuleNodeHandle hGenerator, XnPixelFormat Format); 01117 01124 XnStatus (XN_CALLBACK_TYPE* SetPixelFormat)(XnModuleNodeHandle hGenerator, XnPixelFormat Format); 01125 01131 XnPixelFormat (XN_CALLBACK_TYPE* GetPixelFormat)(XnModuleNodeHandle hGenerator); 01132 01141 XnStatus (XN_CALLBACK_TYPE* RegisterToPixelFormatChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01142 void* pCookie, XnCallbackHandle* phCallback); 01143 01150 void (XN_CALLBACK_TYPE* UnregisterFromPixelFormatChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01151 01152 } XnModuleImageGeneratorInterface; 01153 01155 typedef struct XnModuleIRGeneratorInterface 01156 { 01160 XnModuleMapGeneratorInterface* pMapInterface; 01161 01163 XnIRPixel* (XN_CALLBACK_TYPE* GetIRMap)( 01164 XnModuleNodeHandle hGenerator 01165 ); 01166 01167 } XnModuleIRGeneratorInterface; 01168 01170 typedef struct XnModuleGestureGeneratorInterface 01171 { 01172 XnModuleGeneratorInterface* pGeneratorInterface; 01173 01174 XnStatus (XN_CALLBACK_TYPE* AddGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea); 01175 XnStatus (XN_CALLBACK_TYPE* RemoveGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture); 01176 XnStatus (XN_CALLBACK_TYPE* GetActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures); 01177 XnStatus (XN_CALLBACK_TYPE* EnumerateGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures); 01178 XnBool (XN_CALLBACK_TYPE* IsGestureAvailable)(XnModuleNodeHandle hInstance, const XnChar* strGesture); 01179 XnBool (XN_CALLBACK_TYPE* IsGestureProgressSupported)(XnModuleNodeHandle hGenerator, const XnChar* strGesture); 01180 XnStatus (XN_CALLBACK_TYPE* RegisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01181 void (XN_CALLBACK_TYPE* UnregisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01182 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01183 void (XN_CALLBACK_TYPE* UnregisterFromGestureChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01184 01185 XnStatus (XN_CALLBACK_TYPE* GetAllActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01186 XnStatus (XN_CALLBACK_TYPE* EnumerateAllGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01187 01188 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnModuleGestureIntermediateStageCompleted GestureIntermediateStageCompletedCB, void* pCookie, XnCallbackHandle* phCallback); 01189 void (XN_CALLBACK_TYPE* UnregisterFromGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01190 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnModuleGestureReadyForNextIntermediateStage ReadyForNextIntermediateStageCB, void* pCookie, XnCallbackHandle* phCallback); 01191 void (XN_CALLBACK_TYPE* UnregisterFromGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01192 01193 } XnModuleGestureGeneratorInterface; 01194 01196 typedef struct XnModuleSceneAnalyzerInterface 01197 { 01198 XnModuleMapGeneratorInterface* pMapInterface; 01199 01200 const XnLabel* (XN_CALLBACK_TYPE* GetLabelMap)(XnModuleNodeHandle hGenerator); 01201 XnStatus (XN_CALLBACK_TYPE* GetFloor)(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane); 01202 } XnModuleSceneAnalyzerInterface; 01203 01207 typedef struct XnModuleHandTouchingFOVEdgeCapabilityInterface 01208 { 01209 XnStatus (XN_CALLBACK_TYPE* RegisterToHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnModuleHandTouchingFOVEdge, void* pCookie, XnCallbackHandle* phCallback); 01210 void (XN_CALLBACK_TYPE* UnregisterFromHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01211 } XnModuleHandTouchingFOVEdgeCapabilityInterface; 01212 01213 typedef struct XnModuleHandsGeneratorInterface 01214 { 01215 XnModuleGeneratorInterface* pGeneratorInterface; 01216 01217 XnStatus (XN_CALLBACK_TYPE* RegisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback); 01218 void (XN_CALLBACK_TYPE* UnregisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01219 XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01220 XnStatus (XN_CALLBACK_TYPE* StopTrackingAll)(XnModuleNodeHandle hGenerator); 01221 XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition); 01222 XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor); 01223 01224 XnModuleHandTouchingFOVEdgeCapabilityInterface* pHandTouchingFOVEdgeInterface; 01225 01226 } XnModuleHandsGeneratorInterface; 01227 01231 typedef struct XnModuleSkeletonCapabilityInterface 01232 { 01233 XnBool (XN_CALLBACK_TYPE* IsJointAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint); 01234 XnBool (XN_CALLBACK_TYPE* IsProfileAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile); 01235 XnStatus (XN_CALLBACK_TYPE* SetSkeletonProfile)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile); 01236 XnStatus (XN_CALLBACK_TYPE* SetJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState); 01237 XnBool (XN_CALLBACK_TYPE* IsJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint); 01238 XnStatus (XN_CALLBACK_TYPE* RegisterToJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01239 void (XN_CALLBACK_TYPE* UnregisterFromJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01240 XnStatus (XN_CALLBACK_TYPE* EnumerateActiveJoints)(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints); 01241 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJoint)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint); 01242 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJointPosition)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint); 01243 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJointOrientation)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint); 01244 XnBool (XN_CALLBACK_TYPE* IsTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01245 XnBool (XN_CALLBACK_TYPE* IsCalibrated)(XnModuleNodeHandle hGenerator, XnUserID user); 01246 XnBool (XN_CALLBACK_TYPE* IsCalibrating)(XnModuleNodeHandle hGenerator, XnUserID user); 01247 XnStatus (XN_CALLBACK_TYPE* RequestCalibration)(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce); 01248 XnStatus (XN_CALLBACK_TYPE* AbortCalibration)(XnModuleNodeHandle hGenerator, XnUserID user); 01249 XnStatus (XN_CALLBACK_TYPE* SaveCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot); 01250 XnStatus (XN_CALLBACK_TYPE* LoadCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot); 01251 XnStatus (XN_CALLBACK_TYPE* ClearCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot); 01252 XnBool (XN_CALLBACK_TYPE* IsCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot); 01253 XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01254 XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01255 XnStatus (XN_CALLBACK_TYPE* Reset)(XnModuleNodeHandle hGenerator, XnUserID user); 01256 XnBool (XN_CALLBACK_TYPE* NeedPoseForCalibration)(XnModuleNodeHandle hGenerator); 01257 XnStatus (XN_CALLBACK_TYPE* GetCalibrationPose)(XnModuleNodeHandle hGenerator, XnChar* strPose); 01258 XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor); 01259 XnStatus (XN_CALLBACK_TYPE* RegisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback); 01260 void (XN_CALLBACK_TYPE* UnregisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01261 01262 XnStatus (XN_CALLBACK_TYPE* SaveCalibrationDataToFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName); 01263 XnStatus (XN_CALLBACK_TYPE* LoadCalibrationDataFromFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName); 01264 01265 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnModuleCalibrationInProgress CalibrationInProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01266 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01267 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationComplete)(XnModuleNodeHandle hGenerator, XnModuleCalibrationComplete CalibrationCompleteCB, void* pCookie, XnCallbackHandle* phCallback); 01268 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationComplete)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01269 01270 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationStart)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback); 01271 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationStart)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01272 } XnModuleSkeletonCapabilityInterface; 01273 01274 typedef struct XnModulePoseDetectionCapabilityInterface 01275 { 01276 XnUInt32 (XN_CALLBACK_TYPE* GetNumberOfPoses)(XnModuleNodeHandle hGenerator); 01277 XnStatus (XN_CALLBACK_TYPE* GetAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses); 01278 XnStatus (XN_CALLBACK_TYPE* StartPoseDetection)(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user); 01279 XnStatus (XN_CALLBACK_TYPE* StopPoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user); 01280 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseCallbacks)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback StartPoseCB, XnModulePoseDetectionCallback EndCB, void* pCookie, XnCallbackHandle* phCallback); 01281 void (XN_CALLBACK_TYPE* UnregisterFromPoseCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01282 01283 XnStatus (XN_CALLBACK_TYPE* GetAllAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses); 01284 01285 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionInProgressCallback PoseProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01286 void (XN_CALLBACK_TYPE* UnregisterFromPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01287 01288 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetected)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 01289 void (XN_CALLBACK_TYPE* UnregisterFromPoseDetected)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01290 XnStatus (XN_CALLBACK_TYPE* RegisterToOutOfPose)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 01291 void (XN_CALLBACK_TYPE* UnregisterFromOutOfPose)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01292 01293 XnStatus (XN_CALLBACK_TYPE* StopSinglePoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strPose); 01294 } XnModulePoseDetectionCapabilityInterface; 01295 01297 typedef struct XnModuleUserGeneratorInterface 01298 { 01299 XnModuleGeneratorInterface* pGeneratorInterface; 01300 01301 XnUInt16 (XN_CALLBACK_TYPE* GetNumberOfUsers)(XnModuleNodeHandle hGenerator); 01302 XnStatus (XN_CALLBACK_TYPE* GetUsers)(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers); 01303 XnStatus (XN_CALLBACK_TYPE* GetCoM)(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM); 01304 XnStatus (XN_CALLBACK_TYPE* GetUserPixels)(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene); 01305 XnStatus (XN_CALLBACK_TYPE* RegisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback); 01306 void (XN_CALLBACK_TYPE* UnregisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01307 01311 XnModuleSkeletonCapabilityInterface* pSkeletonInterface; 01315 XnModulePoseDetectionCapabilityInterface* pPoseDetectionInterface; 01316 01317 XnStatus (XN_CALLBACK_TYPE* RegisterToUserExit)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserExitCB, void* pCookie, XnCallbackHandle* phCallback); 01318 void (XN_CALLBACK_TYPE* UnregisterFromUserExit)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01319 XnStatus (XN_CALLBACK_TYPE* RegisterToUserReEnter)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserReEnterCB, void* pCookie, XnCallbackHandle* phCallback); 01320 void (XN_CALLBACK_TYPE* UnregisterFromUserReEnter)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01321 01322 } XnModuleUserGeneratorInterface; 01323 01325 typedef struct XnModuleAudioGeneratorInterface 01326 { 01327 XnModuleGeneratorInterface* pGeneratorInterface; 01328 01329 XnUChar* (XN_CALLBACK_TYPE* GetAudioBuffer)(XnModuleNodeHandle hGenerator); 01330 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedWaveOutputModesCount)(XnModuleNodeHandle hGenerator); 01331 XnStatus (XN_CALLBACK_TYPE* GetSupportedWaveOutputModes)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount); 01332 XnStatus (XN_CALLBACK_TYPE* SetWaveOutputMode)(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* OutputMode); 01333 XnStatus (XN_CALLBACK_TYPE* GetWaveOutputMode)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* OutputMode); 01334 XnStatus (XN_CALLBACK_TYPE* RegisterToWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01335 void* pCookie, XnCallbackHandle* phCallback); 01336 void (XN_CALLBACK_TYPE* UnregisterFromWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01337 01338 } XnModuleAudioGeneratorInterface; 01339 01340 typedef struct XnModuleCodecInterface 01341 { 01342 XnModuleProductionNodeInterface* pProductionNode; 01343 01344 XnCodecID (XN_CALLBACK_TYPE* GetCodecID)(XnModuleNodeHandle hCodec); 01345 XnStatus (XN_CALLBACK_TYPE* Init)(XnModuleNodeHandle hCodec, XnNodeHandle hNode); 01346 XnStatus (XN_CALLBACK_TYPE* CompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 01347 XnStatus (XN_CALLBACK_TYPE* DecompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 01348 01349 } XnModuleCodecInterface; 01350 01351 typedef struct XnModuleScriptNodeInterface 01352 { 01353 XnModuleProductionNodeInterface* pProductionNode; 01354 01355 const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)(XnModuleNodeHandle hScript); 01356 XnStatus (XN_CALLBACK_TYPE* LoadScriptFromFile)(XnModuleNodeHandle hScript, const XnChar* strFileName); 01357 XnStatus (XN_CALLBACK_TYPE* LoadScriptFromString)(XnModuleNodeHandle hScript, const XnChar* strScript); 01358 XnStatus (XN_CALLBACK_TYPE* Run)(XnModuleNodeHandle hScript, XnNodeInfoList* pCreatedNodes, XnEnumerationErrors* pErrors); 01359 01360 } XnModuleScriptNodeInterface; 01361 01362 #endif // __XN_MODULE_INTERFACE_H__