diff options
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnTypes.h')
-rw-r--r-- | tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnTypes.h | 1188 |
1 files changed, 0 insertions, 1188 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnTypes.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnTypes.h deleted file mode 100644 index 40eb04e6..00000000 --- a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnTypes.h +++ /dev/null @@ -1,1188 +0,0 @@ -/**************************************************************************** -* * -* OpenNI 1.x Alpha * -* Copyright (C) 2011 PrimeSense Ltd. * -* * -* This file is part of OpenNI. * -* * -* OpenNI is free software: you can redistribute it and/or modify * -* it under the terms of the GNU Lesser General Public License as published * -* by the Free Software Foundation, either version 3 of the License, or * -* (at your option) any later version. * -* * -* OpenNI is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU Lesser General Public License for more details. * -* * -* You should have received a copy of the GNU Lesser General Public License * -* along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * -* * -****************************************************************************/ -#ifndef __XN_TYPES_H__ -#define __XN_TYPES_H__ - -//--------------------------------------------------------------------------- -// Includes -//--------------------------------------------------------------------------- -#include <XnStatus.h> -#include <XnOS.h> - -//--------------------------------------------------------------------------- -// Defines -//--------------------------------------------------------------------------- -/** The maximum length of names of objects in OpenNI **/ -#define XN_MAX_NAME_LENGTH 80 - -/** The maximum length of a creation info string **/ -#define XN_MAX_CREATION_INFO_LENGTH 255 - -/** The maxumim length of a license key **/ -#define XN_MAX_LICENSE_LENGTH 255 - -/** The maximum time to wait for node new data with the xnWaitXXXUpdateXXX functions **/ -#define XN_NODE_WAIT_FOR_DATA_TIMEOUT 2000 - -/** OpenNI vendor ID, used by nodes supplied by OpenNI itself. **/ -#define XN_VENDOR_OPEN_NI "OpenNI" - -/** The name of the OpenNI recording format. **/ -#define XN_FORMAT_NAME_ONI "oni" - -/** The name of the OpenNI XML script format. **/ -#define XN_SCRIPT_FORMAT_XML "xml" - -/** represents playback speed which does not consider file timestamps. **/ -#define XN_PLAYBACK_SPEED_FASTEST 0.0 - -/** represents a value for automatic control for nodes supporting it, as part of the @ref general_int. **/ -#define XN_AUTO_CONTROL XN_MIN_INT32 - -//--------------------------------------------------------------------------- -// Forward Declarations -//--------------------------------------------------------------------------- -struct XnInternalNodeData; - -//--------------------------------------------------------------------------- -// Types -//--------------------------------------------------------------------------- - -#if XN_PLATFORM != XN_PLATFORM_ARC -#pragma pack (push, 1) -#endif - -/** - * The context of an OpenNI library. - */ -typedef struct XnContext XnContext; - -/** - * A handle to a production node in the OpenNI context. A value of NULL represents an invalid handle. - */ -typedef struct XnInternalNodeData* XnNodeHandle; - -/** - * A handle to a lock. A value of NULL represents an invalid handle. - */ -typedef XnUInt32 XnLockHandle; - -/** - * Type of the production node. - */ -typedef XnInt32 XnProductionNodeType; - -/** - * Predefined types of production nodes. - */ -typedef enum XnPredefinedProductionNodeType -{ - /** An invalid node type **/ - XN_NODE_TYPE_INVALID = -1, - - /** A device node **/ - XN_NODE_TYPE_DEVICE = 1, - - /** A depth generator **/ - XN_NODE_TYPE_DEPTH = 2, - - /** An image generator **/ - XN_NODE_TYPE_IMAGE = 3, - - /** An audio generator **/ - XN_NODE_TYPE_AUDIO = 4, - - /** An IR generator **/ - XN_NODE_TYPE_IR = 5, - - /** A user generator **/ - XN_NODE_TYPE_USER = 6, - - /** A recorder **/ - XN_NODE_TYPE_RECORDER = 7, - - /** A player **/ - XN_NODE_TYPE_PLAYER = 8, - - /** A gesture generator **/ - XN_NODE_TYPE_GESTURE = 9, - - /** A scene analyzer **/ - XN_NODE_TYPE_SCENE = 10, - - /** A hands generator **/ - XN_NODE_TYPE_HANDS = 11, - - /** A Codec **/ - XN_NODE_TYPE_CODEC = 12, - - /** Abstract types **/ - XN_NODE_TYPE_PRODUCTION_NODE = 13, - XN_NODE_TYPE_GENERATOR = 14, - XN_NODE_TYPE_MAP_GENERATOR = 15, - XN_NODE_TYPE_SCRIPT = 16, - - XN_NODE_TYPE_FIRST_EXTENSION, - -} XnPredefinedProductionNodeType; - -/** - * A Version. - */ -typedef struct XnVersion -{ - XnUInt8 nMajor; - XnUInt8 nMinor; - XnUInt16 nMaintenance; - XnUInt32 nBuild; -} XnVersion; - -/** - * An exported generator description. - */ -typedef struct XnProductionNodeDescription -{ - /** Type of the production node. */ - XnProductionNodeType Type; - /** Vendor name */ - XnChar strVendor[XN_MAX_NAME_LENGTH]; - /** Generator name. Should be unique under Type and Vendor. */ - XnChar strName[XN_MAX_NAME_LENGTH]; - /** Current version */ - XnVersion Version; -} XnProductionNodeDescription; - -/** - * Information about a single production node. - */ -typedef struct XnNodeInfo XnNodeInfo; - -/** - * A single node in a node info list. - */ -typedef struct XnNodeInfoListNode XnNodeInfoListNode; - -/** - * A (linked) list of production node info objects. - */ -typedef struct XnNodeInfoList XnNodeInfoList; - -/** - * An iterator in a linked list of production node info objects. - */ -typedef struct XnNodeInfoListIterator -{ - XnNodeInfoListNode* pCurrent; -} XnNodeInfoListIterator; - -typedef struct XnNodeQuery XnNodeQuery; - -/** - * A license key. - */ -typedef struct XnLicense -{ - /** Vendor name **/ - XnChar strVendor[XN_MAX_NAME_LENGTH]; - /** License key **/ - XnChar strKey[XN_MAX_LICENSE_LENGTH]; -} XnLicense; - -/** - * @ingroup enum_errors - * An object that holds errors during an enumeration process. - */ -typedef struct XnEnumerationErrors XnEnumerationErrors; - -/** - * A handle to an instance of a generator. - **/ -typedef void* XnModuleNodeHandle; - -/** - * Prototype for state change callback function. - * - * @param hNode [in] A handle to the node that raised the event. - * @param pCookie [in] A user-provided cookie that was given when registering to the event. - **/ -typedef void (XN_CALLBACK_TYPE* XnStateChangedHandler)(XnNodeHandle hNode, void* pCookie); - -/** - * Prototype for error state change callback function. - * - * @param errorState [in] The new error state. A value of XN_STATUS_OK means there is no longer an error. - * @param pCookie [in] A user-provided cookie that was given when registering to the event. - **/ -typedef void (XN_CALLBACK_TYPE* XnErrorStateChangedHandler)(XnStatus errorState, void* pCookie); - -/** - * Prototype for freeing data callbacks. - * - * @param pData [in] The data to be freed. - **/ -typedef void (XN_CALLBACK_TYPE* XnFreeHandler)(const void* pData); - -typedef void (XN_CALLBACK_TYPE* XnContextShuttingDownHandler)(XnContext* pContext, void* pCookie); - -/** -* Prototype for the 'Node Creation' event handler. -* -* @param [in] pContext The context raising the event. -* @param [in] hCreatedNode A handle to the newly created node. -* @param [in] pCookie A user-provided cookie that was given when registering to the event. -* -* @remark The passed handle (@c hCreatedNode) is not referenced. If your handler keeps this handle for later use, -* it must call @ref xnProductionNodeAddRef(). -*/ -typedef void (XN_CALLBACK_TYPE* XnNodeCreationHandler)(XnContext* pContext, XnNodeHandle hCreatedNode, void* pCookie); - -/** -* Prototype for the 'Node Destruction' event handler. -* -* @param [in] pContext The context raising the event. -* @param [in] strDestroyedNodeName The name of the destroyed node. -* @param [in] pCookie A user-provided cookie that was given when registering to the event. -*/ -typedef void (XN_CALLBACK_TYPE* XnNodeDestructionHandler)(XnContext* pContext, const XnChar* strDestroyedNodeName, void* pCookie); - -/** Handle to a registered callback function. **/ -typedef void* XnCallbackHandle; - -typedef struct XnModuleExportedProductionNodeInterface XnModuleExportedProductionNodeInterface; // Forward Declaration - -//--------------------------------------------------------------------------- -// 3D Vision Types -//--------------------------------------------------------------------------- -/** Defines the depth values type (16-bit values). **/ -typedef XnUInt16 XnDepthPixel; - -/** Defines the value of a no-sample depth pixel. */ -#define XN_DEPTH_NO_SAMPLE_VALUE ((XnDepthPixel)0) - -/** Defines the image RGB24 pixel type. **/ -typedef struct XnRGB24Pixel -{ - XnUInt8 nRed; - XnUInt8 nGreen; - XnUInt8 nBlue; -} XnRGB24Pixel; - -/** Defines the image YUV422 double-pixel type. **/ -typedef struct XnYUV422DoublePixel -{ - XnUInt8 nU; - XnUInt8 nY1; - XnUInt8 nV; - XnUInt8 nY2; -} XnYUV422DoublePixel; - -/** Defines the image Grayscale8 pixel type. **/ -typedef XnUInt8 XnGrayscale8Pixel; - -/** Defines the image Grayscale16 pixel type. **/ -typedef XnUInt16 XnGrayscale16Pixel; - -/** Defines the IR values type (16-bit grayscale). **/ -typedef XnGrayscale16Pixel XnIRPixel; - -/** Defines the label type */ -typedef XnUInt16 XnLabel; - -//--------------------------------------------------------------------------- -// Generators Capabilities -//--------------------------------------------------------------------------- -#define XN_CAPABILITY_EXTENDED_SERIALIZATION "ExtendedSerialization" -#define XN_CAPABILITY_MIRROR "Mirror" -#define XN_CAPABILITY_ALTERNATIVE_VIEW_POINT "AlternativeViewPoint" -#define XN_CAPABILITY_CROPPING "Cropping" -#define XN_CAPABILITY_USER_POSITION "UserPosition" -#define XN_CAPABILITY_SKELETON "User::Skeleton" -#define XN_CAPABILITY_POSE_DETECTION "User::PoseDetection" -#define XN_CAPABILITY_LOCK_AWARE "LockAware" -#define XN_CAPABILITY_ERROR_STATE "ErrorState" -#define XN_CAPABILITY_FRAME_SYNC "FrameSync" -#define XN_CAPABILITY_DEVICE_IDENTIFICATION "DeviceIdentification" -#define XN_CAPABILITY_BRIGHTNESS "Brightness" -#define XN_CAPABILITY_CONTRAST "Contrast" -#define XN_CAPABILITY_HUE "Hue" -#define XN_CAPABILITY_SATURATION "Saturation" -#define XN_CAPABILITY_SHARPNESS "Sharpness" -#define XN_CAPABILITY_GAMMA "Gamma" -#define XN_CAPABILITY_COLOR_TEMPERATURE "ColorTemperature" -#define XN_CAPABILITY_BACKLIGHT_COMPENSATION "BacklightCompensation" -#define XN_CAPABILITY_GAIN "Gain" -#define XN_CAPABILITY_PAN "Pan" -#define XN_CAPABILITY_TILT "Tilt" -#define XN_CAPABILITY_ROLL "Roll" -#define XN_CAPABILITY_ZOOM "Zoom" -#define XN_CAPABILITY_EXPOSURE "Exposure" -#define XN_CAPABILITY_IRIS "Iris" -#define XN_CAPABILITY_FOCUS "Focus" -#define XN_CAPABILITY_LOW_LIGHT_COMPENSATION "LowLightCompensation" -#define XN_CAPABILITY_ANTI_FLICKER "AntiFlicker" -#define XN_CAPABILITY_HAND_TOUCHING_FOV_EDGE "Hands::HandTouchingFOVEdge" - -// Backwards compatibility - typo was fixed -#define XN_CAPABILITY_ANTI_FILCKER XN_CAPABILITY_ANTI_FLICKER - -// deprecated pragma is only supported in Visual Studio -#if (XN_PLATFORM == XN_PLATFORM_WIN32) -#pragma deprecated("XN_CAPABILITY_ANTI_FILCKER") -#endif - -//--------------------------------------------------------------------------- -// Generators API Structs -//--------------------------------------------------------------------------- - -#define XN_QQVGA_X_RES 160 -#define XN_QQVGA_Y_RES 120 - -#define XN_CGA_X_RES 320 -#define XN_CGA_Y_RES 200 - -#define XN_QVGA_X_RES 320 -#define XN_QVGA_Y_RES 240 - -#define XN_VGA_X_RES 640 -#define XN_VGA_Y_RES 480 - -#define XN_SVGA_X_RES 800 -#define XN_SVGA_Y_RES 600 - -#define XN_XGA_X_RES 1024 -#define XN_XGA_Y_RES 768 - -#define XN_720P_X_RES 1280 -#define XN_720P_Y_RES 720 - -#define XN_SXGA_X_RES 1280 -#define XN_SXGA_Y_RES 1024 - -#define XN_UXGA_X_RES 1600 -#define XN_UXGA_Y_RES 1200 - -#define XN_1080P_X_RES 1920 -#define XN_1080P_Y_RES 1080 - -#define XN_QCIF_X_RES 176 -#define XN_QCIF_Y_RES 144 - -#define XN_240P_X_RES 423 -#define XN_240P_Y_RES 240 - -#define XN_CIF_X_RES 352 -#define XN_CIF_Y_RES 288 - -#define XN_WVGA_X_RES 640 -#define XN_WVGA_Y_RES 360 - -#define XN_480P_X_RES 864 -#define XN_480P_Y_RES 480 - -#define XN_576P_X_RES 1024 -#define XN_576P_Y_RES 576 - -#define XN_DV_X_RES 960 -#define XN_DV_Y_RES 720 - -typedef enum XnResolution -{ - XN_RES_CUSTOM = 0, - XN_RES_QQVGA = 1, - XN_RES_CGA = 2, - XN_RES_QVGA = 3, - XN_RES_VGA = 4, - XN_RES_SVGA = 5, - XN_RES_XGA = 6, - XN_RES_720P = 7, - XN_RES_SXGA = 8, - XN_RES_UXGA = 9, - XN_RES_1080P = 10, - XN_RES_QCIF = 11, - XN_RES_240P = 12, - XN_RES_CIF = 13, - XN_RES_WVGA = 14, - XN_RES_480P = 15, - XN_RES_576P = 16, - XN_RES_DV = 17, -} XnResolution; - -/** - * The output mode of a map generator. - */ -typedef struct XnMapOutputMode -{ - /** Number of elements in the X-axis. */ - XnUInt32 nXRes; - /** Number of elements in the Y-axis. */ - XnUInt32 nYRes; - /** Number of frames per second. */ - XnUInt32 nFPS; -} XnMapOutputMode; - -typedef enum XnSampleRate -{ - XN_SAMPLE_RATE_8K = 8000, - XN_SAMPLE_RATE_11K = 11025, - XN_SAMPLE_RATE_12K = 12000, - XN_SAMPLE_RATE_16K = 16000, - XN_SAMPLE_RATE_22K = 22050, - XN_SAMPLE_RATE_24K = 24000, - XN_SAMPLE_RATE_32K = 32000, - XN_SAMPLE_RATE_44K = 44100, - XN_SAMPLE_RATE_48K = 48000, -} XnSampleRate; - -typedef struct XnWaveOutputMode -{ - XnUInt32 nSampleRate; - XnUInt16 nBitsPerSample; - XnUInt8 nChannels; -} XnWaveOutputMode; - -/** - * Representation of a vector in 3D space - */ -typedef struct XnVector3D -{ - XnFloat X; - XnFloat Y; - XnFloat Z; -} XnVector3D; - -typedef XnVector3D XnPoint3D; - -/** - * Representation of an axis-aligned box in 3D space - */ -typedef struct XnBoundingBox3D -{ - XnPoint3D LeftBottomNear; - XnPoint3D RightTopFar; -} XnBoundingBox3D; - -/** - * Cropping configuration - */ -typedef struct XnCropping -{ - /** TRUE if cropping is turned on, FALSE otherwise. */ - XnBool bEnabled; - /** Offset in the X-axis, in pixels. */ - XnUInt16 nXOffset; - /** Offset in the Y-axis, in pixels. */ - XnUInt16 nYOffset; - /** Number of pixels in the X-axis. */ - XnUInt16 nXSize; - /** Number of pixels in the Y-axis. */ - XnUInt16 nYSize; -} XnCropping; - -/** - * Field-Of-View - */ -typedef struct XnFieldOfView -{ - /** Horizontal Field Of View, in radians. */ - XnDouble fHFOV; - /** Vertical Field Of View, in radians. */ - XnDouble fVFOV; -} XnFieldOfView; - -typedef enum XnPixelFormat -{ - XN_PIXEL_FORMAT_RGB24 = 1, - XN_PIXEL_FORMAT_YUV422 = 2, - XN_PIXEL_FORMAT_GRAYSCALE_8_BIT = 3, - XN_PIXEL_FORMAT_GRAYSCALE_16_BIT = 4, - XN_PIXEL_FORMAT_MJPEG = 5, -} XnPixelFormat; - -typedef struct XnSupportedPixelFormats -{ - XnBool m_bRGB24 : 1; - XnBool m_bYUV422 : 1; - XnBool m_bGrayscale8Bit : 1; - XnBool m_bGrayscale16Bit : 1; - XnBool m_bMJPEG : 1; - XnUInt m_nPadding : 3; - XnUInt m_nReserved : 24; -} XnSupportedPixelFormats; - -typedef enum XnPlayerSeekOrigin -{ - XN_PLAYER_SEEK_SET = 0, - XN_PLAYER_SEEK_CUR = 1, - XN_PLAYER_SEEK_END = 2, -} XnPlayerSeekOrigin; - -typedef enum XnPowerLineFrequency -{ - XN_POWER_LINE_FREQUENCY_OFF = 0, - XN_POWER_LINE_FREQUENCY_50_HZ = 50, - XN_POWER_LINE_FREQUENCY_60_HZ = 60, -} XnPowerLineFrequency; - -// User -typedef XnUInt32 XnUserID; -typedef XnFloat XnConfidence; - -/** A 3x3 matrix of floating point values **/ -typedef struct XnMatrix3X3 -{ - /** The elements of the matrix. **/ - XnFloat elements[9]; -} XnMatrix3X3; - -/** -* A representation of a 3D plane. -* A plane is described by a point on it and a normal -*/ -typedef struct XnPlane3D -{ - /** The normal of the plane. **/ - XnVector3D vNormal; - - /** A point on the plane. **/ - XnPoint3D ptPoint; -} XnPlane3D; - -/** -* Position of a specific joint. A joint position is described by its actual position -* and the confidence we have in that position. -*/ -typedef struct XnSkeletonJointPosition -{ - /** The actual position in real world coordinations */ - XnVector3D position; - - /** The confidence in the position */ - XnConfidence fConfidence; -} XnSkeletonJointPosition; - -/** - * Orientation of a specific joint. A joint orientation is described by its actual rotation - * and the confidence we have in that rotation - * The first column is the X orientation, where the value increases from left to right. - * The second column is the Y orientation, where the value increases from bottom to top. - * The third column is the Z orientation, where the value increases from near to far. - */ -typedef struct XnSkeletonJointOrientation -{ - /** The actual orientation */ - XnMatrix3X3 orientation; - /** The confidence in the orientation */ - XnConfidence fConfidence; -} XnSkeletonJointOrientation; - -/** -* Transformation of a specific joint is its full description: both its position and orientation. -*/ -typedef struct XnSkeletonJointTransformation -{ - /** The position of the joint */ - XnSkeletonJointPosition position; - /** The orientation of the joint */ - XnSkeletonJointOrientation orientation; -} XnSkeletonJointTransformation; - -/** -* A full list of available joints. -*/ -typedef enum XnSkeletonJoint -{ - XN_SKEL_HEAD = 1, - XN_SKEL_NECK = 2, - XN_SKEL_TORSO = 3, - XN_SKEL_WAIST = 4, - - XN_SKEL_LEFT_COLLAR = 5, - XN_SKEL_LEFT_SHOULDER = 6, - XN_SKEL_LEFT_ELBOW = 7, - XN_SKEL_LEFT_WRIST = 8, - XN_SKEL_LEFT_HAND = 9, - XN_SKEL_LEFT_FINGERTIP =10, - - XN_SKEL_RIGHT_COLLAR =11, - XN_SKEL_RIGHT_SHOULDER =12, - XN_SKEL_RIGHT_ELBOW =13, - XN_SKEL_RIGHT_WRIST =14, - XN_SKEL_RIGHT_HAND =15, - XN_SKEL_RIGHT_FINGERTIP =16, - - XN_SKEL_LEFT_HIP =17, - XN_SKEL_LEFT_KNEE =18, - XN_SKEL_LEFT_ANKLE =19, - XN_SKEL_LEFT_FOOT =20, - - XN_SKEL_RIGHT_HIP =21, - XN_SKEL_RIGHT_KNEE =22, - XN_SKEL_RIGHT_ANKLE =23, - XN_SKEL_RIGHT_FOOT =24 -} XnSkeletonJoint; - -/** A configuration of joints to be used by skeleton (see @ref xnSetSkeletonProfile) **/ -typedef enum XnSkeletonProfile -{ - /** No joints at all **/ - XN_SKEL_PROFILE_NONE = 1, - - /** All joints **/ - XN_SKEL_PROFILE_ALL = 2, - - /** All the joints in the upper body (torso and upwards) **/ - XN_SKEL_PROFILE_UPPER = 3, - - /** All the joints in the lower body (torso and downwards) **/ - XN_SKEL_PROFILE_LOWER = 4, - - /** The head and the hands **/ - XN_SKEL_PROFILE_HEAD_HANDS = 5, -} XnSkeletonProfile; - -/** Possible statuses for pose detection */ -typedef enum XnPoseDetectionStatus -{ - XN_POSE_DETECTION_STATUS_OK = 0, - XN_POSE_DETECTION_STATUS_NO_USER = 1, - XN_POSE_DETECTION_STATUS_TOP_FOV = 2, - XN_POSE_DETECTION_STATUS_SIDE_FOV = 3, - XN_POSE_DETECTION_STATUS_ERROR = 4, - XN_POSE_DETECTION_STATUS_NO_TRACKING = 5 -} XnPoseDetectionStatus; - - -/** Possible pose detection states */ -typedef enum XnPoseDetectionState -{ - XN_POSE_DETECTION_STATE_IN_POSE =0, - XN_POSE_DETECTION_STATE_OUT_OF_POSE =1, - XN_POSE_DETECTION_STATE_UNDEFINED =2 -} XnPoseDetectionState; -/** Possible statuses for calibration */ -typedef enum XnCalibrationStatus -{ - XN_CALIBRATION_STATUS_OK = 0, - XN_CALIBRATION_STATUS_NO_USER = 1, - XN_CALIBRATION_STATUS_ARM = 2, - XN_CALIBRATION_STATUS_LEG = 3, - XN_CALIBRATION_STATUS_HEAD = 4, - XN_CALIBRATION_STATUS_TORSO = 5, - XN_CALIBRATION_STATUS_TOP_FOV = 6, - XN_CALIBRATION_STATUS_SIDE_FOV = 7, - XN_CALIBRATION_STATUS_POSE = 8, - XN_CALIBRATION_STATUS_MANUAL_ABORT = 9, - XN_CALIBRATION_STATUS_MANUAL_RESET = 10, - XN_CALIBRATION_STATUS_TIMEOUT_FAIL = 11 -} XnCalibrationStatus; - -typedef enum XnDirection -{ - XN_DIRECTION_ILLEGAL = 0, - XN_DIRECTION_LEFT = 1, - XN_DIRECTION_RIGHT = 2, - XN_DIRECTION_UP = 3, - XN_DIRECTION_DOWN = 4, - XN_DIRECTION_FORWARD = 5, - XN_DIRECTION_BACKWARD = 6, -} XnDirection; - -// User -/** - * Callback for a general user-related event. It is used for either creation or destruction of users. - * - * @param hNode [in] A handle to the user generator that raised this event. - * @param user [in] The id of the user that is relevant to this event. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnUserHandler)(XnNodeHandle hNode, XnUserID user, void* pCookie); - -// Hands -/** - * Callback for the creation of a new hand. - * - * @param hNode [in] A handle to the hands generator that raised this event. - * @param user [in] The id of the new hand. - * @param pPosition [in] The position in which the hand was created. - * @param fTime [in] Timestamp, in seconds. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnHandCreate)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); - -/** - * Callback for a new position of an already-existing hand. - * - * @param hNode [in] A handle to the hands generator that raised this event. - * @param user [in] The id of the hand that moved. - * @param pPosition [in] The new position of the relevant hand. - * @param fTime [in] Timestamp, in seconds. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnHandUpdate)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, void* pCookie); - -/** - * Callback for the disappearance of a hand. - * - * @param hNode [in] A handle to the hands generator that raised this event. - * @param user [in] The id of the hand that disappeared. - * @param fTime [in] Timestamp, in seconds. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnHandDestroy)(XnNodeHandle hNode, XnUserID user, XnFloat fTime, void* pCookie); - -/** - * Callback for when a hand reaches the edge of the FOV - * - * @param hNode [in] A handle to the hand generator that raised this event. - * @param user [in] The id of the hand that reached FOV - * @param pPosition [in] The current position of the hand - * @param fTime [in] Timestamp, in seconds - * @param eDir [in] The direction of the edge that is being reached - * @param pCookie [in] A user-provided cookie that was given when reigstering to this event - */ -typedef void (XN_CALLBACK_TYPE* XnHandTouchingFOVEdge)(XnNodeHandle hNode, XnUserID user, const XnPoint3D* pPosition, XnFloat fTime, XnDirection eDir, void* pCookie); -// Gesture Module -/** - * Callback for the recognition of a gesture - * - * @param hNode [in] A handle to the gesture generator that raised this event. - * @param strGesture [in] The gesture that was recognized. - * @param pIDPosition [in] The position in which the gesture was identified. - * @param pEndPosition [in] The position of the hand that performed the gesture at the end of the gesture. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnGestureRecognized)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pIDPosition, const XnPoint3D* pEndPosition, void* pCookie); -/** - * Callback for indication that a certain gesture is in progress - * - * @param hNode [in] A handle to the gesture generator that raised this event. - * @param strGesture [in] The gesture that is on its way to being recognized. - * @param pPosition [in] The current position of the hand that is performing the gesture. - * @param fProgress [in] The percentage of the gesture that was already performed. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnGestureProgress)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, XnFloat fProgress, void* pCookie); - -typedef void (XN_CALLBACK_TYPE* XnGestureIntermediateStageCompleted)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); -typedef void (XN_CALLBACK_TYPE* XnGestureReadyForNextIntermediateStage)(XnNodeHandle hNode, const XnChar* strGesture, const XnPoint3D* pPosition, void* pCookie); - -// Skeleton -/** - * Callback for indication that a specific user's skeleton is now starting the calibration process - * - * @param hNode [in] A handle to the skeleton capability that raised this event. - * @param user [in] The id of the user that's being calibrated. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnCalibrationStart)(XnNodeHandle hNode, XnUserID user, void* pCookie); -/** - * Callback for indication that a specific user's skeleton has now completed the calibration process - * - * @param hNode [in] A handle to the skeleton capability that raised this event. - * @param user [in] The id of the user for which calibration was attempted. - * @param bSuccess [in] An indication of whether or not the calibration attempt succeeded. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnCalibrationEnd)(XnNodeHandle hNode, XnUserID user, XnBool bSuccess, void* pCookie); - -typedef void (XN_CALLBACK_TYPE* XnCalibrationInProgress)(XnNodeHandle hNode, XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); -typedef void (XN_CALLBACK_TYPE* XnCalibrationComplete)(XnNodeHandle hNode, XnUserID user, XnCalibrationStatus calibrationError, void* pCookie); - -// Pose Detection -/** - * Callback for indication that a specific user has entered a pose, or left it. - * - * @param hNode [in] A handle to the pose capability that raised this event. - * @param strPose [in] The pose that is relevant to the callback. - * @param user [in] The id of the user that entered the pose or left it. - * @param pCookie [in] A user-provided cookie that was given when registering to this event. - */ -typedef void (XN_CALLBACK_TYPE* XnPoseDetectionCallback)(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, void* pCookie); - -typedef void (XN_CALLBACK_TYPE* XnPoseDetectionInProgress)(XnNodeHandle hNode, const XnChar* strPose, XnUserID user, XnPoseDetectionStatus poseDetectionError, void* pCookie); - -//--------------------------------------------------------------------------- -// Recorder Types -//--------------------------------------------------------------------------- - -/** - * @ingroup recorder - */ - -/** Defines the type of medium used for recording. See @ref xnAddNodeToRecording. */ -typedef enum XnRecordMedium -{ - /** Recording medium is a file **/ - XN_RECORD_MEDIUM_FILE = 0, -} XnRecordMedium; - -/** An ID of a codec. See @ref xnCreateCodec. **/ -typedef XnUInt32 XnCodecID; - -/** Define a Codec ID by 4 characters, e.g. XN_CODEC_ID('J','P','E','G') **/ -#define XN_CODEC_ID(c1, c2, c3, c4) (XnCodecID)((c4 << 24) | (c3 << 16) | (c2 << 8) | c1) - -/** - * An interface used for communication between OpenNI and a recorder module. This interface is used by a recorder - * module to send recorded data to OpenNI, which then knows how to store them according to one of the values of - * @ref XnRecordMedium. - **/ -typedef struct XnRecorderOutputStreamInterface -{ - /** - * Opens the stream for writing. - * - * @param pCookie [in] A token that was received with this interface. - */ - XnStatus (XN_CALLBACK_TYPE* Open)(void* pCookie); - - /** - * Writes data to the stream - * - * @param pCookie [in] A token that was received with this interface. - * @param strNodeName [in] Optional. Specifies the node that initiated the write action. - * @param pData [in] A pointer to the data to write. - * @param nSize [in] Number of bytes to be written. - */ - XnStatus (XN_CALLBACK_TYPE* Write)(void* pCookie, const XnChar* strNodeName, - const void* pData, XnUInt32 nSize); - - /** - * Sets the stream's pointer to the specified position. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param seekType [in] Specifies how to seek - according to current position, end or beginning. - * @param nOffset [in] Specifies how many bytes to move - */ - XnStatus (XN_CALLBACK_TYPE* Seek)(void* pCookie, XnOSSeekType seekType, const XnInt32 nOffset); - - /** - * Tells the current position in the stream. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param pPos [out] The position of the stream. - * - * @returns (XnUInt32)-1 on error. - */ - XnUInt32 (XN_CALLBACK_TYPE* Tell)(void* pCookie); - - /** - * Closes the stream. - * - * @param pCookie [in] A token that was received with this interface. - */ - void (XN_CALLBACK_TYPE* Close)(void* pCookie); - - /** - * Sets the stream's pointer to the specified position. (64bit version, for large files) - * - * @param pCookie [in] A cookie that was received with this interface. - * @param seekType [in] Specifies how to seek - according to current position, end or beginning. - * @param nOffset [in] Specifies how many bytes to move - */ - XnStatus (XN_CALLBACK_TYPE* Seek64)(void* pCookie, XnOSSeekType seekType, const XnInt64 nOffset); - - /** - * Tells the current position in the stream. (64bit version, for large files) - * - * @param pCookie [in] A cookie that was received with this interface. - * @param pPos [out] The position of the stream. - * - * @returns (XnUInt64)-1 on error. - */ - XnUInt64 (XN_CALLBACK_TYPE* Tell64)(void* pCookie); - -} XnRecorderOutputStreamInterface; - -/** - * An interface used for communication between OpenNI and a player module. This interface is used by a player - * module to receive recorded data from OpenNI, which knows where to get them according to one of the values of - * @ref XnRecordMedium. - **/ -typedef struct XnPlayerInputStreamInterface -{ - /** - * Opens the stream for reading. - * - * @param pCookie [in] A cookie that was received with this interface. - */ - XnStatus (XN_CALLBACK_TYPE* Open)(void* pCookie); - - /** - * Reads data from the stream. May read less data than asked, if the stream is near its end. This is not - * considered an error. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param pBuffer [out] A pointer to the buffer to read into. - * @param nSize [in] Number of bytes to read. - * @param pnBytesRead [out] Optional. Number of bytes actually read. - */ - XnStatus (XN_CALLBACK_TYPE* Read)(void* pCookie, void* pBuffer, XnUInt32 nSize, XnUInt32* pnBytesRead); - - /** - * Sets the stream's pointer to the specified position. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param seekType [in] Specifies how to seek - according to current position, end or beginning. - * @param nOffset [in] Specifies how many bytes to move - */ - XnStatus (XN_CALLBACK_TYPE* Seek)(void* pCookie, XnOSSeekType seekType, const XnInt32 nOffset); - - /** - * Tells the current stream position - * - * @param pCookie [in] A cookie that was received with this interface. - * - * @returns (XnUInt32)-1 if there was an error in the stream. - */ - XnUInt32 (XN_CALLBACK_TYPE* Tell)(void* pCookie); - - /** - * Closes the stream. - * - * @param pCookie [in] A cookie that was received with this interface. - */ - void (XN_CALLBACK_TYPE* Close)(void* pCookie); - - /** - * Sets the stream's pointer to the specified position. (64bit version, for large files) - * - * @param pCookie [in] A cookie that was received with this interface. - * @param seekType [in] Specifies how to seek - according to current position, end or beginning. - * @param nOffset [in] Specifies how many bytes to move - */ - XnStatus (XN_CALLBACK_TYPE* Seek64)(void* pCookie, XnOSSeekType seekType, const XnInt64 nOffset); - - /** - * Tells the current position in the stream. (64bit version, for large files) - * - * @param pCookie [in] A cookie that was received with this interface. - * @param pPos [out] The position of the stream. - * - * @returns (XnUInt64)-1 on error. - */ - XnUInt64 (XN_CALLBACK_TYPE* Tell64)(void* pCookie); - -} XnPlayerInputStreamInterface; - -/** - * An interface that is used for notifications about node events. - **/ -typedef struct XnNodeNotifications -{ - /** - * Notifies the object that a production node was added - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The instance name of the added node. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeAdded) - (void* pCookie, const XnChar* strNodeName, XnProductionNodeType type, - XnCodecID compression); - - /** - * Notifies the object that a production node has been removed - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The instance name of the removed node. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeRemoved) - (void* pCookie, const XnChar* strNodeName); - - /** - * Notifies the object that an integer type property has changed. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose property changed. - * @param strPropName [in] The name of the property that changed. - * @param nValue [in] The new value of the property. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeIntPropChanged) - (void* pCookie, const XnChar* strNodeName, - const XnChar* strPropName, XnUInt64 nValue); - - /** - * Notifies the object that a real type property has changed. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose property changed. - * @param strPropName [in] The name of the property that changed. - * @param dValue [in] The new value of the property. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeRealPropChanged) - (void* pCookie, const XnChar* strNodeName, - const XnChar* strPropName, XnDouble dValue); - - /** - * Notifies the object that a string type property has changed. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose property changed. - * @param strPropName [in] The name of the property that changed. - * @param strValue [in] The new value of the property. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeStringPropChanged) - (void* pCookie, const XnChar* strNodeName, - const XnChar* strPropName, const XnChar* strValue); - - /** - * Notifies the object that a general type property has changed. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose property changed. - * @param strPropName [in] The name of the property that changed. - * @param nBufferSize [in] The size of the buffer that holds the new value. - * @param pBuffer [in] The buffer that holds the new value of the property. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeGeneralPropChanged) - (void* pCookie, const XnChar* strNodeName, - const XnChar* strPropName, XnUInt32 nBufferSize, const void* pBuffer); - - /** - * Notifies the object that a node has finished sending all the initial 'property changed' notifications. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose state is ready. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeStateReady) - (void* pCookie, const XnChar* strNodeName); - - /** - * Notifies the object that it has received new data. - * - * @param pCookie [in] A cookie that was received with this interface. - * @param strNodeName [in] The name of the node whose property changed. - * @param strName [in] The name of the property that changed. - * @param nBufferSize [in] The size of the buffer that holds the new value. - * @param pBuffer [in] The buffer that holds the new value of the property. - */ - XnStatus (XN_CALLBACK_TYPE* OnNodeNewData) - (void* pCookie, const XnChar* strNodeName, - XnUInt64 nTimeStamp, XnUInt32 nFrame, const void* pData, XnUInt32 nSize); - -} XnNodeNotifications; - -/** A pair of 32-bit unsigned values. **/ -typedef struct XnUInt32XYPair -{ - XnUInt32 X; - XnUInt32 Y; -} XnUInt32XYPair; - -/** Holds information about a general frame of data. **/ -typedef struct XnOutputMetaData -{ - /** Represents the time in which the data was received. **/ - XnUInt64 nTimestamp; - - /** The frame ID, or frame number, of this frame. **/ - XnUInt32 nFrameID; - - /** The size of the data. **/ - XnUInt32 nDataSize; - - /** Specifies whether the generator updated this data on the last call to one of the XnWaitXXXUpdateXXX() functions. **/ - XnBool bIsNew; - -} XnOutputMetaData; - -/** Holds information about a frame of data that has a map format. **/ -typedef struct XnMapMetaData -{ - /** A pointer to general information about this frame. **/ - XnOutputMetaData* pOutput; - - /** The resolution of this frame, including any cropping that was set. **/ - XnUInt32XYPair Res; - - /** The offset of the cropped region within this frame. Set to (0,0) if no cropping was done. **/ - XnUInt32XYPair Offset; - - /** The full resolution of this frame, disregarding cropping. **/ - XnUInt32XYPair FullRes; - - /** The pixel format of this frame. **/ - XnPixelFormat PixelFormat; - - /** The number of frames per second that was set when this frame was received. **/ - XnUInt32 nFPS; -} XnMapMetaData; - -/** Holds information about a frame of depth. **/ -typedef struct XnDepthMetaData -{ - /** A pointer to the map meta data of this frame. **/ - XnMapMetaData* pMap; - - /** A pointer to the depth data of this frame. **/ - const XnDepthPixel* pData; - - /** The value of the Z resolution of this frame - the maximum depth a pixel can have. **/ - XnDepthPixel nZRes; -} XnDepthMetaData; - -/** Holds information about an image frame. **/ -typedef struct XnImageMetaData -{ - /** A pointer to the map meta data of this frame **/ - XnMapMetaData* pMap; - - /** A pointer to the image data of this frame **/ - const XnUInt8* pData; -} XnImageMetaData; - -/** Holds information about an IR frame. **/ -typedef struct XnIRMetaData -{ - /** A pointer to the map meta data of this frame **/ - XnMapMetaData* pMap; - - /** A pointer to the IR data of this frame **/ - const XnIRPixel* pData; -} XnIRMetaData; - -typedef struct XnAudioMetaData -{ - /** A pointer to general information about this chunk of audio. **/ - XnOutputMetaData* pOutput; - - /** The wave output mode of this cunk of audio. **/ - XnWaveOutputMode Wave; - - /** A pointer to audio data of this cunk. **/ - const XnUInt8* pData; -} XnAudioMetaData; - -typedef struct XnSceneMetaData -{ - /** A pointer to the map meta data of this frame. **/ - XnMapMetaData* pMap; - - /** A pointer to the scene data of this frame. **/ - const XnLabel* pData; -} XnSceneMetaData; - -#if XN_PLATFORM != XN_PLATFORM_ARC -#pragma pack (pop) -#endif - -#endif //__XN_TYPES_H__ |