OpenNI 1.0.0
XnPrdNode.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 *                                                                            *
00003 *  OpenNI 1.0 Alpha                                                          *
00004 *  Copyright (C) 2010 PrimeSense Ltd.                                        *
00005 *                                                                            *
00006 *  This file is part of OpenNI.                                              *
00007 *                                                                            *
00008 *  OpenNI is free software: you can redistribute it and/or modify            *
00009 *  it under the terms of the GNU Lesser General Public License as published  *
00010 *  by the Free Software Foundation, either version 3 of the License, or      *
00011 *  (at your option) any later version.                                       *
00012 *                                                                            *
00013 *  OpenNI is distributed in the hope that it will be useful,                 *
00014 *  but WITHOUT ANY WARRANTY; without even the implied warranty of            *
00015 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the              *
00016 *  GNU Lesser General Public License for more details.                       *
00017 *                                                                            *
00018 *  You should have received a copy of the GNU Lesser General Public License  *
00019 *  along with OpenNI. If not, see <http://www.gnu.org/licenses/>.            *
00020 *                                                                            *
00021 *****************************************************************************/
00022 
00023 
00024 
00025 
00026 #ifndef __XN_PRD_NODE_H__
00027 #define __XN_PRD_NODE_H__
00028 
00035 //---------------------------------------------------------------------------
00036 // Includes
00037 //---------------------------------------------------------------------------
00038 #include <XnTypes.h>
00039 
00040 //---------------------------------------------------------------------------
00041 // Functions
00042 //---------------------------------------------------------------------------
00043 
00058 XN_C_API XnNodeInfo* xnGetNodeInfo(XnNodeHandle hNode);
00059 
00065 XN_C_API const XnChar* xnGetNodeName(XnNodeHandle hNode);
00066 
00072 XN_C_API XnContext* xnGetContextFromNodeHandle(XnNodeHandle hNode);
00073 
00080 XN_C_API XnBool xnIsCapabilitySupported(XnNodeHandle hInstance, const XnChar* strCapabilityName);
00081 
00089 XN_C_API XnStatus xnSetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue);
00097 XN_C_API XnStatus xnSetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble dValue);
00105 XN_C_API XnStatus xnSetStringProperty(XnNodeHandle hInstance, const XnChar* strName, const XnChar* strValue);
00114 XN_C_API XnStatus xnSetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer);
00115 
00123 XN_C_API XnStatus xnGetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue);
00131 XN_C_API XnStatus xnGetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue);
00140 XN_C_API XnStatus xnGetStringProperty(XnNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize);
00149 XN_C_API XnStatus xnGetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer);
00150 
00157 XN_C_API XnStatus xnLockNodeForChanges(XnNodeHandle hInstance, XnLockHandle* phLock);
00158 
00165 XN_C_API XnStatus xnUnlockNodeForChanges(XnNodeHandle hInstance, XnLockHandle hLock);
00166 
00176 XN_C_API XnStatus xnLockedNodeStartChanges(XnNodeHandle hInstance, XnLockHandle hLock);
00177 
00184 XN_C_API XnStatus xnLockedNodeEndChanges(XnNodeHandle hInstance, XnLockHandle hLock);
00185 
00192 XN_C_API XnStatus xnAddNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode);
00193 
00203 XN_C_API XnStatus xnRemoveNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode);
00204 
00207 //---------------------------------------------------------------------------
00208 // ErrorState Capability
00209 //---------------------------------------------------------------------------
00210 
00232 XN_C_API XnStatus xnGetNodeErrorState(XnNodeHandle hInstance);
00233 
00242 XN_C_API XnStatus xnRegisterToNodeErrorStateChange
00243     (XnNodeHandle hInstance, XnStateChangedHandler handler,
00244     void* pCookie, XnCallbackHandle* phCallback);
00245 
00252 XN_C_API void xnUnregisterFromNodeErrorStateChange
00253     (XnNodeHandle hInstance, XnCallbackHandle hCallback);
00254 
00257 //---------------------------------------------------------------------------
00258 // Generators
00259 //---------------------------------------------------------------------------
00260 
00283 XN_C_API XnStatus xnStartGenerating(XnNodeHandle hInstance);
00284 
00292 XN_C_API XnBool xnIsGenerating(XnNodeHandle hInstance);
00293 
00301 XN_C_API XnStatus xnStopGenerating(XnNodeHandle hInstance);
00302 
00311 XN_C_API XnStatus xnRegisterToGenerationRunningChange
00312     (XnNodeHandle hInstance, XnStateChangedHandler handler,
00313     void* pCookie, XnCallbackHandle* phCallback);
00314 
00321 XN_C_API void xnUnregisterFromGenerationRunningChange
00322     (XnNodeHandle hInstance, XnCallbackHandle hCallback);
00323 
00325 
00342 XN_C_API XnStatus xnRegisterToNewDataAvailable
00343     (XnNodeHandle hInstance, XnStateChangedHandler handler,
00344     void* pCookie, XnCallbackHandle* phCallback);
00345 
00352 XN_C_API void xnUnregisterFromNewDataAvailable
00353     (XnNodeHandle hInstance, XnCallbackHandle hCallback);
00354 
00361 XN_C_API XnBool xnIsNewDataAvailable(XnNodeHandle hInstance, XnUInt64* pnTimestamp);
00362 
00364 
00377 XN_C_API XnStatus xnWaitAndUpdateData(XnNodeHandle hInstance);
00378 
00380 
00392 XN_C_API XnBool xnIsDataNew(XnNodeHandle hInstance);
00393 
00401 XN_C_API XnUInt32 xnGetDataSize(XnNodeHandle hInstance);
00402 
00410 XN_C_API XnUInt64 xnGetTimestamp(XnNodeHandle hInstance);
00411 
00419 XN_C_API XnUInt32 xnGetFrameID(XnNodeHandle hInstance);
00420 
00425 //---------------------------------------------------------------------------
00426 // Mirror Capability
00427 //---------------------------------------------------------------------------
00428 
00444 XN_C_API XnStatus xnSetMirror(XnNodeHandle hInstance, XnBool bMirror);
00445 
00451 XN_C_API XnBool xnIsMirrored(XnNodeHandle hInstance);
00452 
00461 XN_C_API XnStatus xnRegisterToMirrorChange
00462     (XnNodeHandle hInstance, XnStateChangedHandler handler,
00463     void* pCookie, XnCallbackHandle* phCallback);
00464 
00471 XN_C_API void xnUnregisterFromMirrorChange
00472     (XnNodeHandle hInstance, XnCallbackHandle hCallback);
00473 
00476 //---------------------------------------------------------------------------
00477 // Alternative View Point Capability
00478 //---------------------------------------------------------------------------
00479 
00500 XN_C_API XnBool xnIsViewPointSupported(XnNodeHandle hInstance, XnNodeHandle hOther);
00501 
00508 XN_C_API XnStatus xnSetViewPoint(XnNodeHandle hInstance, XnNodeHandle hOther);
00509 
00515 XN_C_API XnStatus xnResetViewPoint(XnNodeHandle hInstance);
00516 
00523 XN_C_API XnBool xnIsViewPointAs(XnNodeHandle hInstance, XnNodeHandle hOther);
00524 
00533 XN_C_API XnStatus xnRegisterToViewPointChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
00534 
00541 XN_C_API void xnUnregisterFromViewPointChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00542 
00545 //---------------------------------------------------------------------------
00546 // FrameSync Capability
00547 //---------------------------------------------------------------------------
00548 
00566 XN_C_API XnBool xnCanFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther);
00567 
00574 XN_C_API XnStatus xnFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther);
00575 
00582 XN_C_API XnStatus xnStopFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther);
00583 
00590 XN_C_API XnBool xnIsFrameSyncedWith(XnNodeHandle hInstance, XnNodeHandle hOther);
00591 
00600 XN_C_API XnStatus xnRegisterToFrameSyncChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
00601 
00608 XN_C_API void xnUnregisterFromFrameSyncChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00609 
00612 //---------------------------------------------------------------------------
00613 // Map Generators
00614 //---------------------------------------------------------------------------
00615 
00631 XN_C_API XnUInt32 xnGetSupportedMapOutputModesCount(XnNodeHandle hInstance);
00632 
00643 XN_C_API XnStatus xnGetSupportedMapOutputModes(XnNodeHandle hInstance, XnMapOutputMode* aModes, XnUInt32* pnCount);
00644 
00653 XN_C_API XnStatus xnSetMapOutputMode(XnNodeHandle hInstance, const XnMapOutputMode* pOutputMode);
00654 
00663 XN_C_API XnStatus xnGetMapOutputMode(XnNodeHandle hInstance, XnMapOutputMode* pOutputMode);
00664 
00675 XN_C_API XnStatus xnRegisterToMapOutputModeChange(XnNodeHandle hInstance, XnStateChangedHandler handler,
00676     void* pCookie, XnCallbackHandle* phCallback);
00677 
00684 XN_C_API void xnUnregisterFromMapOutputModeChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00685 
00688 //---------------------------------------------------------------------------
00689 // Cropping Capability
00690 //---------------------------------------------------------------------------
00691 
00692 
00713 XN_C_API XnStatus xnSetCropping(XnNodeHandle hInstance, const XnCropping* pCropping);
00714 
00723 XN_C_API XnStatus xnGetCropping(XnNodeHandle hInstance, XnCropping* pCropping);
00724 
00733 XN_C_API XnStatus xnRegisterToCroppingChange(XnNodeHandle hInstance, XnStateChangedHandler handler,
00734     void* pCookie, XnCallbackHandle* phCallback);
00735 
00742 XN_C_API void xnUnregisterFromCroppingChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00743 
00746 //---------------------------------------------------------------------------
00747 // Depth Generators
00748 //---------------------------------------------------------------------------
00749 
00766 XN_C_API XnStatus xnCreateDepthGenerator(
00767     XnContext* pContext,
00768     XnNodeHandle* phDepthGenerator,
00769     XnNodeQuery* pQuery, 
00770     XnEnumerationErrors* pErrors);
00771 
00779 XN_C_API XnDepthPixel xnGetDeviceMaxDepth(XnNodeHandle hInstance);
00780 
00789 XN_C_API XnStatus xnGetDepthFieldOfView(XnNodeHandle hInstance, XnFieldOfView* pFOV);
00790 
00801 XN_C_API XnStatus xnRegisterToDepthFieldOfViewChange(XnNodeHandle hInstance, XnStateChangedHandler handler,
00802     void* pCookie, XnCallbackHandle* phCallback);
00803 
00810 XN_C_API void xnUnregisterFromDepthFieldOfViewChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00811 
00822 XN_C_API XnStatus xnConvertProjectiveToRealWorld(
00823     XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aProjective, XnPoint3D* aRealWorld);
00824 
00835 XN_C_API XnStatus xnConvertRealWorldToProjective(
00836     XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aRealWorld, XnPoint3D* aProjective);
00837 
00845 XN_C_API XnDepthPixel* xnGetDepthMap(XnNodeHandle hInstance);
00846 
00853 XN_C_API void xnGetDepthMetaData(XnNodeHandle hInstance, XnDepthMetaData* pMetaData);
00854 
00857 //---------------------------------------------------------------------------
00858 // User Position Capability
00859 //---------------------------------------------------------------------------
00860 
00876 XN_C_API XnUInt32 xnGetSupportedUserPositionsCount(XnNodeHandle hInstance);
00877 
00887 XN_C_API XnStatus xnSetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, const XnBoundingBox3D* pPosition);
00888 
00898 XN_C_API XnStatus xnGetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, XnBoundingBox3D* pPosition);
00899 
00910 XN_C_API XnStatus xnRegisterToUserPositionChange(XnNodeHandle hInstance, XnStateChangedHandler handler,
00911     void* pCookie, XnCallbackHandle* phCallback);
00912 
00919 XN_C_API void xnUnregisterFromUserPositionChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
00920 
00923 //---------------------------------------------------------------------------
00924 // Image Generators
00925 //---------------------------------------------------------------------------
00926 
00944 XN_C_API XnStatus xnCreateImageGenerator(
00945     XnContext* pContext,
00946     XnNodeHandle* phImageGenerator,
00947     XnNodeQuery* pQuery, 
00948     XnEnumerationErrors* pErrors
00949     );
00950 
00959 XN_C_API XnRGB24Pixel* xnGetRGB24ImageMap(XnNodeHandle hInstance);
00960 
00969 XN_C_API XnYUV422DoublePixel* xnGetYUV422ImageMap(XnNodeHandle hInstance);
00970 
00979 XN_C_API XnGrayscale8Pixel* xnGetGrayscale8ImageMap(XnNodeHandle hInstance);
00980 
00989 XN_C_API XnGrayscale16Pixel* xnGetGrayscale16ImageMap(XnNodeHandle hInstance);
00990 
01003 XN_C_API XnUInt8* xnGetImageMap(XnNodeHandle hInstance);
01004 
01011 XN_C_API XnBool xnIsPixelFormatSupported(XnNodeHandle hInstance, XnPixelFormat Format);
01012 
01021 XN_C_API XnStatus xnSetPixelFormat(XnNodeHandle hInstance, XnPixelFormat Format);
01022 
01030 XN_C_API XnPixelFormat xnGetPixelFormat(XnNodeHandle hInstance);
01031 
01042 XN_C_API XnStatus xnRegisterToPixelFormatChange(XnNodeHandle hInstance, XnStateChangedHandler handler,
01043     void* pCookie, XnCallbackHandle* phCallback);
01044 
01051 XN_C_API void xnUnregisterFromPixelFormatChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01052 
01059 XN_C_API void xnGetImageMetaData(XnNodeHandle hInstance, XnImageMetaData* pMetaData);
01060 
01063 //---------------------------------------------------------------------------
01064 // IR Generators
01065 //---------------------------------------------------------------------------
01066 
01083 XN_C_API XnStatus xnCreateIRGenerator(
01084     XnContext* pContext,
01085     XnNodeHandle* phIRGenerator,
01086     XnNodeQuery* pQuery, 
01087     XnEnumerationErrors* pErrors
01088     );
01089 
01097 XN_C_API XnIRPixel* xnGetIRMap(XnNodeHandle hInstance);
01098 
01105 XN_C_API void xnGetIRMetaData(XnNodeHandle hInstance, XnIRMetaData* pMetaData);
01106 
01109 //---------------------------------------------------------------------------
01110 // Gesture Generators
01111 //---------------------------------------------------------------------------
01112 
01129 XN_C_API XnStatus xnCreateGestureGenerator(
01130     XnContext* pContext,
01131     XnNodeHandle* phGestureGenerator,
01132     XnNodeQuery* pQuery, 
01133     XnEnumerationErrors* pErrors
01134     );
01135 
01143 XN_C_API XnStatus xnAddGesture(XnNodeHandle hInstance, const XnChar* strGesture, XnBoundingBox3D* pArea);
01150 XN_C_API XnStatus xnRemoveGesture(XnNodeHandle hInstance, const XnChar* strGesture);
01158 XN_C_API XnStatus xnGetActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures);
01166 XN_C_API XnStatus xnGetAllActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
01174 XN_C_API XnStatus xnEnumerateGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures);
01182 XN_C_API XnStatus xnEnumerateAllGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures);
01189 XN_C_API XnBool xnIsGestureAvailable(XnNodeHandle hInstance, const XnChar* strGesture);
01196 XN_C_API XnBool xnIsGestureProgressSupported(XnNodeHandle hInstance, const XnChar* strGesture);
01206 XN_C_API XnStatus xnRegisterGestureCallbacks(XnNodeHandle hInstance, XnGestureRecognized RecognizedCB, XnGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback);
01213 XN_C_API void xnUnregisterGestureCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01222 XN_C_API XnStatus xnRegisterToGestureChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
01229 XN_C_API void xnUnregisterFromGestureChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01230 
01233 //---------------------------------------------------------------------------
01234 // Scene Analysis
01235 //---------------------------------------------------------------------------
01236 
01253 XN_C_API XnStatus xnCreateSceneAnalyzer(
01254     XnContext* pContext,
01255     XnNodeHandle* phSceneAnalyzer,
01256     XnNodeQuery* pQuery, 
01257     XnEnumerationErrors* pErrors
01258     );
01259 
01265 XN_C_API const XnLabel* xnGetLabelMap(XnNodeHandle hInstance);
01272 XN_C_API XnStatus xnGetFloor(XnNodeHandle hInstance, XnPlane3D* pPlane);
01273 
01280 XN_C_API void xnGetSceneMetaData(XnNodeHandle hInstance, XnSceneMetaData* pMetaData);
01281 
01284 //---------------------------------------------------------------------------
01285 // User Generator
01286 //---------------------------------------------------------------------------
01287 
01304 XN_C_API XnStatus xnCreateUserGenerator(
01305     XnContext* pContext,
01306     XnNodeHandle* phUserGenerator,
01307     XnNodeQuery* pQuery, 
01308     XnEnumerationErrors* pErrors
01309     );
01310 
01316 XN_C_API XnUInt16 xnGetNumberOfUsers(XnNodeHandle hInstance);
01324 XN_C_API XnStatus xnGetUsers(XnNodeHandle hInstance, XnUserID* pUsers, XnUInt16* pnUsers);
01332 XN_C_API XnStatus xnGetUserCoM(XnNodeHandle hInstance, XnUserID user, XnPoint3D* pCoM);
01345 XN_C_API XnStatus xnGetUserPixels(XnNodeHandle hInstance, XnUserID user, XnSceneMetaData* pScene);
01355 XN_C_API XnStatus xnRegisterUserCallbacks(XnNodeHandle hInstance, XnUserHandler NewUserCB, XnUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback);
01362 XN_C_API void xnUnregisterUserCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01363 
01366 //---------------------------------------------------------------------------
01367 // Skeleton Capability
01368 //---------------------------------------------------------------------------
01369 
01384 XN_C_API XnBool xnIsJointAvailable(XnNodeHandle hInstance, XnSkeletonJoint eJoint);
01391 XN_C_API XnBool xnIsProfileAvailable(XnNodeHandle hInstance, XnSkeletonProfile eProfile);
01398 XN_C_API XnStatus xnSetSkeletonProfile(XnNodeHandle hInstance, XnSkeletonProfile eProfile);
01406 XN_C_API XnStatus xnSetJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint, XnBool bState);
01413 XN_C_API XnBool xnIsJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint);
01422 XN_C_API XnStatus xnRegisterToJointConfigurationChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
01429 XN_C_API void xnUnregisterFromJointConfigurationChange(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01437 XN_C_API XnStatus xnEnumerateActiveJoints(XnNodeHandle hInstance, XnSkeletonJoint* pJoints, XnUInt16* pnJoints);
01446 XN_C_API XnStatus xnGetSkeletonJoint(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint);
01455 XN_C_API XnStatus xnGetSkeletonJointPosition(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint);
01464 XN_C_API XnStatus xnGetSkeletonJointOrientation(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint);
01471 XN_C_API XnBool xnIsSkeletonTracking(XnNodeHandle hInstance, XnUserID user);
01478 XN_C_API XnBool xnIsSkeletonCalibrated(XnNodeHandle hInstance, XnUserID user);
01485 XN_C_API XnBool xnIsSkeletonCalibrating(XnNodeHandle hInstance, XnUserID user);
01493 XN_C_API XnStatus xnRequestSkeletonCalibration(XnNodeHandle hInstance, XnUserID user, XnBool bForce);
01500 XN_C_API XnStatus xnAbortSkeletonCalibration(XnNodeHandle hInstance, XnUserID user);
01508 XN_C_API XnStatus xnSaveSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot);
01516 XN_C_API XnStatus xnLoadSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot);
01523 XN_C_API XnStatus xnClearSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot);
01530 XN_C_API XnBool xnIsSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot);
01537 XN_C_API XnStatus xnStartSkeletonTracking(XnNodeHandle hInstance, XnUserID user);
01544 XN_C_API XnStatus xnStopSkeletonTracking(XnNodeHandle hInstance, XnUserID user);
01551 XN_C_API XnStatus xnResetSkeleton(XnNodeHandle hInstance, XnUserID user);
01557 XN_C_API XnBool xnNeedPoseForSkeletonCalibration(XnNodeHandle hInstance);
01564 XN_C_API XnStatus xnGetSkeletonCalibrationPose(XnNodeHandle hInstance, XnChar* strPose);
01571 XN_C_API XnStatus xnSetSkeletonSmoothing(XnNodeHandle hInstance, XnFloat fFactor);
01581 XN_C_API XnStatus xnRegisterCalibrationCallbacks(XnNodeHandle hInstance, XnCalibrationStart CalibrationStartCB, XnCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback);
01588 XN_C_API void xnUnregisterCalibrationCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01589 
01592 //---------------------------------------------------------------------------
01593 // Pose Detection Capability
01594 //---------------------------------------------------------------------------
01595 
01609 XN_C_API XnUInt32 xnGetNumberOfPoses(XnNodeHandle hInstance);
01617 XN_C_API XnStatus xnGetAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32* pnPoses);
01625 XN_C_API XnStatus xnGetAllAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses);
01633 XN_C_API XnStatus xnStartPoseDetection(XnNodeHandle hInstance,const  XnChar* strPose, XnUserID user);
01640 XN_C_API XnStatus xnStopPoseDetection(XnNodeHandle hInstance, XnUserID user);
01650 XN_C_API XnStatus xnRegisterToPoseCallbacks(XnNodeHandle hInstance, XnPoseDetectionCallback PoseDetectionStartCB, XnPoseDetectionCallback PoseDetectionEndCB, void* pCookie, XnCallbackHandle* phCallback);
01657 XN_C_API void xnUnregisterFromPoseCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01658 
01661 //---------------------------------------------------------------------------
01662 // Hands Generator
01663 //---------------------------------------------------------------------------
01664 
01681 XN_C_API XnStatus xnCreateHandsGenerator(
01682     XnContext* pContext,
01683     XnNodeHandle* phHandsGenerator,
01684     XnNodeQuery* pQuery, 
01685     XnEnumerationErrors* pErrors
01686     );
01687 
01698 XN_C_API XnStatus xnRegisterHandCallbacks(XnNodeHandle hInstance, XnHandCreate CreateCB, XnHandUpdate UpdateCB, XnHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback);
01705 XN_C_API void xnUnregisterHandCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01712 XN_C_API XnStatus xnStopTracking(XnNodeHandle hInstance, XnUserID user);
01718 XN_C_API XnStatus xnStopTrackingAll(XnNodeHandle hInstance);
01725 XN_C_API XnStatus xnStartTracking(XnNodeHandle hInstance, const XnPoint3D* pPosition);
01732 XN_C_API XnStatus xnSetTrackingSmoothing(XnNodeHandle hInstance, XnFloat fFactor);
01733 
01736 //---------------------------------------------------------------------------
01737 // Audio Generator
01738 //---------------------------------------------------------------------------
01739 
01756 XN_C_API XnStatus xnCreateAudioGenerator(
01757     XnContext* pContext,
01758     XnNodeHandle* phAudioGenerator,
01759     XnNodeQuery* pQuery, 
01760     XnEnumerationErrors* pErrors
01761     );
01762 
01763 XN_C_API XnUChar* xnGetAudioBuffer(XnNodeHandle hInstance);
01764 XN_C_API XnUInt32 xnGetSupportedWaveOutputModesCount(XnNodeHandle hInstance);
01765 XN_C_API XnStatus xnGetSupportedWaveOutputModes(XnNodeHandle hInstance, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount);
01766 XN_C_API XnStatus xnSetWaveOutputMode(XnNodeHandle hInstance, const XnWaveOutputMode* OutputMode);
01767 XN_C_API XnStatus xnGetWaveOutputMode(XnNodeHandle hInstance, XnWaveOutputMode* OutputMode);
01768 XN_C_API XnStatus xnRegisterToWaveOutputModeChanges(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback);
01769 XN_C_API void xnUnregisterFromWaveOutputModeChanges(XnNodeHandle hInstance, XnCallbackHandle hCallback);
01770 
01777 XN_C_API void xnGetAudioMetaData(XnNodeHandle hInstance, XnAudioMetaData* pMetaData);
01778 
01781 //---------------------------------------------------------------------------
01782 // Mocks
01783 //---------------------------------------------------------------------------
01784 
01791 XN_C_API XnStatus xnMockDepthSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnDepthPixel* pData);
01792 XN_C_API XnStatus xnMockImageSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData);
01793 XN_C_API XnStatus xnMockIRSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnIRPixel* pData);
01794 XN_C_API XnStatus xnMockAudioSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData);
01795 
01798 //---------------------------------------------------------------------------
01799 // Codecs
01800 //---------------------------------------------------------------------------
01801 
01810 XN_C_API XnStatus xnCreateCodec(XnContext* pContext, XnCodecID codecID, XnNodeHandle hInitializerNode, XnNodeHandle* phCodec);
01811 XN_C_API XnCodecID xnGetCodecID(XnNodeHandle hCodec);
01812 XN_C_API XnStatus xnEncodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 
01813                                void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
01814 XN_C_API XnStatus xnDecodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 
01815                                void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten);
01816 
01819 //---------------------------------------------------------------------------
01820 // Recorder
01821 //---------------------------------------------------------------------------
01837 XN_C_API XnStatus xnCreateRecorder(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phRecorder);
01838 
01846 XN_C_API XnStatus xnSetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium destType, const XnChar* strDest);
01847 
01858 XN_C_API XnStatus xnAddNodeToRecording(XnNodeHandle hRecorder, XnNodeHandle hNode, XnCodecID compression);
01859 
01867 XN_C_API XnStatus xnRemoveNodeFromRecording(XnNodeHandle hRecorder, XnNodeHandle hNode);
01868 
01874 XN_C_API XnStatus xnRecord(XnNodeHandle hRecorder);
01875 
01881 XN_C_API const XnChar* xnGetRecorderFormat(XnNodeHandle hRecorder);
01882 
01885 //---------------------------------------------------------------------------
01886 // Player
01887 //---------------------------------------------------------------------------
01888 
01904 XN_C_API XnStatus xnCreatePlayer(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phPlayer);
01905 
01915 XN_C_API XnStatus xnSetPlayerRepeat(XnNodeHandle hPlayer, XnBool bRepeat);
01916 
01928 XN_C_API XnStatus xnSetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium sourceType, const XnChar* strSource);
01929 
01940 XN_C_API XnStatus xnGetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium* pSourceType, XnChar* strSource, XnUInt32 nBufSize);
01941 
01949 XN_C_API XnStatus xnPlayerReadNext(XnNodeHandle hPlayer);
01950 
01968 XN_C_API XnStatus xnSeekPlayerToTimeStamp(XnNodeHandle hPlayer, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin);
01969 
01989 XN_C_API XnStatus xnSeekPlayerToFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin);
01990 
01997 XN_C_API XnStatus xnTellPlayerTimestamp(XnNodeHandle hPlayer, XnUInt64* pnTimestamp);
01998 
02008 XN_C_API XnStatus xnTellPlayerFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrame);
02009 
02017 XN_C_API XnStatus xnGetPlayerNumFrames(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrames);
02018 
02025 XN_C_API const XnChar* xnGetPlayerSupportedFormat(XnNodeHandle hPlayer);
02026 
02036 XN_C_API XnStatus xnEnumeratePlayerNodes(XnNodeHandle hPlayer, XnNodeInfoList** ppList);
02037 
02046 XN_C_API XnBool xnIsPlayerAtEOF(XnNodeHandle hPlayer);
02047 
02058 XN_C_API XnStatus xnRegisterToEndOfFileReached
02059     (XnNodeHandle hPlayer, XnStateChangedHandler handler,
02060     void* pCookie, XnCallbackHandle* phCallback);
02061 
02068 XN_C_API void xnUnregisterFromEndOfFileReached
02069     (XnNodeHandle hInstance, XnCallbackHandle hCallback);
02070 
02082 XN_C_API XnStatus xnSetPlaybackSpeed(XnNodeHandle hInstance, XnDouble dSpeed);
02083 
02090 XN_C_API XnDouble xnGetPlaybackSpeed(XnNodeHandle hInstance);
02091 
02094 #endif // __XN_PRD_NODE_H__