OpenNI 1.0.0
|
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__