00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __XN_MODULE_INTERFACE_H__
00023 #define __XN_MODULE_INTERFACE_H__
00024
00025
00026
00027
00028 #include <XnTypes.h>
00029
00030
00031
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
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
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
00083 typedef void (XN_CALLBACK_TYPE* XnModuleUserHandler)(XnUserID user, void* pCookie);
00084
00085
00086 typedef void (XN_CALLBACK_TYPE* XnModuleHandTouchingFOVEdge)(XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie);
00087
00088
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
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
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
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;
00687 XnModuleFrameSyncInterface* pFrameSyncInterface;
00688
00689
00695 const void* (XN_CALLBACK_TYPE* GetData)(XnModuleNodeHandle hGenerator);
00696
00697 } XnModuleGeneratorInterface;
00698
00699 typedef struct XnModuleRecorderInterface
00700 {
00701
00702
00703
00704
00705
00706
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
00719
00720
00721
00722
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
00736
00737
00738
00739
00740
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
00751
00752
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;
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
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__