00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __XN_TYPES_H__
00023 #define __XN_TYPES_H__
00024
00025
00026
00027
00028 #include <XnStatus.h>
00029 #include <XnOS.h>
00030
00031
00032
00033
00035 #define XN_MAX_NAME_LENGTH 80
00036
00038 #define XN_MAX_CREATION_INFO_LENGTH 255
00039
00041 #define XN_MAX_LICENSE_LENGTH 255
00042
00044 #define XN_NODE_WAIT_FOR_DATA_TIMEOUT 2000
00045
00047 #define XN_VENDOR_OPEN_NI "OpenNI"
00048
00050 #define XN_FORMAT_NAME_ONI "oni"
00051
00053 #define XN_SCRIPT_FORMAT_XML "xml"
00054
00056 #define XN_PLAYBACK_SPEED_FASTEST 0.0
00057
00059 #define XN_AUTO_CONTROL XN_MIN_INT32
00060
00061
00062
00063
00064 struct XnInternalNodeData;
00065
00066
00067
00068
00069
00070 #if XN_PLATFORM != XN_PLATFORM_ARC
00071 #pragma pack (push, 1)
00072 #endif
00073
00077 typedef struct XnContext XnContext;
00078
00082 typedef struct XnInternalNodeData* XnNodeHandle;
00083
00087 typedef XnUInt32 XnLockHandle;
00088
00092 typedef XnInt32 XnProductionNodeType;
00093
00097 typedef enum XnPredefinedProductionNodeType
00098 {
00100 XN_NODE_TYPE_INVALID = -1,
00101
00103 XN_NODE_TYPE_DEVICE = 1,
00104
00106 XN_NODE_TYPE_DEPTH = 2,
00107
00109 XN_NODE_TYPE_IMAGE = 3,
00110
00112 XN_NODE_TYPE_AUDIO = 4,
00113
00115 XN_NODE_TYPE_IR = 5,
00116
00118 XN_NODE_TYPE_USER = 6,
00119
00121 XN_NODE_TYPE_RECORDER = 7,
00122
00124 XN_NODE_TYPE_PLAYER = 8,
00125
00127 XN_NODE_TYPE_GESTURE = 9,
00128
00130 XN_NODE_TYPE_SCENE = 10,
00131
00133 XN_NODE_TYPE_HANDS = 11,
00134
00136 XN_NODE_TYPE_CODEC = 12,
00137
00139 XN_NODE_TYPE_PRODUCTION_NODE = 13,
00140 XN_NODE_TYPE_GENERATOR = 14,
00141 XN_NODE_TYPE_MAP_GENERATOR = 15,
00142 XN_NODE_TYPE_SCRIPT = 16,
00143
00144 XN_NODE_TYPE_FIRST_EXTENSION,
00145
00146 } XnPredefinedProductionNodeType;
00147
00151 typedef struct XnVersion
00152 {
00153 XnUInt8 nMajor;
00154 XnUInt8 nMinor;
00155 XnUInt16 nMaintenance;
00156 XnUInt32 nBuild;
00157 } XnVersion;
00158
00162 typedef struct XnProductionNodeDescription
00163 {
00165 XnProductionNodeType Type;
00167 XnChar strVendor[XN_MAX_NAME_LENGTH];
00169 XnChar strName[XN_MAX_NAME_LENGTH];
00171 XnVersion Version;
00172 } XnProductionNodeDescription;
00173
00177 typedef struct XnNodeInfo XnNodeInfo;
00178
00182 typedef struct XnNodeInfoListNode XnNodeInfoListNode;
00183
00187 typedef struct XnNodeInfoList XnNodeInfoList;
00188
00192 typedef struct XnNodeInfoListIterator
00193 {
00194 XnNodeInfoListNode* pCurrent;
00195 } XnNodeInfoListIterator;
00196
00197 typedef struct XnNodeQuery XnNodeQuery;
00198
00202 typedef struct XnLicense
00203 {
00205 XnChar strVendor[XN_MAX_NAME_LENGTH];
00207 XnChar strKey[XN_MAX_LICENSE_LENGTH];
00208 } XnLicense;
00209
00214 typedef struct XnEnumerationErrors XnEnumerationErrors;
00215
00219 typedef void* XnModuleNodeHandle;
00220
00227 typedef void (XN_CALLBACK_TYPE* XnStateChangedHandler)(XnNodeHandle hNode, void* pCookie);
00228
00235 typedef void (XN_CALLBACK_TYPE* XnErrorStateChangedHandler)(XnStatus errorState, void* pCookie);
00236
00242 typedef void (XN_CALLBACK_TYPE* XnFreeHandler)(const void* pData);
00243
00244 typedef void (XN_CALLBACK_TYPE* XnContextShuttingDownHandler)(XnContext* pContext, void* pCookie);
00245
00247 typedef void* XnCallbackHandle;
00248
00249 typedef struct XnModuleExportedProductionNodeInterface XnModuleExportedProductionNodeInterface;
00250
00251
00252
00253
00255 typedef XnUInt16 XnDepthPixel;
00256
00258 #define XN_DEPTH_NO_SAMPLE_VALUE ((XnDepthPixel)0)
00259
00261 typedef struct XnRGB24Pixel
00262 {
00263 XnUInt8 nRed;
00264 XnUInt8 nGreen;
00265 XnUInt8 nBlue;
00266 } XnRGB24Pixel;
00267
00269 typedef struct XnYUV422DoublePixel
00270 {
00271 XnUInt8 nU;
00272 XnUInt8 nY1;
00273 XnUInt8 nV;
00274 XnUInt8 nY2;
00275 } XnYUV422DoublePixel;
00276
00278 typedef XnUInt8 XnGrayscale8Pixel;
00279
00281 typedef XnUInt16 XnGrayscale16Pixel;
00282
00284 typedef XnGrayscale16Pixel XnIRPixel;
00285
00287 typedef XnUInt16 XnLabel;
00288
00289
00290
00291
00292 #define XN_CAPABILITY_EXTENDED_SERIALIZATION "ExtendedSerialization"
00293 #define XN_CAPABILITY_MIRROR "Mirror"
00294 #define XN_CAPABILITY_ALTERNATIVE_VIEW_POINT "AlternativeViewPoint"
00295 #define XN_CAPABILITY_CROPPING "Cropping"
00296 #define XN_CAPABILITY_USER_POSITION "UserPosition"
00297 #define XN_CAPABILITY_SKELETON "User::Skeleton"
00298 #define XN_CAPABILITY_POSE_DETECTION "User::PoseDetection"
00299 #define XN_CAPABILITY_LOCK_AWARE "LockAware"
00300 #define XN_CAPABILITY_ERROR_STATE "ErrorState"
00301 #define XN_CAPABILITY_FRAME_SYNC "FrameSync"
00302 #define XN_CAPABILITY_DEVICE_IDENTIFICATION "DeviceIdentification"
00303 #define XN_CAPABILITY_BRIGHTNESS "Brightness"
00304 #define XN_CAPABILITY_CONTRAST "Contrast"
00305 #define XN_CAPABILITY_HUE "Hue"
00306 #define XN_CAPABILITY_SATURATION "Saturation"
00307 #define XN_CAPABILITY_SHARPNESS "Sharpness"
00308 #define XN_CAPABILITY_GAMMA "Gamma"
00309 #define XN_CAPABILITY_COLOR_TEMPERATURE "ColorTemperature"
00310 #define XN_CAPABILITY_BACKLIGHT_COMPENSATION "BacklightCompensation"
00311 #define XN_CAPABILITY_GAIN "Gain"
00312 #define XN_CAPABILITY_PAN "Pan"
00313 #define XN_CAPABILITY_TILT "Tilt"
00314 #define XN_CAPABILITY_ROLL "Roll"
00315 #define XN_CAPABILITY_ZOOM "Zoom"
00316 #define XN_CAPABILITY_EXPOSURE "Exposure"
00317 #define XN_CAPABILITY_IRIS "Iris"
00318 #define XN_CAPABILITY_FOCUS "Focus"
00319 #define XN_CAPABILITY_LOW_LIGHT_COMPENSATION "LowLightCompensation"
00320 #define XN_CAPABILITY_ANTI_FLICKER "AntiFlicker"
00321 #define XN_CAPABILITY_HAND_TOUCHING_FOV_EDGE "Hands::HandTouchingFOVEdge"
00322
00323
00324 #define XN_CAPABILITY_ANTI_FILCKER XN_CAPABILITY_ANTI_FLICKER
00325
00326
00327 #if (XN_PLATFORM == XN_PLATFORM_WIN32)
00328
00329 #endif
00330
00331
00332
00333
00334
00335 #define XN_QQVGA_X_RES 160
00336 #define XN_QQVGA_Y_RES 120
00337
00338 #define XN_CGA_X_RES 320
00339 #define XN_CGA_Y_RES 200
00340
00341 #define XN_QVGA_X_RES 320
00342 #define XN_QVGA_Y_RES 240
00343
00344 #define XN_VGA_X_RES 640
00345 #define XN_VGA_Y_RES 480
00346
00347 #define XN_SVGA_X_RES 800
00348 #define XN_SVGA_Y_RES 600
00349
00350 #define XN_XGA_X_RES 1024
00351 #define XN_XGA_Y_RES 768
00352
00353 #define XN_720P_X_RES 1280
00354 #define XN_720P_Y_RES 720
00355
00356 #define XN_SXGA_X_RES 1280
00357 #define XN_SXGA_Y_RES 1024
00358
00359 #define XN_UXGA_X_RES 1600
00360 #define XN_UXGA_Y_RES 1200
00361
00362 #define XN_1080P_X_RES 1920
00363 #define XN_1080P_Y_RES 1080
00364
00365 #define XN_QCIF_X_RES 176
00366 #define XN_QCIF_Y_RES 144
00367
00368 #define XN_240P_X_RES 423
00369 #define XN_240P_Y_RES 240
00370
00371 #define XN_CIF_X_RES 352
00372 #define XN_CIF_Y_RES 288
00373
00374 #define XN_WVGA_X_RES 640
00375 #define XN_WVGA_Y_RES 360
00376
00377 #define XN_480P_X_RES 864
00378 #define XN_480P_Y_RES 480
00379
00380 #define XN_576P_X_RES 1024
00381 #define XN_576P_Y_RES 576
00382
00383 #define XN_DV_X_RES 960
00384 #define XN_DV_Y_RES 720
00385
00386 typedef enum XnResolution
00387 {
00388 XN_RES_CUSTOM = 0,
00389 XN_RES_QQVGA = 1,
00390 XN_RES_CGA = 2,
00391 XN_RES_QVGA = 3,
00392 XN_RES_VGA = 4,
00393 XN_RES_SVGA = 5,
00394 XN_RES_XGA = 6,
00395 XN_RES_720P = 7,
00396 XN_RES_SXGA = 8,
00397 XN_RES_UXGA = 9,
00398 XN_RES_1080P = 10,
00399 XN_RES_QCIF = 11,
00400 XN_RES_240P = 12,
00401 XN_RES_CIF = 13,
00402 XN_RES_WVGA = 14,
00403 XN_RES_480P = 15,
00404 XN_RES_576P = 16,
00405 XN_RES_DV = 17,
00406 } XnResolution;
00407
00411 typedef struct XnMapOutputMode
00412 {
00414 XnUInt32 nXRes;
00416 XnUInt32 nYRes;
00418 XnUInt32 nFPS;
00419 } XnMapOutputMode;
00420
00421 typedef enum XnSampleRate
00422 {
00423 XN_SAMPLE_RATE_8K = 8000,
00424 XN_SAMPLE_RATE_11K = 11025,
00425 XN_SAMPLE_RATE_12K = 12000,
00426 XN_SAMPLE_RATE_16K = 16000,
00427 XN_SAMPLE_RATE_22K = 22050,
00428 XN_SAMPLE_RATE_24K = 24000,
00429 XN_SAMPLE_RATE_32K = 32000,
00430 XN_SAMPLE_RATE_44K = 44100,
00431 XN_SAMPLE_RATE_48K = 48000,
00432 } XnSampleRate;
00433
00434 typedef struct XnWaveOutputMode
00435 {
00436 XnUInt32 nSampleRate;
00437 XnUInt16 nBitsPerSample;
00438 XnUInt8 nChannels;
00439 } XnWaveOutputMode;
00440
00444 typedef struct XnVector3D
00445 {
00446 XnFloat X;
00447 XnFloat Y;
00448 XnFloat Z;
00449 } XnVector3D;
00450
00451 typedef XnVector3D XnPoint3D;
00452
00456 typedef struct XnBoundingBox3D
00457 {
00458 XnPoint3D LeftBottomNear;
00459 XnPoint3D RightTopFar;
00460 } XnBoundingBox3D;
00461
00465 typedef struct XnCropping
00466 {
00468 XnBool bEnabled;
00470 XnUInt16 nXOffset;
00472 XnUInt16 nYOffset;
00474 XnUInt16 nXSize;
00476 XnUInt16 nYSize;
00477 } XnCropping;
00478
00482 typedef struct XnFieldOfView
00483 {
00485 XnDouble fHFOV;
00487 XnDouble fVFOV;
00488 } XnFieldOfView;
00489
00490 typedef enum XnPixelFormat
00491 {
00492 XN_PIXEL_FORMAT_RGB24 = 1,
00493 XN_PIXEL_FORMAT_YUV422 = 2,
00494 XN_PIXEL_FORMAT_GRAYSCALE_8_BIT = 3,
00495 XN_PIXEL_FORMAT_GRAYSCALE_16_BIT = 4,
00496 XN_PIXEL_FORMAT_MJPEG = 5,
00497 } XnPixelFormat;
00498
00499 typedef struct XnSupportedPixelFormats
00500 {
00501 XnBool m_bRGB24 : 1;
00502 XnBool m_bYUV422 : 1;
00503 XnBool m_bGrayscale8Bit : 1;
00504 XnBool m_bGrayscale16Bit : 1;
00505 XnBool m_bMJPEG : 1;
00506 XnUInt m_nPadding : 3;
00507 XnUInt m_nReserved : 24;
00508 } XnSupportedPixelFormats;
00509
00510 typedef enum XnPlayerSeekOrigin
00511 {
00512 XN_PLAYER_SEEK_SET = 0,
00513 XN_PLAYER_SEEK_CUR = 1,
00514 XN_PLAYER_SEEK_END = 2,
00515 } XnPlayerSeekOrigin;
00516
00517 typedef enum XnPowerLineFrequency
00518 {
00519 XN_POWER_LINE_FREQUENCY_OFF = 0,
00520 XN_POWER_LINE_FREQUENCY_50_HZ = 50,
00521 XN_POWER_LINE_FREQUENCY_60_HZ = 60,
00522 } XnPowerLineFrequency;
00523
00524
00525 typedef XnUInt32 XnUserID;
00526 typedef XnFloat XnConfidence;
00527
00529 typedef struct XnMatrix3X3
00530 {
00532 XnFloat elements[9];
00533 } XnMatrix3X3;
00534
00539 typedef struct XnPlane3D
00540 {
00542 XnVector3D vNormal;
00543
00545 XnPoint3D ptPoint;
00546 } XnPlane3D;
00547
00552 typedef struct XnSkeletonJointPosition
00553 {
00555 XnVector3D position;
00556
00558 XnConfidence fConfidence;
00559 } XnSkeletonJointPosition;
00560
00568 typedef struct XnSkeletonJointOrientation
00569 {
00571 XnMatrix3X3 orientation;
00573 XnConfidence fConfidence;
00574 } XnSkeletonJointOrientation;
00575
00579 typedef struct XnSkeletonJointTransformation
00580 {
00582 XnSkeletonJointPosition position;
00584 XnSkeletonJointOrientation orientation;
00585 } XnSkeletonJointTransformation;
00586
00590 typedef enum XnSkeletonJoint
00591 {
00592 XN_SKEL_HEAD = 1,
00593 XN_SKEL_NECK = 2,
00594 XN_SKEL_TORSO = 3,
00595 XN_SKEL_WAIST = 4,
00596
00597 XN_SKEL_LEFT_COLLAR = 5,
00598 XN_SKEL_LEFT_SHOULDER = 6,
00599 XN_SKEL_LEFT_ELBOW = 7,
00600 XN_SKEL_LEFT_WRIST = 8,
00601 XN_SKEL_LEFT_HAND = 9,
00602 XN_SKEL_LEFT_FINGERTIP =10,
00603
00604 XN_SKEL_RIGHT_COLLAR =11,
00605 XN_SKEL_RIGHT_SHOULDER =12,
00606 XN_SKEL_RIGHT_ELBOW =13,
00607 XN_SKEL_RIGHT_WRIST =14,
00608 XN_SKEL_RIGHT_HAND =15,
00609 XN_SKEL_RIGHT_FINGERTIP =16,
00610
00611 XN_SKEL_LEFT_HIP =17,
00612 XN_SKEL_LEFT_KNEE =18,
00613 XN_SKEL_LEFT_ANKLE =19,
00614 XN_SKEL_LEFT_FOOT =20,
00615
00616 XN_SKEL_RIGHT_HIP =21,
00617 XN_SKEL_RIGHT_KNEE =22,
00618 XN_SKEL_RIGHT_ANKLE =23,
00619 XN_SKEL_RIGHT_FOOT =24
00620 } XnSkeletonJoint;
00621
00623 typedef enum XnSkeletonProfile
00624 {
00626 XN_SKEL_PROFILE_NONE = 1,
00627
00629 XN_SKEL_PROFILE_ALL = 2,
00630
00632 XN_SKEL_PROFILE_UPPER = 3,
00633
00635 XN_SKEL_PROFILE_LOWER = 4,
00636
00638 XN_SKEL_PROFILE_HEAD_HANDS = 5,
00639 } XnSkeletonProfile;
00640
00642 typedef enum XnPoseDetectionStatus
00643 {
00644 XN_POSE_DETECTION_STATUS_OK = 0,
00645 XN_POSE_DETECTION_STATUS_NO_USER = 1,
00646 XN_POSE_DETECTION_STATUS_TOP_FOV = 2,
00647 XN_POSE_DETECTION_STATUS_SIDE_FOV = 3,
00648 XN_POSE_DETECTION_STATUS_ERROR = 4,
00649 } XnPoseDetectionStatus;
00650
00652 typedef enum XnCalibrationStatus
00653 {
00654 XN_CALIBRATION_STATUS_OK = 0,
00655 XN_CALIBRATION_STATUS_NO_USER = 1,
00656 XN_CALIBRATION_STATUS_ARM = 2,
00657 XN_CALIBRATION_STATUS_LEG = 3,
00658 XN_CALIBRATION_STATUS_HEAD = 4,
00659 XN_CALIBRATION_STATUS_TORSO = 5,
00660 XN_CALIBRATION_STATUS_TOP_FOV = 6,
00661 XN_CALIBRATION_STATUS_SIDE_FOV = 7,
00662 XN_CALIBRATION_STATUS_POSE = 8,
00663 } XnCalibrationStatus;
00664
00665 typedef enum XnDirection
00666 {
00667 XN_DIRECTION_ILLEGAL = 0,
00668 XN_DIRECTION_LEFT = 1,
00669 XN_DIRECTION_RIGHT = 2,
00670 XN_DIRECTION_UP = 3,
00671 XN_DIRECTION_DOWN = 4,
00672 XN_DIRECTION_FORWARD = 5,
00673 XN_DIRECTION_BACKWARD = 6,
00674 } XnDirection;
00675
00676
00684 typedef void (XN_CALLBACK_TYPE* XnUserHandler)(XnNodeHandle hNode, XnUserID user, void* pCookie);
00685
00686
00696 typedef void (XN_CALLBACK_TYPE* XnHandCreate)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
00697
00707 typedef void (XN_CALLBACK_TYPE* XnHandUpdate)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie);
00708
00717 typedef void (XN_CALLBACK_TYPE* XnHandDestroy)(XnNodeHandle hNode, XnUserID user, XnFloat fTime, void* pCookie);
00718
00729 typedef void (XN_CALLBACK_TYPE* XnHandTouchingFOVEdge)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie);
00730
00740 typedef void (XN_CALLBACK_TYPE* XnGestureRecognized)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie);
00750 typedef void (XN_CALLBACK_TYPE* XnGestureProgress)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie);
00751
00752 typedef void (XN_CALLBACK_TYPE* XnGestureIntermediateStageCompleted)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
00753 typedef void (XN_CALLBACK_TYPE* XnGestureReadyForNextIntermediateStage)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie);
00754
00755
00763 typedef void (XN_CALLBACK_TYPE* XnCalibrationStart)(XnNodeHandle hNode, XnUserID user, void* pCookie);
00772 typedef void (XN_CALLBACK_TYPE* XnCalibrationEnd)(XnNodeHandle hNode, XnUserID user, XnBool bSuccess, void* pCookie);
00773
00774 typedef void (XN_CALLBACK_TYPE* XnCalibrationInProgress)(XnNodeHandle hNode, XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
00775 typedef void (XN_CALLBACK_TYPE* XnCalibrationComplete)(XnNodeHandle hNode, XnUserID user, XnCalibrationStatus calibrationError, void* pCookie);
00776
00777
00786 typedef void (XN_CALLBACK_TYPE* XnPoseDetectionCallback)(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, void* pCookie);
00787
00788 typedef void (XN_CALLBACK_TYPE* XnPoseDetectionInProgress)(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseDetectionError, void* pCookie);
00789
00790
00791
00792
00793
00799 typedef enum XnRecordMedium
00800 {
00802 XN_RECORD_MEDIUM_FILE = 0,
00803 } XnRecordMedium;
00804
00806 typedef XnUInt32 XnCodecID;
00807
00809 #define XN_CODEC_ID(c1, c2, c3, c4) (XnCodecID)((c4 << 24) | (c3 << 16) | (c2 << 8) | c1)
00810
00816 typedef struct XnRecorderOutputStreamInterface
00817 {
00823 XnStatus (XN_CALLBACK_TYPE* Open)(void* pCookie);
00824
00833 XnStatus (XN_CALLBACK_TYPE* Write)(void* pCookie, const XnChar* strNodeName,
00834 const void* pData, XnUInt32 nSize);
00835
00843 XnStatus (XN_CALLBACK_TYPE* Seek)(void* pCookie, XnOSSeekType seekType, const XnUInt32 nOffset);
00844
00853 XnUInt32 (XN_CALLBACK_TYPE* Tell)(void* pCookie);
00854
00860 void (XN_CALLBACK_TYPE* Close)(void* pCookie);
00861 } XnRecorderOutputStreamInterface;
00862
00868 typedef struct XnPlayerInputStreamInterface
00869 {
00875 XnStatus (XN_CALLBACK_TYPE* Open)(void* pCookie);
00876
00886 XnStatus (XN_CALLBACK_TYPE* Read)(void* pCookie, void* pBuffer, XnUInt32 nSize, XnUInt32* pnBytesRead);
00887
00895 XnStatus (XN_CALLBACK_TYPE* Seek)(void* pCookie, XnOSSeekType seekType, const XnInt32 nOffset);
00896
00904 XnUInt32 (XN_CALLBACK_TYPE* Tell)(void* pCookie);
00905
00911 void (XN_CALLBACK_TYPE* Close)(void* pCookie);
00912 } XnPlayerInputStreamInterface;
00913
00917 typedef struct XnNodeNotifications
00918 {
00925 XnStatus (XN_CALLBACK_TYPE* OnNodeAdded)
00926 (void* pCookie, const XnChar* strNodeName, XnProductionNodeType type,
00927 XnCodecID compression);
00928
00935 XnStatus (XN_CALLBACK_TYPE* OnNodeRemoved)
00936 (void* pCookie, const XnChar* strNodeName);
00937
00946 XnStatus (XN_CALLBACK_TYPE* OnNodeIntPropChanged)
00947 (void* pCookie, const XnChar* strNodeName,
00948 const XnChar* strPropName, XnUInt64 nValue);
00949
00958 XnStatus (XN_CALLBACK_TYPE* OnNodeRealPropChanged)
00959 (void* pCookie, const XnChar* strNodeName,
00960 const XnChar* strPropName, XnDouble dValue);
00961
00970 XnStatus (XN_CALLBACK_TYPE* OnNodeStringPropChanged)
00971 (void* pCookie, const XnChar* strNodeName,
00972 const XnChar* strPropName, const XnChar* strValue);
00973
00983 XnStatus (XN_CALLBACK_TYPE* OnNodeGeneralPropChanged)
00984 (void* pCookie, const XnChar* strNodeName,
00985 const XnChar* strPropName, XnUInt32 nBufferSize, const void* pBuffer);
00986
00993 XnStatus (XN_CALLBACK_TYPE* OnNodeStateReady)
00994 (void* pCookie, const XnChar* strNodeName);
00995
01005 XnStatus (XN_CALLBACK_TYPE* OnNodeNewData)
01006 (void* pCookie, const XnChar* strNodeName,
01007 XnUInt64 nTimeStamp, XnUInt32 nFrame, const void* pData, XnUInt32 nSize);
01008
01009 } XnNodeNotifications;
01010
01012 typedef struct XnUInt32XYPair
01013 {
01014 XnUInt32 X;
01015 XnUInt32 Y;
01016 } XnUInt32XYPair;
01017
01019 typedef struct XnOutputMetaData
01020 {
01022 XnUInt64 nTimestamp;
01023
01025 XnUInt32 nFrameID;
01026
01028 XnUInt32 nDataSize;
01029
01031 XnBool bIsNew;
01032
01033 } XnOutputMetaData;
01034
01036 typedef struct XnMapMetaData
01037 {
01039 XnOutputMetaData* pOutput;
01040
01042 XnUInt32XYPair Res;
01043
01045 XnUInt32XYPair Offset;
01046
01048 XnUInt32XYPair FullRes;
01049
01051 XnPixelFormat PixelFormat;
01052
01054 XnUInt32 nFPS;
01055 } XnMapMetaData;
01056
01058 typedef struct XnDepthMetaData
01059 {
01061 XnMapMetaData* pMap;
01062
01064 const XnDepthPixel* pData;
01065
01067 XnDepthPixel nZRes;
01068 } XnDepthMetaData;
01069
01071 typedef struct XnImageMetaData
01072 {
01074 XnMapMetaData* pMap;
01075
01077 const XnUInt8* pData;
01078 } XnImageMetaData;
01079
01081 typedef struct XnIRMetaData
01082 {
01084 XnMapMetaData* pMap;
01085
01087 const XnIRPixel* pData;
01088 } XnIRMetaData;
01089
01090 typedef struct XnAudioMetaData
01091 {
01093 XnOutputMetaData* pOutput;
01094
01096 XnWaveOutputMode Wave;
01097
01099 const XnUInt8* pData;
01100 } XnAudioMetaData;
01101
01102 typedef struct XnSceneMetaData
01103 {
01105 XnMapMetaData* pMap;
01106
01108 const XnLabel* pData;
01109 } XnSceneMetaData;
01110
01111 #if XN_PLATFORM != XN_PLATFORM_ARC
01112 #pragma pack (pop)
01113 #endif
01114
01115 #endif //__XN_TYPES_H__