![]() |
OpenNI 1.5.2
|
00001 /**************************************************************************** 00002 * * 00003 * OpenNI 1.x Alpha * 00004 * Copyright (C) 2011 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 #ifndef __XN_MODULE_INTERFACE_H__ 00023 #define __XN_MODULE_INTERFACE_H__ 00024 00025 //--------------------------------------------------------------------------- 00026 // Includes 00027 //--------------------------------------------------------------------------- 00028 #include <XnTypes.h> 00029 00030 //--------------------------------------------------------------------------- 00031 // Defines 00032 //--------------------------------------------------------------------------- 00033 #define XN_MODULE_LOAD xnModuleLoad 00034 #define XN_MODULE_UNLOAD xnModuleUnload 00035 #define XN_MODULE_GET_EXPORTED_NODES_COUNT xnModuleGetExportedNodesCount 00036 #define XN_MODULE_GET_EXPORTED_NODES_ENTRY_POINTS xnModuleGetExportedNodesEntryPoints 00037 #define XN_MODULE_GET_OPEN_NI_VERSION xnModuleGetOpenNIVersion 00038 00039 //--------------------------------------------------------------------------- 00040 // Forward Declarations 00041 //--------------------------------------------------------------------------- 00042 struct XnModuleExportedProductionNodeInterface; 00043 struct XnModuleProductionNodeInterface; 00044 struct XnModuleDeviceInterface; 00045 struct XnModuleDepthGeneratorInterface; 00046 struct XnModuleImageGeneratorInterface; 00047 struct XnModuleIRGeneratorInterface; 00048 struct XnModuleGestureGeneratorInterface; 00049 struct XnModuleUserGeneratorInterface; 00050 struct XnModuleHandsGeneratorInterface; 00051 struct XnModuleSceneAnalyzerInterface; 00052 struct XnModuleAudioGeneratorInterface; 00053 struct XnModuleRecorderInterface; 00054 struct XnModulePlayerInterface; 00055 struct XnModuleGeneratorInterface; 00056 struct XnModuleCodecInterface; 00057 struct XnModuleScriptNodeInterface; 00058 struct XnModuleMapGeneratorInterface; 00059 00060 //--------------------------------------------------------------------------- 00061 // Types 00062 //--------------------------------------------------------------------------- 00063 00064 typedef void (XN_CALLBACK_TYPE* XnModuleGetExportedInterfacePtr)(XnModuleExportedProductionNodeInterface* pInterface); 00065 typedef XnStatus (XN_C_DECL* XnModuleLoadPtr)(); 00066 typedef void (XN_C_DECL* XnModuleUnloadPtr)(); 00067 typedef XnUInt32 (XN_C_DECL* XnModuleGetExportedNodesCountPtr)(); 00068 typedef XnStatus (XN_C_DECL* XnModuleGetExportedNodesEntryPointsPtr)(XnModuleGetExportedInterfacePtr* aEntryPoints, XnUInt32 nCount); 00069 typedef void (XN_C_DECL* XnModuleGetOpenNIVersionPtr)(XnVersion* pVersion); 00070 00071 typedef struct XnOpenNIModuleInterface 00072 { 00073 XnModuleLoadPtr pLoadFunc; 00074 XnModuleUnloadPtr pUnloadFunc; 00075 XnModuleGetExportedNodesCountPtr pGetCountFunc; 00076 XnModuleGetExportedNodesEntryPointsPtr pGetEntryPointsFunc; 00077 XnModuleGetOpenNIVersionPtr pGetVersionFunc; 00078 } XnOpenNIModuleInterface; 00079 00081 typedef void (XN_CALLBACK_TYPE* XnModuleStateChangedHandler)(void* pCookie); 00082 00083 // User 00084 typedef void (XN_CALLBACK_TYPE* XnModuleUserHandler)(XnUserID user, void* pCookie); 00085 00086 // Hand touching FOV edge 00087 typedef void (XN_CALLBACK_TYPE* XnModuleHandTouchingFOVEdge)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie); 00088 00089 // UI 00090 typedef void (XN_CALLBACK_TYPE* XnModuleHandCreate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); 00091 typedef void (XN_CALLBACK_TYPE* XnModuleHandUpdate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); 00092 typedef void (XN_CALLBACK_TYPE* XnModuleHandDestroy)(XnUserID user, XnFloat fTime, void* pCookie); 00093 00094 // Gesture Module 00095 typedef void (XN_CALLBACK_TYPE* XnModuleGestureRecognized)(const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie); 00096 typedef void (XN_CALLBACK_TYPE* XnModuleGestureProgress)(const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie); 00097 typedef void (XN_CALLBACK_TYPE* XnModuleGestureIntermediateStageCompleted)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); 00098 typedef void (XN_CALLBACK_TYPE* XnModuleGestureReadyForNextIntermediateStage)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); 00099 00100 // Skeleton 00101 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationStart)(XnUserID user, void* pCookie); 00102 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationEnd)(XnUserID user, XnBool bSuccess, void* pCookie); 00103 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationInProgress)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); 00104 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationComplete)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); 00105 00106 // Pose Detection 00107 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionCallback)(const XnChar* strPose, XnUserID user, void* pCookie); 00108 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionInProgressCallback)(const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseError, void* pCookie); 00109 00110 typedef struct XnModuleExportedProductionNodeInterface 00111 { 00117 void (XN_CALLBACK_TYPE* GetDescription) 00118 (XnProductionNodeDescription* pDescription); 00119 00127 XnStatus (XN_CALLBACK_TYPE* EnumerateProductionTrees) 00128 (XnContext* pContext, 00129 XnNodeInfoList* pNodesList, 00130 XnEnumerationErrors* pErrors); 00131 00142 XnStatus (XN_CALLBACK_TYPE* Create) 00143 (XnContext* pContext, 00144 const XnChar* strInstanceName, 00145 const XnChar* strCreationInfo, 00146 XnNodeInfoList* pNeededNodes, 00147 const XnChar* strConfigurationDir, 00148 XnModuleNodeHandle* phInstance); 00149 00155 void (XN_CALLBACK_TYPE* Destroy) 00156 (XnModuleNodeHandle hInstance); 00157 00165 union 00166 { 00167 void (XN_CALLBACK_TYPE* ProductionNode)(struct XnModuleProductionNodeInterface* pInterface); 00168 void (XN_CALLBACK_TYPE* Device)(struct XnModuleDeviceInterface* pInterface); 00169 void (XN_CALLBACK_TYPE* Generator)(struct XnModuleGeneratorInterface* pInterface); 00170 void (XN_CALLBACK_TYPE* MapGenerator)(struct XnModuleMapGeneratorInterface* pInterface); 00171 void (XN_CALLBACK_TYPE* Depth)(struct XnModuleDepthGeneratorInterface* pInterface); 00172 void (XN_CALLBACK_TYPE* Image)(struct XnModuleImageGeneratorInterface* pInterface); 00173 void (XN_CALLBACK_TYPE* IR)(struct XnModuleIRGeneratorInterface* pInterface); 00174 void (XN_CALLBACK_TYPE* User)(struct XnModuleUserGeneratorInterface* pInterface); 00175 void (XN_CALLBACK_TYPE* Hands)(struct XnModuleHandsGeneratorInterface* pInterace); 00176 void (XN_CALLBACK_TYPE* Gesture)(struct XnModuleGestureGeneratorInterface* pInterface); 00177 void (XN_CALLBACK_TYPE* Scene)(struct XnModuleSceneAnalyzerInterface* pInterface); 00178 void (XN_CALLBACK_TYPE* Audio)(struct XnModuleAudioGeneratorInterface* pInterface); 00179 void (XN_CALLBACK_TYPE* Recorder)(struct XnModuleRecorderInterface* pInterface); 00180 void (XN_CALLBACK_TYPE* Player)(struct XnModulePlayerInterface* pInterface); 00181 void (XN_CALLBACK_TYPE* Codec)(struct XnModuleCodecInterface* pInterface); 00182 void (XN_CALLBACK_TYPE* Script)(struct XnModuleScriptNodeInterface* pInterface); 00183 00184 void (XN_CALLBACK_TYPE* General)(void* pInterface); 00185 } GetInterface; 00186 00187 } XnModuleExportedProductionNodeInterface; 00188 00189 typedef struct XnModuleExtendedSerializationInterface 00190 { 00191 XnStatus (XN_CALLBACK_TYPE* InitNotifications)(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie); 00192 void (XN_CALLBACK_TYPE* StopNotifications)(XnModuleNodeHandle hInstance); 00193 00194 } XnModuleExtendedSerializationInterface; 00195 00196 typedef struct XnModuleLockAwareInterface 00197 { 00204 XnStatus (XN_CALLBACK_TYPE* SetLockState)(XnModuleNodeHandle hInstance, XnBool bLocked); 00205 00211 XnBool (XN_CALLBACK_TYPE* GetLockState)(XnModuleNodeHandle hInstance); 00212 00221 XnStatus (XN_CALLBACK_TYPE* RegisterToLockChange) 00222 (XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, 00223 void* pCookie, XnCallbackHandle* phCallback); 00224 00231 void (XN_CALLBACK_TYPE* UnregisterFromLockChange) 00232 (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback); 00233 00234 } XnModuleLockAwareInterface; 00235 00236 typedef struct XnModuleErrorStateInterface 00237 { 00243 XnStatus (XN_CALLBACK_TYPE* GetErrorState)(XnModuleNodeHandle hInstance); 00244 00253 XnStatus (XN_CALLBACK_TYPE* RegisterToErrorStateChange) 00254 (XnModuleNodeHandle hInstance, XnModuleStateChangedHandler handler, 00255 void* pCookie, XnCallbackHandle* phCallback); 00256 00263 void (XN_CALLBACK_TYPE* UnregisterFromErrorStateChange) 00264 (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback); 00265 00266 } XnModuleErrorStateInterface; 00267 00268 typedef struct XnModuleGeneralIntInterface 00269 { 00281 XnStatus (XN_CALLBACK_TYPE* GetRange)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported); 00282 00290 XnStatus (XN_CALLBACK_TYPE* Get)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnValue); 00291 00299 XnStatus (XN_CALLBACK_TYPE* Set)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32 nValue); 00300 00310 XnStatus (XN_CALLBACK_TYPE* RegisterToValueChange) 00311 (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnModuleStateChangedHandler handler, 00312 void* pCookie, XnCallbackHandle* phCallback); 00313 00321 void (XN_CALLBACK_TYPE* UnregisterFromValueChange) 00322 (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnCallbackHandle hCallback); 00323 00324 } XnModuleGeneralIntInterface; 00325 00326 typedef struct XnModuleProductionNodeInterface 00327 { 00334 XnBool (XN_CALLBACK_TYPE* IsCapabilitySupported)( 00335 XnModuleNodeHandle hInstance, 00336 const XnChar* strCapabilityName 00337 ); 00338 00346 XnStatus (XN_CALLBACK_TYPE* SetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue); 00347 XnStatus (XN_CALLBACK_TYPE* SetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue); 00348 XnStatus (XN_CALLBACK_TYPE* SetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue); 00349 XnStatus (XN_CALLBACK_TYPE* SetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer); 00350 00358 XnStatus (XN_CALLBACK_TYPE* GetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue); 00359 XnStatus (XN_CALLBACK_TYPE* GetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue); 00360 XnStatus (XN_CALLBACK_TYPE* GetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize); 00361 XnStatus (XN_CALLBACK_TYPE* GetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer); 00362 00363 XnModuleExtendedSerializationInterface* pExtendedSerializationInterface; 00364 XnModuleLockAwareInterface* pLockAwareInterface; 00365 XnModuleErrorStateInterface* pErrorStateInterface; 00366 XnModuleGeneralIntInterface* pGeneralIntInterface; 00367 00368 } XnModuleProductionNodeInterface; 00369 00370 typedef struct XnModuleDeviceIdentificationInterface 00371 { 00383 XnStatus (XN_CALLBACK_TYPE* GetDeviceName)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00384 00396 XnStatus (XN_CALLBACK_TYPE* GetVendorSpecificData)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00397 00409 XnStatus (XN_CALLBACK_TYPE* GetSerialNumber)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00410 00411 } XnModuleDeviceIdentificationInterface; 00412 00413 typedef struct XnModuleDeviceInterface 00414 { 00415 XnModuleProductionNodeInterface* pProductionNode; 00416 00417 XnModuleDeviceIdentificationInterface* pDeviceIdentificationInterface; 00418 00419 } XnModuleDeviceInterface; 00420 00421 typedef struct XnModuleMirrorInterface 00422 { 00429 XnStatus (XN_CALLBACK_TYPE* SetMirror)(XnModuleNodeHandle hInstance, XnBool bMirror); 00430 00436 XnBool (XN_CALLBACK_TYPE* IsMirrored)(XnModuleNodeHandle hInstance); 00437 00446 XnStatus (XN_CALLBACK_TYPE* RegisterToMirrorChange) 00447 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00448 void* pCookie, XnCallbackHandle* phCallback); 00449 00456 void (XN_CALLBACK_TYPE* UnregisterFromMirrorChange) 00457 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00458 00459 } XnModuleMirrorInterface; 00460 00461 typedef struct XnModuleAlternativeViewPointInterface 00462 { 00472 XnBool (XN_CALLBACK_TYPE* IsViewPointSupported)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00473 00480 XnStatus (XN_CALLBACK_TYPE* SetViewPoint)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00481 00488 XnBool (XN_CALLBACK_TYPE* IsViewPointAs)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00489 00495 XnStatus (XN_CALLBACK_TYPE* ResetViewPoint)(XnModuleNodeHandle hGenerator); 00496 00505 XnStatus (XN_CALLBACK_TYPE* RegisterToViewPointChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00506 00513 void (XN_CALLBACK_TYPE* UnregisterFromViewPointChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00514 00515 } XnModuleAlternativeViewPointInterface; 00516 00517 typedef struct XnModuleFrameSyncInterface 00518 { 00527 XnBool (XN_CALLBACK_TYPE* CanFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00528 00535 XnStatus (XN_CALLBACK_TYPE* FrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00536 00543 XnStatus (XN_CALLBACK_TYPE* StopFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00544 00551 XnBool (XN_CALLBACK_TYPE* IsFrameSyncedWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther); 00552 00561 XnStatus (XN_CALLBACK_TYPE* RegisterToFrameSyncChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00562 00569 void (XN_CALLBACK_TYPE* UnregisterFromFrameSyncChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00570 00571 } XnModuleFrameSyncInterface; 00572 00574 typedef struct XnModuleGeneratorInterface 00575 { 00579 XnModuleProductionNodeInterface* pProductionNodeInterface; 00580 00586 XnStatus (XN_CALLBACK_TYPE* StartGenerating) 00587 (XnModuleNodeHandle hGenerator); 00588 00594 XnBool (XN_CALLBACK_TYPE* IsGenerating) 00595 (XnModuleNodeHandle hGenerator); 00596 00602 void (XN_CALLBACK_TYPE* StopGenerating) 00603 (XnModuleNodeHandle hGenerator); 00604 00613 XnStatus (XN_CALLBACK_TYPE* RegisterToGenerationRunningChange) 00614 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00615 void* pCookie, XnCallbackHandle* phCallback); 00616 00623 void (XN_CALLBACK_TYPE* UnregisterFromGenerationRunningChange) 00624 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00625 00633 XnStatus (XN_CALLBACK_TYPE* RegisterToNewDataAvailable) 00634 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00635 void* pCookie, XnCallbackHandle* phCallback); 00636 00643 void (XN_CALLBACK_TYPE* UnregisterFromNewDataAvailable) 00644 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00645 00652 XnBool (XN_CALLBACK_TYPE* IsNewDataAvailable) 00653 (XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp); 00654 00661 XnStatus (XN_CALLBACK_TYPE* UpdateData) 00662 (XnModuleNodeHandle hGenerator); 00663 00669 XnUInt32 (XN_CALLBACK_TYPE* GetDataSize)(XnModuleNodeHandle hGenerator); 00670 00676 XnUInt64 (XN_CALLBACK_TYPE* GetTimestamp)(XnModuleNodeHandle hGenerator); 00677 00683 XnUInt32 (XN_CALLBACK_TYPE* GetFrameID)(XnModuleNodeHandle hGenerator); 00684 00685 XnModuleMirrorInterface* pMirrorInterface; 00686 XnModuleAlternativeViewPointInterface* pAlternativeViewPointInterface; 00687 void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28) 00688 XnModuleFrameSyncInterface* pFrameSyncInterface; 00689 00690 //Note: The GetData() function was added in version 1.0.0.28 00696 const void* (XN_CALLBACK_TYPE* GetData)(XnModuleNodeHandle hGenerator); 00697 00698 } XnModuleGeneratorInterface; 00699 00700 typedef struct XnModuleRecorderInterface 00701 { 00702 /* 00703 * Sets the output stream for the recorder module. 00704 * 00705 * @param hInstance [in] A handle to the instance. 00706 * @param pStreamToken [in] A token that the recorder module must save for passing to later stream calls. 00707 * @param pStream [in] The stream interface the recorder module must save for later stream calls. 00708 */ 00709 XnStatus (XN_CALLBACK_TYPE* SetOutputStream) 00710 (XnModuleNodeHandle hInstance, void *pStreamToken, XnRecorderOutputStreamInterface *pStream); 00711 00712 XnModuleProductionNodeInterface* pProductionNode; 00713 XnNodeNotifications* pNodeNotifications; 00714 } XnModuleRecorderInterface; 00715 00716 typedef struct XnModulePlayerInterface 00717 { 00718 /* 00719 * Sets the input stream for the player module 00720 * 00721 * @param hInstance [in] A handle to the instance. 00722 * @param pStreamCookie [in] A cookie that the player module must save for passing to later stream calls. 00723 * @param pStream [in] The stream interface the player module must save for later stream calls. 00724 */ 00725 XnStatus (XN_CALLBACK_TYPE* SetInputStream) 00726 (XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream); 00727 00733 XnStatus (XN_CALLBACK_TYPE* ReadNext)(XnModuleNodeHandle hInstance); 00734 00735 /* 00736 * Sets the node notifications object to be used by the player. The player will use this object to 00737 * notify about events it encounters in the stream that was set with @ref SetInputStream(). 00738 * 00739 * @param hInstance [in] A handle to the instance. 00740 * @param pNodeNotificationsCookie [in] A cookie that the player module must save for passing to node notification calls. 00741 * @param pNodeNotifications [in] The node notifications interface that the player module will use to raise node notifications it finds in the stream. 00742 */ 00743 XnStatus (XN_CALLBACK_TYPE* SetNodeNotifications) 00744 (XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications); 00745 00746 XnStatus (XN_CALLBACK_TYPE* SetRawNodeNotifications) 00747 (XnModuleNodeHandle hInstance, void *pRawNodeNotificationsCookie, XnNodeNotifications *pRawNodeNotifications); 00748 00749 00750 /* 00751 * Determines whether the player repeats the played stream or not. 00752 * 00753 * @param bRepeat [in] If TRUE, repeat is set to be ON. If FALSE, repeat is set to be OFF. 00754 */ 00755 XnStatus (XN_CALLBACK_TYPE* SetRepeat) 00756 (XnModuleNodeHandle hInstance, XnBool bRepeat); 00757 00758 XnStatus (XN_CALLBACK_TYPE* SeekToTimeStamp) 00759 (XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin); 00760 00761 XnStatus (XN_CALLBACK_TYPE* SeekToFrame) 00762 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin); 00763 00764 XnStatus (XN_CALLBACK_TYPE* TellTimestamp) 00765 (XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp); 00766 00767 XnStatus (XN_CALLBACK_TYPE* TellFrame) 00768 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame); 00769 00770 XnStatus (XN_CALLBACK_TYPE* GetNumFrames) 00771 (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames); 00772 00773 const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat) 00774 (XnModuleNodeHandle hInstance); 00775 00776 XnBool (XN_CALLBACK_TYPE* IsEOF) 00777 (XnModuleNodeHandle hInstance); 00778 00787 XnStatus (XN_CALLBACK_TYPE* RegisterToEndOfFileReached) 00788 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00789 void* pCookie, XnCallbackHandle* phCallback); 00790 00797 void (XN_CALLBACK_TYPE* UnregisterFromEndOfFileReached) 00798 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00799 00800 XnModuleProductionNodeInterface* pProductionNode; 00801 void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28) 00802 00803 } XnModulePlayerInterface; 00804 00805 typedef struct XnModuleCroppingInterface 00806 { 00813 XnStatus (XN_CALLBACK_TYPE* SetCropping)(XnModuleNodeHandle hGenerator, const XnCropping* pCropping); 00814 00821 XnStatus (XN_CALLBACK_TYPE* GetCropping)(XnModuleNodeHandle hGenerator, XnCropping* pCropping); 00822 00831 XnStatus (XN_CALLBACK_TYPE* RegisterToCroppingChange) 00832 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00833 void* pCookie, XnCallbackHandle* phCallback); 00834 00841 void (XN_CALLBACK_TYPE* UnregisterFromCroppingChange) 00842 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00843 00844 } XnModuleCroppingInterface; 00845 00846 typedef struct XnModuleAntiFlickerInterface 00847 { 00854 XnStatus (XN_CALLBACK_TYPE* SetPowerLineFrequency)(XnModuleNodeHandle hGenerator, XnPowerLineFrequency nFrequency); 00855 00861 XnPowerLineFrequency (XN_CALLBACK_TYPE* GetPowerLineFrequency)(XnModuleNodeHandle hGenerator); 00862 00871 XnStatus (XN_CALLBACK_TYPE* RegisterToPowerLineFrequencyChange) 00872 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00873 void* pCookie, XnCallbackHandle* phCallback); 00874 00881 void (XN_CALLBACK_TYPE* UnregisterFromPowerLineFrequencyChange) 00882 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00883 00884 } XnModuleAntiFlickerInterface; 00885 00886 typedef struct XnModuleMapGeneratorInterface 00887 { 00891 XnModuleGeneratorInterface* pGeneratorInterface; 00892 00899 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedMapOutputModesCount) 00900 (XnModuleNodeHandle hGenerator); 00901 00911 XnStatus (XN_CALLBACK_TYPE* GetSupportedMapOutputModes) 00912 (XnModuleNodeHandle hGenerator, 00913 XnMapOutputMode* aModes, XnUInt32* pnCount); 00914 00921 XnStatus (XN_CALLBACK_TYPE* SetMapOutputMode) 00922 (XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode); 00923 00930 XnStatus (XN_CALLBACK_TYPE* GetMapOutputMode) 00931 (XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode); 00932 00941 XnStatus (XN_CALLBACK_TYPE* RegisterToMapOutputModeChange) 00942 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 00943 void* pCookie, XnCallbackHandle* phCallback); 00944 00951 void (XN_CALLBACK_TYPE* UnregisterFromMapOutputModeChange) 00952 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 00953 00954 XnModuleCroppingInterface* pCroppingInterface; 00955 00956 // NOTE: GetBytesPerPixel() was added in OpenNI 1.0.0.30 00962 XnUInt32 (XN_CALLBACK_TYPE* GetBytesPerPixel) 00963 (XnModuleNodeHandle hGenerator); 00964 00965 XnModuleAntiFlickerInterface* pAntiFlickerInterface; 00966 00967 } XnModuleMapGeneratorInterface; 00968 00972 typedef struct XnModuleUserPositionCapabilityInterface 00973 { 00979 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedUserPositionsCount) 00980 (XnModuleNodeHandle hGenerator); 00981 00989 XnStatus (XN_CALLBACK_TYPE* SetUserPosition)( 00990 XnModuleNodeHandle hGenerator, 00991 XnUInt32 nIndex, 00992 const XnBoundingBox3D* pPosition); 00993 01001 XnStatus (XN_CALLBACK_TYPE* GetUserPosition) 01002 (XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition); 01003 01012 XnStatus (XN_CALLBACK_TYPE* RegisterToUserPositionChange) 01013 (XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01014 void* pCookie, XnCallbackHandle* phCallback); 01015 01022 void (XN_CALLBACK_TYPE* UnregisterFromUserPositionChange) 01023 (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01024 01025 } XnModuleUserPositionCapabilityInterface; 01026 01028 typedef struct XnModuleDepthGeneratorInterface 01029 { 01033 XnModuleMapGeneratorInterface* pMapInterface; 01034 01040 XnDepthPixel* (XN_CALLBACK_TYPE* GetDepthMap) 01041 (XnModuleNodeHandle hGenerator); 01042 01048 XnDepthPixel (XN_CALLBACK_TYPE* GetDeviceMaxDepth) 01049 (XnModuleNodeHandle hGenerator); 01050 01059 void (XN_CALLBACK_TYPE* GetFieldOfView)(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV); 01060 01069 XnStatus (XN_CALLBACK_TYPE* RegisterToFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01070 void* pCookie, XnCallbackHandle* phCallback); 01071 01078 void (XN_CALLBACK_TYPE* UnregisterFromFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01079 01083 XnModuleUserPositionCapabilityInterface* pUserPositionInterface; 01084 01085 } XnModuleDepthGeneratorInterface; 01086 01088 typedef struct XnModuleImageGeneratorInterface 01089 { 01093 XnModuleMapGeneratorInterface* pMapInterface; 01094 01096 XnUInt8* (XN_CALLBACK_TYPE* GetImageMap)( 01097 XnModuleNodeHandle hGenerator 01098 ); 01099 01106 XnBool (XN_CALLBACK_TYPE* IsPixelFormatSupported)(XnModuleNodeHandle hGenerator, XnPixelFormat Format); 01107 01114 XnStatus (XN_CALLBACK_TYPE* SetPixelFormat)(XnModuleNodeHandle hGenerator, XnPixelFormat Format); 01115 01121 XnPixelFormat (XN_CALLBACK_TYPE* GetPixelFormat)(XnModuleNodeHandle hGenerator); 01122 01131 XnStatus (XN_CALLBACK_TYPE* RegisterToPixelFormatChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01132 void* pCookie, XnCallbackHandle* phCallback); 01133 01140 void (XN_CALLBACK_TYPE* UnregisterFromPixelFormatChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01141 01142 } XnModuleImageGeneratorInterface; 01143 01145 typedef struct XnModuleIRGeneratorInterface 01146 { 01150 XnModuleMapGeneratorInterface* pMapInterface; 01151 01153 XnIRPixel* (XN_CALLBACK_TYPE* GetIRMap)( 01154 XnModuleNodeHandle hGenerator 01155 ); 01156 01157 } XnModuleIRGeneratorInterface; 01158 01160 typedef struct XnModuleGestureGeneratorInterface 01161 { 01162 XnModuleGeneratorInterface* pGeneratorInterface; 01163 01164 XnStatus (XN_CALLBACK_TYPE* AddGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea); 01165 XnStatus (XN_CALLBACK_TYPE* RemoveGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture); 01166 XnStatus (XN_CALLBACK_TYPE* GetActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures); 01167 XnStatus (XN_CALLBACK_TYPE* EnumerateGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures); 01168 XnBool (XN_CALLBACK_TYPE* IsGestureAvailable)(XnModuleNodeHandle hInstance, const XnChar* strGesture); 01169 XnBool (XN_CALLBACK_TYPE* IsGestureProgressSupported)(XnModuleNodeHandle hGenerator, const XnChar* strGesture); 01170 XnStatus (XN_CALLBACK_TYPE* RegisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01171 void (XN_CALLBACK_TYPE* UnregisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01172 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01173 void (XN_CALLBACK_TYPE* UnregisterFromGestureChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01174 01175 XnStatus (XN_CALLBACK_TYPE* GetAllActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01176 XnStatus (XN_CALLBACK_TYPE* EnumerateAllGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01177 01178 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnModuleGestureIntermediateStageCompleted GestureIntermediateStageCompletedCB, void* pCookie, XnCallbackHandle* phCallback); 01179 void (XN_CALLBACK_TYPE* UnregisterFromGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01180 XnStatus (XN_CALLBACK_TYPE* RegisterToGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnModuleGestureReadyForNextIntermediateStage ReadyForNextIntermediateStageCB, void* pCookie, XnCallbackHandle* phCallback); 01181 void (XN_CALLBACK_TYPE* UnregisterFromGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01182 01183 } XnModuleGestureGeneratorInterface; 01184 01186 typedef struct XnModuleSceneAnalyzerInterface 01187 { 01188 XnModuleMapGeneratorInterface* pMapInterface; 01189 01190 const XnLabel* (XN_CALLBACK_TYPE* GetLabelMap)(XnModuleNodeHandle hGenerator); 01191 XnStatus (XN_CALLBACK_TYPE* GetFloor)(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane); 01192 } XnModuleSceneAnalyzerInterface; 01193 01197 typedef struct XnModuleHandTouchingFOVEdgeCapabilityInterface 01198 { 01199 XnStatus (XN_CALLBACK_TYPE* RegisterToHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnModuleHandTouchingFOVEdge, void* pCookie, XnCallbackHandle* phCallback); 01200 void (XN_CALLBACK_TYPE* UnregisterFromHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01201 } XnModuleHandTouchingFOVEdgeCapabilityInterface; 01202 01203 typedef struct XnModuleHandsGeneratorInterface 01204 { 01205 XnModuleGeneratorInterface* pGeneratorInterface; 01206 01207 XnStatus (XN_CALLBACK_TYPE* RegisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback); 01208 void (XN_CALLBACK_TYPE* UnregisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01209 XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01210 XnStatus (XN_CALLBACK_TYPE* StopTrackingAll)(XnModuleNodeHandle hGenerator); 01211 XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition); 01212 XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor); 01213 01214 XnModuleHandTouchingFOVEdgeCapabilityInterface* pHandTouchingFOVEdgeInterface; 01215 01216 } XnModuleHandsGeneratorInterface; 01217 01221 typedef struct XnModuleSkeletonCapabilityInterface 01222 { 01223 XnBool (XN_CALLBACK_TYPE* IsJointAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint); 01224 XnBool (XN_CALLBACK_TYPE* IsProfileAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile); 01225 XnStatus (XN_CALLBACK_TYPE* SetSkeletonProfile)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile); 01226 XnStatus (XN_CALLBACK_TYPE* SetJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState); 01227 XnBool (XN_CALLBACK_TYPE* IsJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint); 01228 XnStatus (XN_CALLBACK_TYPE* RegisterToJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01229 void (XN_CALLBACK_TYPE* UnregisterFromJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01230 XnStatus (XN_CALLBACK_TYPE* EnumerateActiveJoints)(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints); 01231 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJoint)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint); 01232 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJointPosition)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint); 01233 XnStatus (XN_CALLBACK_TYPE* GetSkeletonJointOrientation)(XnModuleNodeHandle hGenerator, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint); 01234 XnBool (XN_CALLBACK_TYPE* IsTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01235 XnBool (XN_CALLBACK_TYPE* IsCalibrated)(XnModuleNodeHandle hGenerator, XnUserID user); 01236 XnBool (XN_CALLBACK_TYPE* IsCalibrating)(XnModuleNodeHandle hGenerator, XnUserID user); 01237 XnStatus (XN_CALLBACK_TYPE* RequestCalibration)(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce); 01238 XnStatus (XN_CALLBACK_TYPE* AbortCalibration)(XnModuleNodeHandle hGenerator, XnUserID user); 01239 XnStatus (XN_CALLBACK_TYPE* SaveCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot); 01240 XnStatus (XN_CALLBACK_TYPE* LoadCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot); 01241 XnStatus (XN_CALLBACK_TYPE* ClearCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot); 01242 XnBool (XN_CALLBACK_TYPE* IsCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot); 01243 XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01244 XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user); 01245 XnStatus (XN_CALLBACK_TYPE* Reset)(XnModuleNodeHandle hGenerator, XnUserID user); 01246 XnBool (XN_CALLBACK_TYPE* NeedPoseForCalibration)(XnModuleNodeHandle hGenerator); 01247 XnStatus (XN_CALLBACK_TYPE* GetCalibrationPose)(XnModuleNodeHandle hGenerator, XnChar* strPose); 01248 XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor); 01249 XnStatus (XN_CALLBACK_TYPE* RegisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback); 01250 void (XN_CALLBACK_TYPE* UnregisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01251 01252 XnStatus (XN_CALLBACK_TYPE* SaveCalibrationDataToFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName); 01253 XnStatus (XN_CALLBACK_TYPE* LoadCalibrationDataFromFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName); 01254 01255 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnModuleCalibrationInProgress CalibrationInProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01256 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01257 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationComplete)(XnModuleNodeHandle hGenerator, XnModuleCalibrationComplete CalibrationCompleteCB, void* pCookie, XnCallbackHandle* phCallback); 01258 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationComplete)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01259 01260 XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationStart)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback); 01261 void (XN_CALLBACK_TYPE* UnregisterFromCalibrationStart)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01262 } XnModuleSkeletonCapabilityInterface; 01263 01264 typedef struct XnModulePoseDetectionCapabilityInterface 01265 { 01266 XnUInt32 (XN_CALLBACK_TYPE* GetNumberOfPoses)(XnModuleNodeHandle hGenerator); 01267 XnStatus (XN_CALLBACK_TYPE* GetAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses); 01268 XnStatus (XN_CALLBACK_TYPE* StartPoseDetection)(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user); 01269 XnStatus (XN_CALLBACK_TYPE* StopPoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user); 01270 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseCallbacks)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback StartPoseCB, XnModulePoseDetectionCallback EndCB, void* pCookie, XnCallbackHandle* phCallback); 01271 void (XN_CALLBACK_TYPE* UnregisterFromPoseCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01272 01273 XnStatus (XN_CALLBACK_TYPE* GetAllAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses); 01274 01275 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionInProgressCallback PoseProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01276 void (XN_CALLBACK_TYPE* UnregisterFromPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01277 01278 XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetected)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 01279 void (XN_CALLBACK_TYPE* UnregisterFromPoseDetected)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01280 XnStatus (XN_CALLBACK_TYPE* RegisterToOutOfPose)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 01281 void (XN_CALLBACK_TYPE* UnregisterFromOutOfPose)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01282 01283 XnStatus (XN_CALLBACK_TYPE* StopSinglePoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strPose); 01284 } XnModulePoseDetectionCapabilityInterface; 01285 01287 typedef struct XnModuleUserGeneratorInterface 01288 { 01289 XnModuleGeneratorInterface* pGeneratorInterface; 01290 01291 XnUInt16 (XN_CALLBACK_TYPE* GetNumberOfUsers)(XnModuleNodeHandle hGenerator); 01292 XnStatus (XN_CALLBACK_TYPE* GetUsers)(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers); 01293 XnStatus (XN_CALLBACK_TYPE* GetCoM)(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM); 01294 XnStatus (XN_CALLBACK_TYPE* GetUserPixels)(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene); 01295 XnStatus (XN_CALLBACK_TYPE* RegisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback); 01296 void (XN_CALLBACK_TYPE* UnregisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01297 01301 XnModuleSkeletonCapabilityInterface* pSkeletonInterface; 01305 XnModulePoseDetectionCapabilityInterface* pPoseDetectionInterface; 01306 01307 XnStatus (XN_CALLBACK_TYPE* RegisterToUserExit)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserExitCB, void* pCookie, XnCallbackHandle* phCallback); 01308 void (XN_CALLBACK_TYPE* UnregisterFromUserExit)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01309 XnStatus (XN_CALLBACK_TYPE* RegisterToUserReEnter)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserReEnterCB, void* pCookie, XnCallbackHandle* phCallback); 01310 void (XN_CALLBACK_TYPE* UnregisterFromUserReEnter)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01311 01312 } XnModuleUserGeneratorInterface; 01313 01315 typedef struct XnModuleAudioGeneratorInterface 01316 { 01317 XnModuleGeneratorInterface* pGeneratorInterface; 01318 01319 XnUChar* (XN_CALLBACK_TYPE* GetAudioBuffer)(XnModuleNodeHandle hGenerator); 01320 XnUInt32 (XN_CALLBACK_TYPE* GetSupportedWaveOutputModesCount)(XnModuleNodeHandle hGenerator); 01321 XnStatus (XN_CALLBACK_TYPE* GetSupportedWaveOutputModes)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount); 01322 XnStatus (XN_CALLBACK_TYPE* SetWaveOutputMode)(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* OutputMode); 01323 XnStatus (XN_CALLBACK_TYPE* GetWaveOutputMode)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* OutputMode); 01324 XnStatus (XN_CALLBACK_TYPE* RegisterToWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, 01325 void* pCookie, XnCallbackHandle* phCallback); 01326 void (XN_CALLBACK_TYPE* UnregisterFromWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback); 01327 01328 } XnModuleAudioGeneratorInterface; 01329 01330 typedef struct XnModuleCodecInterface 01331 { 01332 XnModuleProductionNodeInterface* pProductionNode; 01333 01334 XnCodecID (XN_CALLBACK_TYPE* GetCodecID)(XnModuleNodeHandle hCodec); 01335 XnStatus (XN_CALLBACK_TYPE* Init)(XnModuleNodeHandle hCodec, XnNodeHandle hNode); 01336 XnStatus (XN_CALLBACK_TYPE* CompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 01337 XnStatus (XN_CALLBACK_TYPE* DecompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 01338 01339 } XnModuleCodecInterface; 01340 01341 typedef struct XnModuleScriptNodeInterface 01342 { 01343 XnModuleProductionNodeInterface* pProductionNode; 01344 01345 const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)(XnModuleNodeHandle hScript); 01346 XnStatus (XN_CALLBACK_TYPE* LoadScriptFromFile)(XnModuleNodeHandle hScript, const XnChar* strFileName); 01347 XnStatus (XN_CALLBACK_TYPE* LoadScriptFromString)(XnModuleNodeHandle hScript, const XnChar* strScript); 01348 XnStatus (XN_CALLBACK_TYPE* Run)(XnModuleNodeHandle hScript, XnNodeInfoList* pCreatedNodes, XnEnumerationErrors* pErrors); 01349 01350 } XnModuleScriptNodeInterface; 01351 01352 #endif // __XN_MODULE_INTERFACE_H__