OpenNI 1.3.2
XnModuleInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2 * *
3 * OpenNI 1.1 Alpha *
4 * Copyright (C) 2011 PrimeSense Ltd. *
5 * *
6 * This file is part of OpenNI. *
7 * *
8 * OpenNI is free software: you can redistribute it and/or modify *
9 * it under the terms of the GNU Lesser General Public License as published *
10 * by the Free Software Foundation, either version 3 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * OpenNI is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU Lesser General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU Lesser General Public License *
19 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. *
20 * *
21 ****************************************************************************/
22 #ifndef __XN_MODULE_INTERFACE_H__
23 #define __XN_MODULE_INTERFACE_H__
24 
25 //---------------------------------------------------------------------------
26 // Includes
27 //---------------------------------------------------------------------------
28 #include <XnTypes.h>
29 
30 //---------------------------------------------------------------------------
31 // Defines
32 //---------------------------------------------------------------------------
33 #define XN_MODULE_LOAD xnModuleLoad
34 #define XN_MODULE_UNLOAD xnModuleUnload
35 #define XN_MODULE_GET_EXPORTED_NODES_COUNT xnModuleGetExportedNodesCount
36 #define XN_MODULE_GET_EXPORTED_NODES_ENTRY_POINTS xnModuleGetExportedNodesEntryPoints
37 #define XN_MODULE_GET_OPEN_NI_VERSION xnModuleGetOpenNIVersion
38 
39 //---------------------------------------------------------------------------
40 // Forward Declarations
41 //---------------------------------------------------------------------------
59 
60 //---------------------------------------------------------------------------
61 // Types
62 //---------------------------------------------------------------------------
63 
64 typedef void (XN_CALLBACK_TYPE* XnModuleGetExportedInterfacePtr)(XnModuleExportedProductionNodeInterface* pInterface);
65 typedef XnStatus (XN_C_DECL* XnModuleLoadPtr)();
66 typedef void (XN_C_DECL* XnModuleUnloadPtr)();
67 typedef XnUInt32 (XN_C_DECL* XnModuleGetExportedNodesCountPtr)();
68 typedef XnStatus (XN_C_DECL* XnModuleGetExportedNodesEntryPointsPtr)(XnModuleGetExportedInterfacePtr* aEntryPoints, XnUInt32 nCount);
69 typedef void (XN_C_DECL* XnModuleGetOpenNIVersionPtr)(XnVersion* pVersion);
70 
72 {
79 
81 typedef void (XN_CALLBACK_TYPE* XnModuleStateChangedHandler)(void* pCookie);
82 
83 // User
84 typedef void (XN_CALLBACK_TYPE* XnModuleUserHandler)(XnUserID user, void* pCookie);
85 
86 // Hand touching FOV edge
87 typedef void (XN_CALLBACK_TYPE* XnModuleHandTouchingFOVEdge)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie);
88 
89 // UI
90 typedef void (XN_CALLBACK_TYPE* XnModuleHandCreate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
91 typedef void (XN_CALLBACK_TYPE* XnModuleHandUpdate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
92 typedef void (XN_CALLBACK_TYPE* XnModuleHandDestroy)(XnUserID user, XnFloat fTime, void* pCookie);
93 
94 // Gesture Module
95 typedef void (XN_CALLBACK_TYPE* XnModuleGestureRecognized)(const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie);
96 typedef void (XN_CALLBACK_TYPE* XnModuleGestureProgress)(const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie);
97 typedef void (XN_CALLBACK_TYPE* XnModuleGestureIntermediateStageCompleted)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
98 typedef void (XN_CALLBACK_TYPE* XnModuleGestureReadyForNextIntermediateStage)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
99 
100 // Skeleton
101 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationStart)(XnUserID user, void* pCookie);
102 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationEnd)(XnUserID user, XnBool bSuccess, void* pCookie);
103 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationInProgress)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
104 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationComplete)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
105 
106 // Pose Detection
107 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionCallback)(const XnChar* strPose, XnUserID user, void* pCookie);
108 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionInProgressCallback)(const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseError, void* pCookie);
109 
111 {
117  void (XN_CALLBACK_TYPE* GetDescription)
119 
127  XnStatus (XN_CALLBACK_TYPE* EnumerateProductionTrees)
128  (XnContext* pContext,
129  XnNodeInfoList* pNodesList,
130  XnEnumerationErrors* pErrors);
131 
142  XnStatus (XN_CALLBACK_TYPE* Create)
143  (XnContext* pContext,
144  const XnChar* strInstanceName,
145  const XnChar* strCreationInfo,
146  XnNodeInfoList* pNeededNodes,
147  const XnChar* strConfigurationDir,
148  XnModuleNodeHandle* phInstance);
149 
155  void (XN_CALLBACK_TYPE* Destroy)
156  (XnModuleNodeHandle hInstance);
157 
165  union
166  {
167  void (XN_CALLBACK_TYPE* ProductionNode)(struct XnModuleProductionNodeInterface* pInterface);
168  void (XN_CALLBACK_TYPE* Device)(struct XnModuleDeviceInterface* pInterface);
169  void (XN_CALLBACK_TYPE* Generator)(struct XnModuleGeneratorInterface* pInterface);
170  void (XN_CALLBACK_TYPE* MapGenerator)(struct XnModuleMapGeneratorInterface* pInterface);
171  void (XN_CALLBACK_TYPE* Depth)(struct XnModuleDepthGeneratorInterface* pInterface);
172  void (XN_CALLBACK_TYPE* Image)(struct XnModuleImageGeneratorInterface* pInterface);
173  void (XN_CALLBACK_TYPE* IR)(struct XnModuleIRGeneratorInterface* pInterface);
174  void (XN_CALLBACK_TYPE* User)(struct XnModuleUserGeneratorInterface* pInterface);
175  void (XN_CALLBACK_TYPE* Hands)(struct XnModuleHandsGeneratorInterface* pInterace);
176  void (XN_CALLBACK_TYPE* Gesture)(struct XnModuleGestureGeneratorInterface* pInterface);
177  void (XN_CALLBACK_TYPE* Scene)(struct XnModuleSceneAnalyzerInterface* pInterface);
178  void (XN_CALLBACK_TYPE* Audio)(struct XnModuleAudioGeneratorInterface* pInterface);
179  void (XN_CALLBACK_TYPE* Recorder)(struct XnModuleRecorderInterface* pInterface);
180  void (XN_CALLBACK_TYPE* Player)(struct XnModulePlayerInterface* pInterface);
181  void (XN_CALLBACK_TYPE* Codec)(struct XnModuleCodecInterface* pInterface);
182  void (XN_CALLBACK_TYPE* Script)(struct XnModuleScriptNodeInterface* pInterface);
183 
184  void (XN_CALLBACK_TYPE* General)(void* pInterface);
185  } GetInterface;
186 
188 
190 {
191  XnStatus (XN_CALLBACK_TYPE* InitNotifications)(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie);
192  void (XN_CALLBACK_TYPE* StopNotifications)(XnModuleNodeHandle hInstance);
193 
195 
197 {
204  XnStatus (XN_CALLBACK_TYPE* SetLockState)(XnModuleNodeHandle hInstance, XnBool bLocked);
205 
211  XnBool (XN_CALLBACK_TYPE* GetLockState)(XnModuleNodeHandle hInstance);
212 
221  XnStatus (XN_CALLBACK_TYPE* RegisterToLockChange)
223  void* pCookie, XnCallbackHandle* phCallback);
224 
231  void (XN_CALLBACK_TYPE* UnregisterFromLockChange)
232  (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback);
233 
235 
237 {
243  XnStatus (XN_CALLBACK_TYPE* GetErrorState)(XnModuleNodeHandle hInstance);
244 
253  XnStatus (XN_CALLBACK_TYPE* RegisterToErrorStateChange)
255  void* pCookie, XnCallbackHandle* phCallback);
256 
263  void (XN_CALLBACK_TYPE* UnregisterFromErrorStateChange)
264  (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback);
265 
267 
269 {
281  XnStatus (XN_CALLBACK_TYPE* GetRange)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported);
282 
290  XnStatus (XN_CALLBACK_TYPE* Get)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnValue);
291 
299  XnStatus (XN_CALLBACK_TYPE* Set)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32 nValue);
300 
310  XnStatus (XN_CALLBACK_TYPE* RegisterToValueChange)
311  (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnModuleStateChangedHandler handler,
312  void* pCookie, XnCallbackHandle* phCallback);
313 
321  void (XN_CALLBACK_TYPE* UnregisterFromValueChange)
322  (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnCallbackHandle hCallback);
323 
325 
327 {
334  XnBool (XN_CALLBACK_TYPE* IsCapabilitySupported)(
335  XnModuleNodeHandle hInstance,
336  const XnChar* strCapabilityName
337  );
338 
346  XnStatus (XN_CALLBACK_TYPE* SetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue);
347  XnStatus (XN_CALLBACK_TYPE* SetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue);
348  XnStatus (XN_CALLBACK_TYPE* SetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue);
349  XnStatus (XN_CALLBACK_TYPE* SetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer);
350 
358  XnStatus (XN_CALLBACK_TYPE* GetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue);
359  XnStatus (XN_CALLBACK_TYPE* GetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue);
360  XnStatus (XN_CALLBACK_TYPE* GetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize);
361  XnStatus (XN_CALLBACK_TYPE* GetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer);
362 
367 
369 
371 {
383  XnStatus (XN_CALLBACK_TYPE* GetDeviceName)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
384 
396  XnStatus (XN_CALLBACK_TYPE* GetVendorSpecificData)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
397 
409  XnStatus (XN_CALLBACK_TYPE* GetSerialNumber)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
410 
412 
414 {
416 
418 
420 
422 {
429  XnStatus (XN_CALLBACK_TYPE* SetMirror)(XnModuleNodeHandle hInstance, XnBool bMirror);
430 
436  XnBool (XN_CALLBACK_TYPE* IsMirrored)(XnModuleNodeHandle hInstance);
437 
446  XnStatus (XN_CALLBACK_TYPE* RegisterToMirrorChange)
448  void* pCookie, XnCallbackHandle* phCallback);
449 
456  void (XN_CALLBACK_TYPE* UnregisterFromMirrorChange)
457  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
458 
460 
462 {
472  XnBool (XN_CALLBACK_TYPE* IsViewPointSupported)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
473 
480  XnStatus (XN_CALLBACK_TYPE* SetViewPoint)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
481 
488  XnBool (XN_CALLBACK_TYPE* IsViewPointAs)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
489 
495  XnStatus (XN_CALLBACK_TYPE* ResetViewPoint)(XnModuleNodeHandle hGenerator);
496 
505  XnStatus (XN_CALLBACK_TYPE* RegisterToViewPointChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
506 
513  void (XN_CALLBACK_TYPE* UnregisterFromViewPointChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
514 
516 
518 {
527  XnBool (XN_CALLBACK_TYPE* CanFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
528 
535  XnStatus (XN_CALLBACK_TYPE* FrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
536 
543  XnStatus (XN_CALLBACK_TYPE* StopFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
544 
551  XnBool (XN_CALLBACK_TYPE* IsFrameSyncedWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
552 
561  XnStatus (XN_CALLBACK_TYPE* RegisterToFrameSyncChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
562 
569  void (XN_CALLBACK_TYPE* UnregisterFromFrameSyncChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
570 
572 
575 {
580 
586  XnStatus (XN_CALLBACK_TYPE* StartGenerating)
587  (XnModuleNodeHandle hGenerator);
588 
594  XnBool (XN_CALLBACK_TYPE* IsGenerating)
595  (XnModuleNodeHandle hGenerator);
596 
602  void (XN_CALLBACK_TYPE* StopGenerating)
603  (XnModuleNodeHandle hGenerator);
604 
613  XnStatus (XN_CALLBACK_TYPE* RegisterToGenerationRunningChange)
615  void* pCookie, XnCallbackHandle* phCallback);
616 
623  void (XN_CALLBACK_TYPE* UnregisterFromGenerationRunningChange)
624  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
625 
633  XnStatus (XN_CALLBACK_TYPE* RegisterToNewDataAvailable)
635  void* pCookie, XnCallbackHandle* phCallback);
636 
643  void (XN_CALLBACK_TYPE* UnregisterFromNewDataAvailable)
644  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
645 
652  XnBool (XN_CALLBACK_TYPE* IsNewDataAvailable)
653  (XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp);
654 
661  XnStatus (XN_CALLBACK_TYPE* UpdateData)
662  (XnModuleNodeHandle hGenerator);
663 
669  XnUInt32 (XN_CALLBACK_TYPE* GetDataSize)(XnModuleNodeHandle hGenerator);
670 
676  XnUInt64 (XN_CALLBACK_TYPE* GetTimestamp)(XnModuleNodeHandle hGenerator);
677 
683  XnUInt32 (XN_CALLBACK_TYPE* GetFrameID)(XnModuleNodeHandle hGenerator);
684 
687  void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28)
689 
690  //Note: The GetData() function was added in version 1.0.0.28
696  const void* (XN_CALLBACK_TYPE* GetData)(XnModuleNodeHandle hGenerator);
697 
699 
701 {
702  /*
703  * Sets the output stream for the recorder module.
704  *
705  * @param hInstance [in] A handle to the instance.
706  * @param pStreamToken [in] A token that the recorder module must save for passing to later stream calls.
707  * @param pStream [in] The stream interface the recorder module must save for later stream calls.
708  */
709  XnStatus (XN_CALLBACK_TYPE* SetOutputStream)
710  (XnModuleNodeHandle hInstance, void *pStreamToken, XnRecorderOutputStreamInterface *pStream);
711 
715 
717 {
718  /*
719  * Sets the input stream for the player module
720  *
721  * @param hInstance [in] A handle to the instance.
722  * @param pStreamCookie [in] A cookie that the player module must save for passing to later stream calls.
723  * @param pStream [in] The stream interface the player module must save for later stream calls.
724  */
725  XnStatus (XN_CALLBACK_TYPE* SetInputStream)
726  (XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream);
727 
733  XnStatus (XN_CALLBACK_TYPE* ReadNext)(XnModuleNodeHandle hInstance);
734 
735  /*
736  * Sets the node notifications object to be used by the player. The player will use this object to
737  * notify about events it encounters in the stream that was set with @ref SetInputStream().
738  *
739  * @param hInstance [in] A handle to the instance.
740  * @param pNodeNotificationsCookie [in] A cookie that the player module must save for passing to node notification calls.
741  * @param pNodeNotifications [in] The node notifications interface that the player module will use to raise node notifications it finds in the stream.
742  */
743  XnStatus (XN_CALLBACK_TYPE* SetNodeNotifications)
744  (XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications);
745 
746  XnStatus (XN_CALLBACK_TYPE* SetRawNodeNotifications)
747  (XnModuleNodeHandle hInstance, void *pRawNodeNotificationsCookie, XnNodeNotifications *pRawNodeNotifications);
748 
749 
750  /*
751  * Determines whether the player repeats the played stream or not.
752  *
753  * @param bRepeat [in] If TRUE, repeat is set to be ON. If FALSE, repeat is set to be OFF.
754  */
755  XnStatus (XN_CALLBACK_TYPE* SetRepeat)
756  (XnModuleNodeHandle hInstance, XnBool bRepeat);
757 
758  XnStatus (XN_CALLBACK_TYPE* SeekToTimeStamp)
759  (XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin);
760 
761  XnStatus (XN_CALLBACK_TYPE* SeekToFrame)
762  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin);
763 
764  XnStatus (XN_CALLBACK_TYPE* TellTimestamp)
765  (XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp);
766 
767  XnStatus (XN_CALLBACK_TYPE* TellFrame)
768  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame);
769 
770  XnStatus (XN_CALLBACK_TYPE* GetNumFrames)
771  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames);
772 
773  const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)
774  (XnModuleNodeHandle hInstance);
775 
776  XnBool (XN_CALLBACK_TYPE* IsEOF)
777  (XnModuleNodeHandle hInstance);
778 
787  XnStatus (XN_CALLBACK_TYPE* RegisterToEndOfFileReached)
789  void* pCookie, XnCallbackHandle* phCallback);
790 
797  void (XN_CALLBACK_TYPE* UnregisterFromEndOfFileReached)
798  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
799 
801  void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28)
802 
804 
806 {
813  XnStatus (XN_CALLBACK_TYPE* SetCropping)(XnModuleNodeHandle hGenerator, const XnCropping* pCropping);
814 
821  XnStatus (XN_CALLBACK_TYPE* GetCropping)(XnModuleNodeHandle hGenerator, XnCropping* pCropping);
822 
831  XnStatus (XN_CALLBACK_TYPE* RegisterToCroppingChange)
833  void* pCookie, XnCallbackHandle* phCallback);
834 
841  void (XN_CALLBACK_TYPE* UnregisterFromCroppingChange)
842  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
843 
845 
847 {
854  XnStatus (XN_CALLBACK_TYPE* SetPowerLineFrequency)(XnModuleNodeHandle hGenerator, XnPowerLineFrequency nFrequency);
855 
862 
871  XnStatus (XN_CALLBACK_TYPE* RegisterToPowerLineFrequencyChange)
873  void* pCookie, XnCallbackHandle* phCallback);
874 
881  void (XN_CALLBACK_TYPE* UnregisterFromPowerLineFrequencyChange)
882  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
883 
885 
887 {
892 
899  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedMapOutputModesCount)
900  (XnModuleNodeHandle hGenerator);
901 
911  XnStatus (XN_CALLBACK_TYPE* GetSupportedMapOutputModes)
912  (XnModuleNodeHandle hGenerator,
913  XnMapOutputMode* aModes, XnUInt32* pnCount);
914 
921  XnStatus (XN_CALLBACK_TYPE* SetMapOutputMode)
922  (XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode);
923 
930  XnStatus (XN_CALLBACK_TYPE* GetMapOutputMode)
931  (XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode);
932 
941  XnStatus (XN_CALLBACK_TYPE* RegisterToMapOutputModeChange)
943  void* pCookie, XnCallbackHandle* phCallback);
944 
951  void (XN_CALLBACK_TYPE* UnregisterFromMapOutputModeChange)
952  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
953 
955 
956  // NOTE: GetBytesPerPixel() was added in OpenNI 1.0.0.30
962  XnUInt32 (XN_CALLBACK_TYPE* GetBytesPerPixel)
963  (XnModuleNodeHandle hGenerator);
964 
966 
968 
973 {
979  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedUserPositionsCount)
980  (XnModuleNodeHandle hGenerator);
981 
989  XnStatus (XN_CALLBACK_TYPE* SetUserPosition)(
990  XnModuleNodeHandle hGenerator,
991  XnUInt32 nIndex,
992  const XnBoundingBox3D* pPosition);
993 
1001  XnStatus (XN_CALLBACK_TYPE* GetUserPosition)
1002  (XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition);
1003 
1012  XnStatus (XN_CALLBACK_TYPE* RegisterToUserPositionChange)
1014  void* pCookie, XnCallbackHandle* phCallback);
1015 
1022  void (XN_CALLBACK_TYPE* UnregisterFromUserPositionChange)
1023  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1024 
1026 
1029 {
1034 
1040  XnDepthPixel* (XN_CALLBACK_TYPE* GetDepthMap)
1041  (XnModuleNodeHandle hGenerator);
1042 
1048  XnDepthPixel (XN_CALLBACK_TYPE* GetDeviceMaxDepth)
1049  (XnModuleNodeHandle hGenerator);
1050 
1059  void (XN_CALLBACK_TYPE* GetFieldOfView)(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV);
1060 
1070  void* pCookie, XnCallbackHandle* phCallback);
1071 
1078  void (XN_CALLBACK_TYPE* UnregisterFromFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1079 
1084 
1086 
1089 {
1094 
1096  XnUInt8* (XN_CALLBACK_TYPE* GetImageMap)(
1097  XnModuleNodeHandle hGenerator
1098  );
1099 
1106  XnBool (XN_CALLBACK_TYPE* IsPixelFormatSupported)(XnModuleNodeHandle hGenerator, XnPixelFormat Format);
1107 
1114  XnStatus (XN_CALLBACK_TYPE* SetPixelFormat)(XnModuleNodeHandle hGenerator, XnPixelFormat Format);
1115 
1121  XnPixelFormat (XN_CALLBACK_TYPE* GetPixelFormat)(XnModuleNodeHandle hGenerator);
1122 
1132  void* pCookie, XnCallbackHandle* phCallback);
1133 
1140  void (XN_CALLBACK_TYPE* UnregisterFromPixelFormatChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1141 
1143 
1146 {
1151 
1153  XnIRPixel* (XN_CALLBACK_TYPE* GetIRMap)(
1154  XnModuleNodeHandle hGenerator
1155  );
1156 
1158 
1161 {
1163 
1164  XnStatus (XN_CALLBACK_TYPE* AddGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea);
1165  XnStatus (XN_CALLBACK_TYPE* RemoveGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture);
1166  XnStatus (XN_CALLBACK_TYPE* GetActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures);
1167  XnStatus (XN_CALLBACK_TYPE* EnumerateGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures);
1168  XnBool (XN_CALLBACK_TYPE* IsGestureAvailable)(XnModuleNodeHandle hInstance, const XnChar* strGesture);
1169  XnBool (XN_CALLBACK_TYPE* IsGestureProgressSupported)(XnModuleNodeHandle hGenerator, const XnChar* strGesture);
1170  XnStatus (XN_CALLBACK_TYPE* RegisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1171  void (XN_CALLBACK_TYPE* UnregisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1172  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
1173  void (XN_CALLBACK_TYPE* UnregisterFromGestureChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1174 
1175  XnStatus (XN_CALLBACK_TYPE* GetAllActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
1176  XnStatus (XN_CALLBACK_TYPE* EnumerateAllGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
1177 
1178  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnModuleGestureIntermediateStageCompleted GestureIntermediateStageCompletedCB, void* pCookie, XnCallbackHandle* phCallback);
1180  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnModuleGestureReadyForNextIntermediateStage ReadyForNextIntermediateStageCB, void* pCookie, XnCallbackHandle* phCallback);
1182 
1184 
1187 {
1189 
1190  const XnLabel* (XN_CALLBACK_TYPE* GetLabelMap)(XnModuleNodeHandle hGenerator);
1191  XnStatus (XN_CALLBACK_TYPE* GetFloor)(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane);
1193 
1198 {
1199  XnStatus (XN_CALLBACK_TYPE* RegisterToHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnModuleHandTouchingFOVEdge, void* pCookie, XnCallbackHandle* phCallback);
1200  void (XN_CALLBACK_TYPE* UnregisterFromHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1202 
1204 {
1206 
1207  XnStatus (XN_CALLBACK_TYPE* RegisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback);
1208  void (XN_CALLBACK_TYPE* UnregisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1209  XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1210  XnStatus (XN_CALLBACK_TYPE* StopTrackingAll)(XnModuleNodeHandle hGenerator);
1211  XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition);
1212  XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor);
1213 
1215 
1217 
1222 {
1223  XnBool (XN_CALLBACK_TYPE* IsJointAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint);
1224  XnBool (XN_CALLBACK_TYPE* IsProfileAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile);
1225  XnStatus (XN_CALLBACK_TYPE* SetSkeletonProfile)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile);
1226  XnStatus (XN_CALLBACK_TYPE* SetJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState);
1227  XnBool (XN_CALLBACK_TYPE* IsJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint);
1228  XnStatus (XN_CALLBACK_TYPE* RegisterToJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
1229  void (XN_CALLBACK_TYPE* UnregisterFromJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1230  XnStatus (XN_CALLBACK_TYPE* EnumerateActiveJoints)(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints);
1234  XnBool (XN_CALLBACK_TYPE* IsTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1235  XnBool (XN_CALLBACK_TYPE* IsCalibrated)(XnModuleNodeHandle hGenerator, XnUserID user);
1236  XnBool (XN_CALLBACK_TYPE* IsCalibrating)(XnModuleNodeHandle hGenerator, XnUserID user);
1237  XnStatus (XN_CALLBACK_TYPE* RequestCalibration)(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce);
1238  XnStatus (XN_CALLBACK_TYPE* AbortCalibration)(XnModuleNodeHandle hGenerator, XnUserID user);
1239  XnStatus (XN_CALLBACK_TYPE* SaveCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot);
1240  XnStatus (XN_CALLBACK_TYPE* LoadCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot);
1241  XnStatus (XN_CALLBACK_TYPE* ClearCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot);
1242  XnBool (XN_CALLBACK_TYPE* IsCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot);
1243  XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1244  XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1245  XnStatus (XN_CALLBACK_TYPE* Reset)(XnModuleNodeHandle hGenerator, XnUserID user);
1246  XnBool (XN_CALLBACK_TYPE* NeedPoseForCalibration)(XnModuleNodeHandle hGenerator);
1247  XnStatus (XN_CALLBACK_TYPE* GetCalibrationPose)(XnModuleNodeHandle hGenerator, XnChar* strPose);
1248  XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor);
1249  XnStatus (XN_CALLBACK_TYPE* RegisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback);
1250  void (XN_CALLBACK_TYPE* UnregisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1251 
1252  XnStatus (XN_CALLBACK_TYPE* SaveCalibrationDataToFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName);
1253  XnStatus (XN_CALLBACK_TYPE* LoadCalibrationDataFromFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName);
1254 
1255  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnModuleCalibrationInProgress CalibrationInProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1256  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1257  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationComplete)(XnModuleNodeHandle hGenerator, XnModuleCalibrationComplete CalibrationCompleteCB, void* pCookie, XnCallbackHandle* phCallback);
1258  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationComplete)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1259 
1260  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationStart)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback);
1261  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationStart)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1263 
1265 {
1266  XnUInt32 (XN_CALLBACK_TYPE* GetNumberOfPoses)(XnModuleNodeHandle hGenerator);
1267  XnStatus (XN_CALLBACK_TYPE* GetAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses);
1268  XnStatus (XN_CALLBACK_TYPE* StartPoseDetection)(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user);
1269  XnStatus (XN_CALLBACK_TYPE* StopPoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user);
1270  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseCallbacks)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback StartPoseCB, XnModulePoseDetectionCallback EndCB, void* pCookie, XnCallbackHandle* phCallback);
1271  void (XN_CALLBACK_TYPE* UnregisterFromPoseCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1272 
1273  XnStatus (XN_CALLBACK_TYPE* GetAllAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses);
1274 
1275  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionInProgressCallback PoseProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1276  void (XN_CALLBACK_TYPE* UnregisterFromPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1277 
1278  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetected)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback);
1279  void (XN_CALLBACK_TYPE* UnregisterFromPoseDetected)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1280  XnStatus (XN_CALLBACK_TYPE* RegisterToOutOfPose)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback);
1281  void (XN_CALLBACK_TYPE* UnregisterFromOutOfPose)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1283 
1286 {
1288 
1289  XnUInt16 (XN_CALLBACK_TYPE* GetNumberOfUsers)(XnModuleNodeHandle hGenerator);
1290  XnStatus (XN_CALLBACK_TYPE* GetUsers)(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers);
1291  XnStatus (XN_CALLBACK_TYPE* GetCoM)(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM);
1292  XnStatus (XN_CALLBACK_TYPE* GetUserPixels)(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene);
1293  XnStatus (XN_CALLBACK_TYPE* RegisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback);
1294  void (XN_CALLBACK_TYPE* UnregisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1295 
1304 
1305  XnStatus (XN_CALLBACK_TYPE* RegisterToUserExit)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserExitCB, void* pCookie, XnCallbackHandle* phCallback);
1306  void (XN_CALLBACK_TYPE* UnregisterFromUserExit)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1307  XnStatus (XN_CALLBACK_TYPE* RegisterToUserReEnter)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserReEnterCB, void* pCookie, XnCallbackHandle* phCallback);
1308  void (XN_CALLBACK_TYPE* UnregisterFromUserReEnter)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1309 
1311 
1314 {
1316 
1317  XnUChar* (XN_CALLBACK_TYPE* GetAudioBuffer)(XnModuleNodeHandle hGenerator);
1318  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedWaveOutputModesCount)(XnModuleNodeHandle hGenerator);
1319  XnStatus (XN_CALLBACK_TYPE* GetSupportedWaveOutputModes)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount);
1320  XnStatus (XN_CALLBACK_TYPE* SetWaveOutputMode)(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* OutputMode);
1321  XnStatus (XN_CALLBACK_TYPE* GetWaveOutputMode)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* OutputMode);
1323  void* pCookie, XnCallbackHandle* phCallback);
1324  void (XN_CALLBACK_TYPE* UnregisterFromWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1325 
1327 
1329 {
1331 
1332  XnCodecID (XN_CALLBACK_TYPE* GetCodecID)(XnModuleNodeHandle hCodec);
1333  XnStatus (XN_CALLBACK_TYPE* Init)(XnModuleNodeHandle hCodec, XnNodeHandle hNode);
1334  XnStatus (XN_CALLBACK_TYPE* CompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
1335  XnStatus (XN_CALLBACK_TYPE* DecompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
1336 
1338 
1340 {
1342 
1343  const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)(XnModuleNodeHandle hScript);
1344  XnStatus (XN_CALLBACK_TYPE* LoadScriptFromFile)(XnModuleNodeHandle hScript, const XnChar* strFileName);
1345  XnStatus (XN_CALLBACK_TYPE* LoadScriptFromString)(XnModuleNodeHandle hScript, const XnChar* strScript);
1346  XnStatus (XN_CALLBACK_TYPE* Run)(XnModuleNodeHandle hScript, XnNodeInfoList* pCreatedNodes, XnEnumerationErrors* pErrors);
1347 
1349 
1350 #endif // __XN_MODULE_INTERFACE_H__