OpenNI 1.5.4
XnModuleInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2 * *
3 * OpenNI 1.x 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 //---------------------------------------------------------------------------
58 
59 //---------------------------------------------------------------------------
60 // Types
61 //---------------------------------------------------------------------------
62 
63 typedef void (XN_CALLBACK_TYPE* XnModuleGetExportedInterfacePtr)(XnModuleExportedProductionNodeInterface* pInterface);
64 typedef XnStatus (XN_C_DECL* XnModuleLoadPtr)();
65 typedef void (XN_C_DECL* XnModuleUnloadPtr)();
66 typedef XnUInt32 (XN_C_DECL* XnModuleGetExportedNodesCountPtr)();
67 typedef XnStatus (XN_C_DECL* XnModuleGetExportedNodesEntryPointsPtr)(XnModuleGetExportedInterfacePtr* aEntryPoints, XnUInt32 nCount);
68 typedef void (XN_C_DECL* XnModuleGetOpenNIVersionPtr)(XnVersion* pVersion);
69 
71 {
78 
80 typedef void (XN_CALLBACK_TYPE* XnModuleStateChangedHandler)(void* pCookie);
81 
82 // User
83 typedef void (XN_CALLBACK_TYPE* XnModuleUserHandler)(XnUserID user, void* pCookie);
84 
85 // Hand touching FOV edge
86 typedef void (XN_CALLBACK_TYPE* XnModuleHandTouchingFOVEdge)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie);
87 
88 // UI
89 typedef void (XN_CALLBACK_TYPE* XnModuleHandCreate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
90 typedef void (XN_CALLBACK_TYPE* XnModuleHandUpdate)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
91 typedef void (XN_CALLBACK_TYPE* XnModuleHandDestroy)(XnUserID user, XnFloat fTime, void* pCookie);
92 
93 // Gesture Module
94 typedef void (XN_CALLBACK_TYPE* XnModuleGestureRecognized)(const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie);
95 typedef void (XN_CALLBACK_TYPE* XnModuleGestureProgress)(const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie);
96 typedef void (XN_CALLBACK_TYPE* XnModuleGestureIntermediateStageCompleted)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
97 typedef void (XN_CALLBACK_TYPE* XnModuleGestureReadyForNextIntermediateStage)(const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
98 
99 // Skeleton
100 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationStart)(XnUserID user, void* pCookie);
101 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationEnd)(XnUserID user, XnBool bSuccess, void* pCookie);
102 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationInProgress)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
103 typedef void (XN_CALLBACK_TYPE* XnModuleCalibrationComplete)(XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
104 
105 // Pose Detection
106 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionCallback)(const XnChar* strPose, XnUserID user, void* pCookie);
107 typedef void (XN_CALLBACK_TYPE* XnModulePoseDetectionInProgressCallback)(const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseError, void* pCookie);
108 
110 {
116  void (XN_CALLBACK_TYPE* GetDescription)
118 
126  XnStatus (XN_CALLBACK_TYPE* EnumerateProductionTrees)
127  (XnContext* pContext,
128  XnNodeInfoList* pNodesList,
129  XnEnumerationErrors* pErrors);
130 
141  XnStatus (XN_CALLBACK_TYPE* Create)
142  (XnContext* pContext,
143  const XnChar* strInstanceName,
144  const XnChar* strCreationInfo,
145  XnNodeInfoList* pNeededNodes,
146  const XnChar* strConfigurationDir,
147  XnModuleNodeHandle* phInstance);
148 
154  void (XN_CALLBACK_TYPE* Destroy)
155  (XnModuleNodeHandle hInstance);
156 
164  union
165  {
166  void (XN_CALLBACK_TYPE* ProductionNode)(struct XnModuleProductionNodeInterface* pInterface);
167  void (XN_CALLBACK_TYPE* Device)(struct XnModuleDeviceInterface* pInterface);
168  void (XN_CALLBACK_TYPE* Generator)(struct XnModuleGeneratorInterface* pInterface);
169  void (XN_CALLBACK_TYPE* MapGenerator)(struct XnModuleMapGeneratorInterface* pInterface);
170  void (XN_CALLBACK_TYPE* Depth)(struct XnModuleDepthGeneratorInterface* pInterface);
171  void (XN_CALLBACK_TYPE* Image)(struct XnModuleImageGeneratorInterface* pInterface);
172  void (XN_CALLBACK_TYPE* IR)(struct XnModuleIRGeneratorInterface* pInterface);
173  void (XN_CALLBACK_TYPE* User)(struct XnModuleUserGeneratorInterface* pInterface);
174  void (XN_CALLBACK_TYPE* Hands)(struct XnModuleHandsGeneratorInterface* pInterace);
175  void (XN_CALLBACK_TYPE* Gesture)(struct XnModuleGestureGeneratorInterface* pInterface);
176  void (XN_CALLBACK_TYPE* Scene)(struct XnModuleSceneAnalyzerInterface* pInterface);
177  void (XN_CALLBACK_TYPE* Audio)(struct XnModuleAudioGeneratorInterface* pInterface);
178  void (XN_CALLBACK_TYPE* Recorder)(struct XnModuleRecorderInterface* pInterface);
179  void (XN_CALLBACK_TYPE* Player)(struct XnModulePlayerInterface* pInterface);
180  void (XN_CALLBACK_TYPE* Codec)(struct XnModuleCodecInterface* pInterface);
181  void (XN_CALLBACK_TYPE* Script)(struct XnModuleScriptNodeInterface* pInterface);
182 
183  void (XN_CALLBACK_TYPE* General)(void* pInterface);
184  } GetInterface;
185 
187 
189 {
190  XnStatus (XN_CALLBACK_TYPE* InitNotifications)(XnModuleNodeHandle hInstance, XnNodeNotifications* pNotifications, void* pCookie);
191  void (XN_CALLBACK_TYPE* StopNotifications)(XnModuleNodeHandle hInstance);
192 
194 
196 {
203  XnStatus (XN_CALLBACK_TYPE* SetLockState)(XnModuleNodeHandle hInstance, XnBool bLocked);
204 
210  XnBool (XN_CALLBACK_TYPE* GetLockState)(XnModuleNodeHandle hInstance);
211 
220  XnStatus (XN_CALLBACK_TYPE* RegisterToLockChange)
222  void* pCookie, XnCallbackHandle* phCallback);
223 
230  void (XN_CALLBACK_TYPE* UnregisterFromLockChange)
231  (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback);
232 
234 
236 {
242  XnStatus (XN_CALLBACK_TYPE* GetErrorState)(XnModuleNodeHandle hInstance);
243 
252  XnStatus (XN_CALLBACK_TYPE* RegisterToErrorStateChange)
254  void* pCookie, XnCallbackHandle* phCallback);
255 
262  void (XN_CALLBACK_TYPE* UnregisterFromErrorStateChange)
263  (XnModuleNodeHandle hInstance, XnCallbackHandle hCallback);
264 
266 
268 {
280  XnStatus (XN_CALLBACK_TYPE* GetRange)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported);
281 
289  XnStatus (XN_CALLBACK_TYPE* Get)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32* pnValue);
290 
298  XnStatus (XN_CALLBACK_TYPE* Set)(XnModuleNodeHandle hGenerator, const XnChar* strCap, XnInt32 nValue);
299 
309  XnStatus (XN_CALLBACK_TYPE* RegisterToValueChange)
310  (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnModuleStateChangedHandler handler,
311  void* pCookie, XnCallbackHandle* phCallback);
312 
320  void (XN_CALLBACK_TYPE* UnregisterFromValueChange)
321  (XnModuleNodeHandle hGenerator, const XnChar* strCap, XnCallbackHandle hCallback);
322 
324 
326 {
333  XnBool (XN_CALLBACK_TYPE* IsCapabilitySupported)(
334  XnModuleNodeHandle hInstance,
335  const XnChar* strCapabilityName
336  );
337 
345  XnStatus (XN_CALLBACK_TYPE* SetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue);
346  XnStatus (XN_CALLBACK_TYPE* SetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble dValue);
347  XnStatus (XN_CALLBACK_TYPE* SetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, const XnChar* strValue);
348  XnStatus (XN_CALLBACK_TYPE* SetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer);
349 
357  XnStatus (XN_CALLBACK_TYPE* GetIntProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue);
358  XnStatus (XN_CALLBACK_TYPE* GetRealProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue);
359  XnStatus (XN_CALLBACK_TYPE* GetStringProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize);
360  XnStatus (XN_CALLBACK_TYPE* GetGeneralProperty)(XnModuleNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer);
361 
366 
368 
370 {
382  XnStatus (XN_CALLBACK_TYPE* GetDeviceName)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
383 
395  XnStatus (XN_CALLBACK_TYPE* GetVendorSpecificData)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
396 
408  XnStatus (XN_CALLBACK_TYPE* GetSerialNumber)(XnModuleNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize);
409 
411 
413 {
415 
417 
419 
421 {
428  XnStatus (XN_CALLBACK_TYPE* SetMirror)(XnModuleNodeHandle hInstance, XnBool bMirror);
429 
435  XnBool (XN_CALLBACK_TYPE* IsMirrored)(XnModuleNodeHandle hInstance);
436 
445  XnStatus (XN_CALLBACK_TYPE* RegisterToMirrorChange)
447  void* pCookie, XnCallbackHandle* phCallback);
448 
455  void (XN_CALLBACK_TYPE* UnregisterFromMirrorChange)
456  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
457 
459 
461 {
471  XnBool (XN_CALLBACK_TYPE* IsViewPointSupported)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
472 
479  XnStatus (XN_CALLBACK_TYPE* SetViewPoint)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
480 
487  XnBool (XN_CALLBACK_TYPE* IsViewPointAs)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
488 
494  XnStatus (XN_CALLBACK_TYPE* ResetViewPoint)(XnModuleNodeHandle hGenerator);
495 
504  XnStatus (XN_CALLBACK_TYPE* RegisterToViewPointChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
505 
512  void (XN_CALLBACK_TYPE* UnregisterFromViewPointChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
513 
515 
517 {
526  XnBool (XN_CALLBACK_TYPE* CanFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
527 
534  XnStatus (XN_CALLBACK_TYPE* FrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
535 
542  XnStatus (XN_CALLBACK_TYPE* StopFrameSyncWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
543 
550  XnBool (XN_CALLBACK_TYPE* IsFrameSyncedWith)(XnModuleNodeHandle hGenerator, XnNodeHandle hOther);
551 
560  XnStatus (XN_CALLBACK_TYPE* RegisterToFrameSyncChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
561 
568  void (XN_CALLBACK_TYPE* UnregisterFromFrameSyncChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
569 
571 
574 {
579 
585  XnStatus (XN_CALLBACK_TYPE* StartGenerating)
586  (XnModuleNodeHandle hGenerator);
587 
593  XnBool (XN_CALLBACK_TYPE* IsGenerating)
594  (XnModuleNodeHandle hGenerator);
595 
601  void (XN_CALLBACK_TYPE* StopGenerating)
602  (XnModuleNodeHandle hGenerator);
603 
612  XnStatus (XN_CALLBACK_TYPE* RegisterToGenerationRunningChange)
614  void* pCookie, XnCallbackHandle* phCallback);
615 
622  void (XN_CALLBACK_TYPE* UnregisterFromGenerationRunningChange)
623  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
624 
632  XnStatus (XN_CALLBACK_TYPE* RegisterToNewDataAvailable)
634  void* pCookie, XnCallbackHandle* phCallback);
635 
642  void (XN_CALLBACK_TYPE* UnregisterFromNewDataAvailable)
643  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
644 
651  XnBool (XN_CALLBACK_TYPE* IsNewDataAvailable)
652  (XnModuleNodeHandle hGenerator, XnUInt64* pnTimestamp);
653 
660  XnStatus (XN_CALLBACK_TYPE* UpdateData)
661  (XnModuleNodeHandle hGenerator);
662 
668  XnUInt32 (XN_CALLBACK_TYPE* GetDataSize)(XnModuleNodeHandle hGenerator);
669 
675  XnUInt64 (XN_CALLBACK_TYPE* GetTimestamp)(XnModuleNodeHandle hGenerator);
676 
682  XnUInt32 (XN_CALLBACK_TYPE* GetFrameID)(XnModuleNodeHandle hGenerator);
683 
686  void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28)
688 
689  //Note: The GetData() function was added in version 1.0.0.28
695  const void* (XN_CALLBACK_TYPE* GetData)(XnModuleNodeHandle hGenerator);
696 
698 
700 {
701  /*
702  * Sets the output stream for the recorder module.
703  *
704  * @param hInstance [in] A handle to the instance.
705  * @param pStreamToken [in] A token that the recorder module must save for passing to later stream calls.
706  * @param pStream [in] The stream interface the recorder module must save for later stream calls.
707  */
708  XnStatus (XN_CALLBACK_TYPE* SetOutputStream)
709  (XnModuleNodeHandle hInstance, void *pStreamToken, XnRecorderOutputStreamInterface *pStream);
710 
714 
716 {
717  /*
718  * Sets the input stream for the player module
719  *
720  * @param hInstance [in] A handle to the instance.
721  * @param pStreamCookie [in] A cookie that the player module must save for passing to later stream calls.
722  * @param pStream [in] The stream interface the player module must save for later stream calls.
723  */
724  XnStatus (XN_CALLBACK_TYPE* SetInputStream)
725  (XnModuleNodeHandle hInstance, void *pStreamCookie, XnPlayerInputStreamInterface *pStream);
726 
732  XnStatus (XN_CALLBACK_TYPE* ReadNext)(XnModuleNodeHandle hInstance);
733 
734  /*
735  * Sets the node notifications object to be used by the player. The player will use this object to
736  * notify about events it encounters in the stream that was set with @ref SetInputStream().
737  *
738  * @param hInstance [in] A handle to the instance.
739  * @param pNodeNotificationsCookie [in] A cookie that the player module must save for passing to node notification calls.
740  * @param pNodeNotifications [in] The node notifications interface that the player module will use to raise node notifications it finds in the stream.
741  */
742  XnStatus (XN_CALLBACK_TYPE* SetNodeNotifications)
743  (XnModuleNodeHandle hInstance, void *pNodeNotificationsCookie, XnNodeNotifications *pNodeNotifications);
744 
745  XnStatus (XN_CALLBACK_TYPE* SetRawNodeNotifications)
746  (XnModuleNodeHandle hInstance, void *pRawNodeNotificationsCookie, XnNodeNotifications *pRawNodeNotifications);
747 
748 
749  /*
750  * Determines whether the player repeats the played stream or not.
751  *
752  * @param bRepeat [in] If TRUE, repeat is set to be ON. If FALSE, repeat is set to be OFF.
753  */
754  XnStatus (XN_CALLBACK_TYPE* SetRepeat)
755  (XnModuleNodeHandle hInstance, XnBool bRepeat);
756 
757  XnStatus (XN_CALLBACK_TYPE* SeekToTimeStamp)
758  (XnModuleNodeHandle hInstance, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin);
759 
760  XnStatus (XN_CALLBACK_TYPE* SeekToFrame)
761  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin);
762 
763  XnStatus (XN_CALLBACK_TYPE* TellTimestamp)
764  (XnModuleNodeHandle hInstance, XnUInt64* pnTimestamp);
765 
766  XnStatus (XN_CALLBACK_TYPE* TellFrame)
767  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrame);
768 
769  XnStatus (XN_CALLBACK_TYPE* GetNumFrames)
770  (XnModuleNodeHandle hInstance, const XnChar* strNodeName, XnUInt32* pnFrames);
771 
772  const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)
773  (XnModuleNodeHandle hInstance);
774 
775  XnBool (XN_CALLBACK_TYPE* IsEOF)
776  (XnModuleNodeHandle hInstance);
777 
786  XnStatus (XN_CALLBACK_TYPE* RegisterToEndOfFileReached)
788  void* pCookie, XnCallbackHandle* phCallback);
789 
796  void (XN_CALLBACK_TYPE* UnregisterFromEndOfFileReached)
797  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
798 
800  void* pObsolete1; // used to be pSeekingInterface (removed in 1.0.0.28)
801 
803 
805 {
812  XnStatus (XN_CALLBACK_TYPE* SetCropping)(XnModuleNodeHandle hGenerator, const XnCropping* pCropping);
813 
820  XnStatus (XN_CALLBACK_TYPE* GetCropping)(XnModuleNodeHandle hGenerator, XnCropping* pCropping);
821 
830  XnStatus (XN_CALLBACK_TYPE* RegisterToCroppingChange)
832  void* pCookie, XnCallbackHandle* phCallback);
833 
840  void (XN_CALLBACK_TYPE* UnregisterFromCroppingChange)
841  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
842 
844 
846 {
853  XnStatus (XN_CALLBACK_TYPE* SetPowerLineFrequency)(XnModuleNodeHandle hGenerator, XnPowerLineFrequency nFrequency);
854 
861 
870  XnStatus (XN_CALLBACK_TYPE* RegisterToPowerLineFrequencyChange)
872  void* pCookie, XnCallbackHandle* phCallback);
873 
880  void (XN_CALLBACK_TYPE* UnregisterFromPowerLineFrequencyChange)
881  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
882 
884 
886 {
891 
898  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedMapOutputModesCount)
899  (XnModuleNodeHandle hGenerator);
900 
910  XnStatus (XN_CALLBACK_TYPE* GetSupportedMapOutputModes)
911  (XnModuleNodeHandle hGenerator,
912  XnMapOutputMode* aModes, XnUInt32* pnCount);
913 
920  XnStatus (XN_CALLBACK_TYPE* SetMapOutputMode)
921  (XnModuleNodeHandle hGenerator, const XnMapOutputMode* pOutputMode);
922 
929  XnStatus (XN_CALLBACK_TYPE* GetMapOutputMode)
930  (XnModuleNodeHandle hGenerator, XnMapOutputMode* pOutputMode);
931 
940  XnStatus (XN_CALLBACK_TYPE* RegisterToMapOutputModeChange)
942  void* pCookie, XnCallbackHandle* phCallback);
943 
950  void (XN_CALLBACK_TYPE* UnregisterFromMapOutputModeChange)
951  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
952 
954 
955  // NOTE: GetBytesPerPixel() was added in OpenNI 1.0.0.30
961  XnUInt32 (XN_CALLBACK_TYPE* GetBytesPerPixel)
962  (XnModuleNodeHandle hGenerator);
963 
965 
967 
972 {
978  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedUserPositionsCount)
979  (XnModuleNodeHandle hGenerator);
980 
988  XnStatus (XN_CALLBACK_TYPE* SetUserPosition)(
989  XnModuleNodeHandle hGenerator,
990  XnUInt32 nIndex,
991  const XnBoundingBox3D* pPosition);
992 
1000  XnStatus (XN_CALLBACK_TYPE* GetUserPosition)
1001  (XnModuleNodeHandle hGenerator, XnUInt32 nIndex, XnBoundingBox3D* pPosition);
1002 
1011  XnStatus (XN_CALLBACK_TYPE* RegisterToUserPositionChange)
1013  void* pCookie, XnCallbackHandle* phCallback);
1014 
1021  void (XN_CALLBACK_TYPE* UnregisterFromUserPositionChange)
1022  (XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1023 
1025 
1028 {
1033 
1039  XnDepthPixel* (XN_CALLBACK_TYPE* GetDepthMap)
1040  (XnModuleNodeHandle hGenerator);
1041 
1047  XnDepthPixel (XN_CALLBACK_TYPE* GetDeviceMaxDepth)
1048  (XnModuleNodeHandle hGenerator);
1049 
1058  void (XN_CALLBACK_TYPE* GetFieldOfView)(XnModuleNodeHandle hGenerator, XnFieldOfView* pFOV);
1059 
1069  void* pCookie, XnCallbackHandle* phCallback);
1070 
1077  void (XN_CALLBACK_TYPE* UnregisterFromFieldOfViewChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1078 
1083 
1085 
1088 {
1093 
1095  XnUInt8* (XN_CALLBACK_TYPE* GetImageMap)(
1096  XnModuleNodeHandle hGenerator
1097  );
1098 
1105  XnBool (XN_CALLBACK_TYPE* IsPixelFormatSupported)(XnModuleNodeHandle hGenerator, XnPixelFormat Format);
1106 
1113  XnStatus (XN_CALLBACK_TYPE* SetPixelFormat)(XnModuleNodeHandle hGenerator, XnPixelFormat Format);
1114 
1120  XnPixelFormat (XN_CALLBACK_TYPE* GetPixelFormat)(XnModuleNodeHandle hGenerator);
1121 
1131  void* pCookie, XnCallbackHandle* phCallback);
1132 
1139  void (XN_CALLBACK_TYPE* UnregisterFromPixelFormatChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1140 
1142 
1145 {
1150 
1152  XnIRPixel* (XN_CALLBACK_TYPE* GetIRMap)(
1153  XnModuleNodeHandle hGenerator
1154  );
1155 
1157 
1160 {
1162 
1163  XnStatus (XN_CALLBACK_TYPE* AddGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture, XnBoundingBox3D* pArea);
1164  XnStatus (XN_CALLBACK_TYPE* RemoveGesture)(XnModuleNodeHandle hGenerator, const XnChar* strGesture);
1165  XnStatus (XN_CALLBACK_TYPE* GetActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures);
1166  XnStatus (XN_CALLBACK_TYPE* EnumerateGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt16* nGestures);
1167  XnBool (XN_CALLBACK_TYPE* IsGestureAvailable)(XnModuleNodeHandle hInstance, const XnChar* strGesture);
1168  XnBool (XN_CALLBACK_TYPE* IsGestureProgressSupported)(XnModuleNodeHandle hGenerator, const XnChar* strGesture);
1169  XnStatus (XN_CALLBACK_TYPE* RegisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnModuleGestureRecognized RecognizedCB, XnModuleGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1170  void (XN_CALLBACK_TYPE* UnregisterGestureCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1171  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
1172  void (XN_CALLBACK_TYPE* UnregisterFromGestureChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1173 
1174  XnStatus (XN_CALLBACK_TYPE* GetAllActiveGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
1175  XnStatus (XN_CALLBACK_TYPE* EnumerateAllGestures)(XnModuleNodeHandle hGenerator, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
1176 
1177  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureIntermediateStageCompleted)(XnModuleNodeHandle hGenerator, XnModuleGestureIntermediateStageCompleted GestureIntermediateStageCompletedCB, void* pCookie, XnCallbackHandle* phCallback);
1179  XnStatus (XN_CALLBACK_TYPE* RegisterToGestureReadyForNextIntermediateStage)(XnModuleNodeHandle hGenerator, XnModuleGestureReadyForNextIntermediateStage ReadyForNextIntermediateStageCB, void* pCookie, XnCallbackHandle* phCallback);
1181 
1183 
1186 {
1188 
1189  const XnLabel* (XN_CALLBACK_TYPE* GetLabelMap)(XnModuleNodeHandle hGenerator);
1190  XnStatus (XN_CALLBACK_TYPE* GetFloor)(XnModuleNodeHandle hGenerator, XnPlane3D* pPlane);
1192 
1197 {
1198  XnStatus (XN_CALLBACK_TYPE* RegisterToHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnModuleHandTouchingFOVEdge, void* pCookie, XnCallbackHandle* phCallback);
1199  void (XN_CALLBACK_TYPE* UnregisterFromHandTouchingFOVEdge)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1201 
1203 {
1205 
1206  XnStatus (XN_CALLBACK_TYPE* RegisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnModuleHandCreate CreateCB, XnModuleHandUpdate UpdateCB, XnModuleHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback);
1207  void (XN_CALLBACK_TYPE* UnregisterHandCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1208  XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1209  XnStatus (XN_CALLBACK_TYPE* StopTrackingAll)(XnModuleNodeHandle hGenerator);
1210  XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, const XnPoint3D* pPosition);
1211  XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor);
1212 
1214 
1216 
1221 {
1222  XnBool (XN_CALLBACK_TYPE* IsJointAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint);
1223  XnBool (XN_CALLBACK_TYPE* IsProfileAvailable)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile);
1224  XnStatus (XN_CALLBACK_TYPE* SetSkeletonProfile)(XnModuleNodeHandle hGenerator, XnSkeletonProfile eProfile);
1225  XnStatus (XN_CALLBACK_TYPE* SetJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint, XnBool bState);
1226  XnBool (XN_CALLBACK_TYPE* IsJointActive)(XnModuleNodeHandle hGenerator, XnSkeletonJoint eJoint);
1227  XnStatus (XN_CALLBACK_TYPE* RegisterToJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnModuleStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
1228  void (XN_CALLBACK_TYPE* UnregisterFromJointConfigurationChange)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1229  XnStatus (XN_CALLBACK_TYPE* EnumerateActiveJoints)(XnModuleNodeHandle hGenerator, XnSkeletonJoint* pJoints, XnUInt16* pnJoints);
1233  XnBool (XN_CALLBACK_TYPE* IsTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1234  XnBool (XN_CALLBACK_TYPE* IsCalibrated)(XnModuleNodeHandle hGenerator, XnUserID user);
1235  XnBool (XN_CALLBACK_TYPE* IsCalibrating)(XnModuleNodeHandle hGenerator, XnUserID user);
1236  XnStatus (XN_CALLBACK_TYPE* RequestCalibration)(XnModuleNodeHandle hGenerator, XnUserID user, XnBool bForce);
1237  XnStatus (XN_CALLBACK_TYPE* AbortCalibration)(XnModuleNodeHandle hGenerator, XnUserID user);
1238  XnStatus (XN_CALLBACK_TYPE* SaveCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot);
1239  XnStatus (XN_CALLBACK_TYPE* LoadCalibrationData)(XnModuleNodeHandle hGenerator, XnUserID user, XnUInt32 nSlot);
1240  XnStatus (XN_CALLBACK_TYPE* ClearCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot);
1241  XnBool (XN_CALLBACK_TYPE* IsCalibrationData)(XnModuleNodeHandle hGenerator, XnUInt32 nSlot);
1242  XnStatus (XN_CALLBACK_TYPE* StartTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1243  XnStatus (XN_CALLBACK_TYPE* StopTracking)(XnModuleNodeHandle hGenerator, XnUserID user);
1244  XnStatus (XN_CALLBACK_TYPE* Reset)(XnModuleNodeHandle hGenerator, XnUserID user);
1245  XnBool (XN_CALLBACK_TYPE* NeedPoseForCalibration)(XnModuleNodeHandle hGenerator);
1246  XnStatus (XN_CALLBACK_TYPE* GetCalibrationPose)(XnModuleNodeHandle hGenerator, XnChar* strPose);
1247  XnStatus (XN_CALLBACK_TYPE* SetSmoothing)(XnModuleNodeHandle hGenerator, XnFloat fSmoothingFactor);
1248  XnStatus (XN_CALLBACK_TYPE* RegisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart CalibrationStartCB, XnModuleCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback);
1249  void (XN_CALLBACK_TYPE* UnregisterCalibrationCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1250 
1251  XnStatus (XN_CALLBACK_TYPE* SaveCalibrationDataToFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName);
1252  XnStatus (XN_CALLBACK_TYPE* LoadCalibrationDataFromFile)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strFileName);
1253 
1254  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnModuleCalibrationInProgress CalibrationInProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1255  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1256  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationComplete)(XnModuleNodeHandle hGenerator, XnModuleCalibrationComplete CalibrationCompleteCB, void* pCookie, XnCallbackHandle* phCallback);
1257  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationComplete)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1258 
1259  XnStatus (XN_CALLBACK_TYPE* RegisterToCalibrationStart)(XnModuleNodeHandle hGenerator, XnModuleCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback);
1260  void (XN_CALLBACK_TYPE* UnregisterFromCalibrationStart)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1262 
1264 {
1265  XnUInt32 (XN_CALLBACK_TYPE* GetNumberOfPoses)(XnModuleNodeHandle hGenerator);
1266  XnStatus (XN_CALLBACK_TYPE* GetAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32* pnPoses);
1267  XnStatus (XN_CALLBACK_TYPE* StartPoseDetection)(XnModuleNodeHandle hGenerator, const XnChar* strPose, XnUserID user);
1268  XnStatus (XN_CALLBACK_TYPE* StopPoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user);
1269  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseCallbacks)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback StartPoseCB, XnModulePoseDetectionCallback EndCB, void* pCookie, XnCallbackHandle* phCallback);
1270  void (XN_CALLBACK_TYPE* UnregisterFromPoseCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1271 
1272  XnStatus (XN_CALLBACK_TYPE* GetAllAvailablePoses)(XnModuleNodeHandle hGenerator, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses);
1273 
1274  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionInProgressCallback PoseProgressCB, void* pCookie, XnCallbackHandle* phCallback);
1275  void (XN_CALLBACK_TYPE* UnregisterFromPoseDetectionInProgress)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1276 
1277  XnStatus (XN_CALLBACK_TYPE* RegisterToPoseDetected)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback);
1278  void (XN_CALLBACK_TYPE* UnregisterFromPoseDetected)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1279  XnStatus (XN_CALLBACK_TYPE* RegisterToOutOfPose)(XnModuleNodeHandle hGenerator, XnModulePoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback);
1280  void (XN_CALLBACK_TYPE* UnregisterFromOutOfPose)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1281 
1282  XnStatus (XN_CALLBACK_TYPE* StopSinglePoseDetection)(XnModuleNodeHandle hGenerator, XnUserID user, const XnChar* strPose);
1284 
1287 {
1289 
1290  XnUInt16 (XN_CALLBACK_TYPE* GetNumberOfUsers)(XnModuleNodeHandle hGenerator);
1291  XnStatus (XN_CALLBACK_TYPE* GetUsers)(XnModuleNodeHandle hGenerator, XnUserID* pUsers, XnUInt16* pnUsers);
1292  XnStatus (XN_CALLBACK_TYPE* GetCoM)(XnModuleNodeHandle hGenerator, XnUserID user, XnPoint3D* pCoM);
1293  XnStatus (XN_CALLBACK_TYPE* GetUserPixels)(XnModuleNodeHandle hGenerator, XnUserID user, XnSceneMetaData* pScene);
1294  XnStatus (XN_CALLBACK_TYPE* RegisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnModuleUserHandler NewUserCB, XnModuleUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback);
1295  void (XN_CALLBACK_TYPE* UnregisterUserCallbacks)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1296 
1305 
1306  XnStatus (XN_CALLBACK_TYPE* RegisterToUserExit)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserExitCB, void* pCookie, XnCallbackHandle* phCallback);
1307  void (XN_CALLBACK_TYPE* UnregisterFromUserExit)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1308  XnStatus (XN_CALLBACK_TYPE* RegisterToUserReEnter)(XnModuleNodeHandle hGenerator, XnModuleUserHandler UserReEnterCB, void* pCookie, XnCallbackHandle* phCallback);
1309  void (XN_CALLBACK_TYPE* UnregisterFromUserReEnter)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1310 
1312 
1315 {
1317 
1318  XnUChar* (XN_CALLBACK_TYPE* GetAudioBuffer)(XnModuleNodeHandle hGenerator);
1319  XnUInt32 (XN_CALLBACK_TYPE* GetSupportedWaveOutputModesCount)(XnModuleNodeHandle hGenerator);
1320  XnStatus (XN_CALLBACK_TYPE* GetSupportedWaveOutputModes)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount);
1321  XnStatus (XN_CALLBACK_TYPE* SetWaveOutputMode)(XnModuleNodeHandle hGenerator, const XnWaveOutputMode* OutputMode);
1322  XnStatus (XN_CALLBACK_TYPE* GetWaveOutputMode)(XnModuleNodeHandle hGenerator, XnWaveOutputMode* OutputMode);
1324  void* pCookie, XnCallbackHandle* phCallback);
1325  void (XN_CALLBACK_TYPE* UnregisterFromWaveOutputModeChanges)(XnModuleNodeHandle hGenerator, XnCallbackHandle hCallback);
1326 
1328 
1330 {
1332 
1333  XnCodecID (XN_CALLBACK_TYPE* GetCodecID)(XnModuleNodeHandle hCodec);
1334  XnStatus (XN_CALLBACK_TYPE* Init)(XnModuleNodeHandle hCodec, XnNodeHandle hNode);
1335  XnStatus (XN_CALLBACK_TYPE* CompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
1336  XnStatus (XN_CALLBACK_TYPE* DecompressData)(XnModuleNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
1337 
1339 
1341 {
1343 
1344  const XnChar* (XN_CALLBACK_TYPE* GetSupportedFormat)(XnModuleNodeHandle hScript);
1345  XnStatus (XN_CALLBACK_TYPE* LoadScriptFromFile)(XnModuleNodeHandle hScript, const XnChar* strFileName);
1346  XnStatus (XN_CALLBACK_TYPE* LoadScriptFromString)(XnModuleNodeHandle hScript, const XnChar* strScript);
1347  XnStatus (XN_CALLBACK_TYPE* Run)(XnModuleNodeHandle hScript, XnNodeInfoList* pCreatedNodes, XnEnumerationErrors* pErrors);
1348 
1350 
1351 #endif // __XN_MODULE_INTERFACE_H__