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