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