OpenNI 1.5.7
XnUSB.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * *
3 * OpenNI 1.x Alpha *
4 * Copyright (C) 2012 PrimeSense Ltd. *
5 * *
6 * This file is part of OpenNI. *
7 * *
8 * Licensed under the Apache License, Version 2.0 (the "License"); *
9 * you may not use this file except in compliance with the License. *
10 * You may obtain a copy of the License at *
11 * *
12 * http://www.apache.org/licenses/LICENSE-2.0 *
13 * *
14 * Unless required by applicable law or agreed to in writing, software *
15 * distributed under the License is distributed on an "AS IS" BASIS, *
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
17 * See the License for the specific language governing permissions and *
18 * limitations under the License. *
19 * *
20 *****************************************************************************/
21 #ifndef _XN_USB_H_
22 #define _XN_USB_H_
23 
24 //---------------------------------------------------------------------------
25 // Includes
26 //---------------------------------------------------------------------------
27 #include "XnOS.h"
28 
29 //---------------------------------------------------------------------------
30 // Structures & Enums
31 //---------------------------------------------------------------------------
32 typedef enum {
37 
38 typedef enum {
43 
44 typedef enum {
48 
49 typedef enum {
54 
55 typedef enum {
59 
60 struct XnUSBDeviceHandle;
61 struct XnUSBEndPointHandle;
62 
63 typedef XnChar XnUSBConnectionString[XN_FILE_MAX_PATH];
64 
65 typedef XnUSBDeviceHandle* XN_USB_DEV_HANDLE;
66 typedef XnUSBEndPointHandle* XN_USB_EP_HANDLE;
67 
68 typedef XnBool (XN_CALLBACK_TYPE* XnUSBReadCallbackFunctionPtr)(XnUChar* pBuffer, XnUInt32 nBufferSize, void* pCallbackData);
69 typedef XnBool (XN_CALLBACK_TYPE* XnUSBEventCallbackFunctionPtr)(XnUSBEventType USBEventType, XnChar* cpDevPath, void* pCallbackData);
70 
71 typedef struct XnUSBEventArgs
72 {
73  const XnChar* strDevicePath;
76 
77 typedef void (XN_CALLBACK_TYPE* XnUSBDeviceCallbackFunctionPtr)(XnUSBEventArgs* pArgs, void* pCookie);
78 
79 //---------------------------------------------------------------------------
80 // Exported Function Declaration
81 //---------------------------------------------------------------------------
84 
85 XN_C_API XnStatus XN_API_DEPRECATED("Use xnUSBEnumerateDevices() instead") XN_C_DECL xnUSBIsDevicePresent(XnUInt16 nVendorID, XnUInt16 nProductID, void* pExtraParam, XnBool* pbDevicePresent);
86 
87 XN_C_API XnStatus XN_C_DECL xnUSBEnumerateDevices(XnUInt16 nVendorID, XnUInt16 nProductID, const XnUSBConnectionString** pastrDevicePaths, XnUInt32* pnCount);
88 XN_C_API void XN_C_DECL xnUSBFreeDevicesList(const XnUSBConnectionString* astrDevicePaths);
89 
90 XN_C_API XnStatus XN_API_DEPRECATED("Use xnUSBOpenDeviceByPath() instead") XN_C_DECL xnUSBOpenDevice(XnUInt16 nVendorID, XnUInt16 nProductID, void* pExtraParam, void* pExtraParam2, XN_USB_DEV_HANDLE* pDevHandlePtr);
91 XN_C_API XnStatus XN_C_DECL xnUSBOpenDeviceByPath(const XnUSBConnectionString strDevicePath, XN_USB_DEV_HANDLE* pDevHandlePtr);
93 
95 
96 XN_C_API XnStatus XN_C_DECL xnUSBSetConfig(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 nConfig);
97 XN_C_API XnStatus XN_C_DECL xnUSBGetConfig(XN_USB_DEV_HANDLE pDevHandle, XnUInt8* pnConfig);
98 
99 XN_C_API XnStatus XN_C_DECL xnUSBSetInterface(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 nInterface, XnUInt8 nAltInterface);
100 XN_C_API XnStatus XN_C_DECL xnUSBGetInterface(XN_USB_DEV_HANDLE pDevHandle, XnUInt8* pnInterface, XnUInt8* pnAltInterface);
101 
102 XN_C_API XnStatus XN_C_DECL xnUSBOpenEndPoint(XN_USB_DEV_HANDLE pDevHandle, XnUInt16 nEndPointID, XnUSBEndPointType nEPType, XnUSBDirectionType nDirType, XN_USB_EP_HANDLE* pEPHandlePtr);
104 XN_C_API XnStatus XN_C_DECL xnUSBGetEndPointMaxPacketSize(XN_USB_EP_HANDLE pEPHandle, XnUInt32* pnMaxPacketSize);
105 
109 
110 XN_C_API XnStatus XN_C_DECL xnUSBSendControl(XN_USB_DEV_HANDLE pDevHandle, XnUSBControlType nType, XnUInt8 nRequest, XnUInt16 nValue, XnUInt16 nIndex, XnUChar* pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut);
111 XN_C_API XnStatus XN_C_DECL xnUSBReceiveControl(XN_USB_DEV_HANDLE pDevHandle, XnUSBControlType nType, XnUInt8 nRequest, XnUInt16 nValue, XnUInt16 nIndex, XnUChar* pBuffer, XnUInt32 nBufferSize, XnUInt32* pnBytesReceived, XnUInt32 nTimeOut);
112 
113 XN_C_API XnStatus XN_C_DECL xnUSBReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar* pBuffer, XnUInt32 nBufferSize, XnUInt32* pnBytesReceived, XnUInt32 nTimeOut);
114 XN_C_API XnStatus XN_C_DECL xnUSBWriteEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar* pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut);
115 
116 XN_C_API XnStatus XN_C_DECL xnUSBQueueReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar* pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut);
117 XN_C_API XnStatus XN_C_DECL xnUSBFinishReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUInt32* pnBytesReceived, XnUInt32 nTimeOut);
118 
119 XN_C_API XnStatus XN_C_DECL xnUSBInitReadThread(XN_USB_EP_HANDLE pEPHandle, XnUInt32 nBufferSize, XnUInt32 nNumBuffers, XnUInt32 nTimeOut, XnUSBReadCallbackFunctionPtr pCallbackFunction, void* pCallbackData);
121 
122 XN_C_API XnStatus XN_API_DEPRECATED("Use xnUSBRegisterToConnectivityEvents() instead") XN_C_DECL xnUSBSetCallbackHandler(XnUInt16 nVendorID, XnUInt16 nProductID, void* pExtraParam, XnUSBEventCallbackFunctionPtr pCallbackFunction, void* pCallbackData);
123 
124 XN_C_API XnStatus XN_C_DECL xnUSBRegisterToConnectivityEvents(XnUInt16 nVendorID, XnUInt16 nProductID, XnUSBDeviceCallbackFunctionPtr pFunc, void* pCookie, XnRegistrationHandle* phRegistration);
126 
127 #endif //_XN_USB_H_
struct XnRegistrationHandleImpl * XnRegistrationHandle
Definition: XnPlatform.h:101
#define XN_C_API
Definition: XnPlatform.h:121
XnUInt32 XnStatus
Definition: XnStatus.h:33
void(* XnUSBDeviceCallbackFunctionPtr)(XnUSBEventArgs *pArgs, void *pCookie)
Definition: XnUSB.h:77
XN_C_API void XN_C_DECL xnUSBFreeDevicesList(const XnUSBConnectionString *astrDevicePaths)
XN_C_API XnStatus XN_C_DECL xnUSBSetCallbackHandler(XnUInt16 nVendorID, XnUInt16 nProductID, void *pExtraParam, XnUSBEventCallbackFunctionPtr pCallbackFunction, void *pCallbackData)
XN_C_API XnStatus XN_C_DECL xnUSBSendControl(XN_USB_DEV_HANDLE pDevHandle, XnUSBControlType nType, XnUInt8 nRequest, XnUInt16 nValue, XnUInt16 nIndex, XnUChar *pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut)
XN_C_API void XN_C_DECL xnUSBUnregisterFromConnectivityEvents(XnRegistrationHandle hRegistration)
XN_C_API XnStatus XN_C_DECL xnUSBGetEndPointMaxPacketSize(XN_USB_EP_HANDLE pEPHandle, XnUInt32 *pnMaxPacketSize)
XN_C_API XnStatus XN_C_DECL xnUSBCloseDevice(XN_USB_DEV_HANDLE pDevHandle)
XN_C_API XnStatus XN_C_DECL xnUSBCloseEndPoint(XN_USB_EP_HANDLE pEPHandle)
XnUSBDeviceHandle * XN_USB_DEV_HANDLE
Definition: XnUSB.h:65
XN_C_API XnStatus XN_C_DECL xnUSBOpenDevice(XnUInt16 nVendorID, XnUInt16 nProductID, void *pExtraParam, void *pExtraParam2, XN_USB_DEV_HANDLE *pDevHandlePtr)
XN_C_API XnStatus XN_C_DECL xnUSBGetInterface(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 *pnInterface, XnUInt8 *pnAltInterface)
XnUSBEndPointHandle * XN_USB_EP_HANDLE
Definition: XnUSB.h:66
XnBool(* XnUSBReadCallbackFunctionPtr)(XnUChar *pBuffer, XnUInt32 nBufferSize, void *pCallbackData)
Definition: XnUSB.h:68
XN_C_API XnStatus XN_C_DECL xnUSBGetConfig(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 *pnConfig)
XN_C_API XnStatus XN_C_DECL xnUSBWriteEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar *pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut)
XN_C_API XnStatus XN_C_DECL xnUSBInitReadThread(XN_USB_EP_HANDLE pEPHandle, XnUInt32 nBufferSize, XnUInt32 nNumBuffers, XnUInt32 nTimeOut, XnUSBReadCallbackFunctionPtr pCallbackFunction, void *pCallbackData)
XN_C_API XnStatus XN_C_DECL xnUSBQueueReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar *pBuffer, XnUInt32 nBufferSize, XnUInt32 nTimeOut)
XN_C_API XnStatus XN_C_DECL xnUSBRegisterToConnectivityEvents(XnUInt16 nVendorID, XnUInt16 nProductID, XnUSBDeviceCallbackFunctionPtr pFunc, void *pCookie, XnRegistrationHandle *phRegistration)
XN_C_API XnStatus XN_C_DECL xnUSBAbortEndPoint(XN_USB_EP_HANDLE pEPHandle)
XN_C_API XnStatus XN_C_DECL xnUSBShutdownReadThread(XN_USB_EP_HANDLE pEPHandle)
XN_C_API XnStatus XN_C_DECL xnUSBSetConfig(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 nConfig)
XnChar XnUSBConnectionString[XN_FILE_MAX_PATH]
Definition: XnUSB.h:61
XN_C_API XnStatus XN_C_DECL xnUSBOpenDeviceByPath(const XnUSBConnectionString strDevicePath, XN_USB_DEV_HANDLE *pDevHandlePtr)
XN_C_API XnStatus XN_C_DECL xnUSBOpenEndPoint(XN_USB_DEV_HANDLE pDevHandle, XnUInt16 nEndPointID, XnUSBEndPointType nEPType, XnUSBDirectionType nDirType, XN_USB_EP_HANDLE *pEPHandlePtr)
XN_C_API XnStatus XN_C_DECL xnUSBShutdown()
XN_C_API XnStatus XN_C_DECL xnUSBSetInterface(XN_USB_DEV_HANDLE pDevHandle, XnUInt8 nInterface, XnUInt8 nAltInterface)
XN_C_API XnStatus XN_C_DECL xnUSBFlushEndPoint(XN_USB_EP_HANDLE pEPHandle)
XnUSBDeviceSpeed
Definition: XnUSB.h:32
@ XN_USB_DEVICE_FULL_SPEED
Definition: XnUSB.h:34
@ XN_USB_DEVICE_HIGH_SPEED
Definition: XnUSB.h:35
@ XN_USB_DEVICE_LOW_SPEED
Definition: XnUSB.h:33
XN_C_API XnStatus XN_C_DECL xnUSBReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUChar *pBuffer, XnUInt32 nBufferSize, XnUInt32 *pnBytesReceived, XnUInt32 nTimeOut)
XN_C_API XnStatus XN_C_DECL xnUSBResetEndPoint(XN_USB_EP_HANDLE pEPHandle)
XN_C_API XnStatus XN_C_DECL xnUSBEnumerateDevices(XnUInt16 nVendorID, XnUInt16 nProductID, const XnUSBConnectionString **pastrDevicePaths, XnUInt32 *pnCount)
XnBool(* XnUSBEventCallbackFunctionPtr)(XnUSBEventType USBEventType, XnChar *cpDevPath, void *pCallbackData)
Definition: XnUSB.h:69
XN_C_API XnStatus XN_C_DECL xnUSBInit()
XN_C_API XnStatus XN_C_DECL xnUSBFinishReadEndPoint(XN_USB_EP_HANDLE pEPHandle, XnUInt32 *pnBytesReceived, XnUInt32 nTimeOut)
XnUSBDirectionType
Definition: XnUSB.h:44
@ XN_USB_DIRECTION_OUT
Definition: XnUSB.h:46
@ XN_USB_DIRECTION_IN
Definition: XnUSB.h:45
XnUSBControlType
Definition: XnUSB.h:49
@ XN_USB_CONTROL_TYPE_STANDARD
Definition: XnUSB.h:50
@ XN_USB_CONTROL_TYPE_VENDOR
Definition: XnUSB.h:52
@ XN_USB_CONTROL_TYPE_CLASS
Definition: XnUSB.h:51
XN_C_API XnStatus XN_C_DECL xnUSBIsDevicePresent(XnUInt16 nVendorID, XnUInt16 nProductID, void *pExtraParam, XnBool *pbDevicePresent)
struct XnUSBEventArgs XnUSBEventArgs
XN_C_API XnStatus XN_C_DECL xnUSBGetDeviceSpeed(XN_USB_DEV_HANDLE pDevHandle, XnUSBDeviceSpeed *pDevSpeed)
XnUSBEndPointType
Definition: XnUSB.h:38
@ XN_USB_EP_INTERRUPT
Definition: XnUSB.h:41
@ XN_USB_EP_BULK
Definition: XnUSB.h:39
@ XN_USB_EP_ISOCHRONOUS
Definition: XnUSB.h:40
XN_C_API XnStatus XN_C_DECL xnUSBReceiveControl(XN_USB_DEV_HANDLE pDevHandle, XnUSBControlType nType, XnUInt8 nRequest, XnUInt16 nValue, XnUInt16 nIndex, XnUChar *pBuffer, XnUInt32 nBufferSize, XnUInt32 *pnBytesReceived, XnUInt32 nTimeOut)
XnUSBEventType
Definition: XnUSB.h:55
@ XN_USB_EVENT_DEVICE_CONNECT
Definition: XnUSB.h:56
@ XN_USB_EVENT_DEVICE_DISCONNECT
Definition: XnUSB.h:57
Definition: XnUSB.h:72
const XnChar * strDevicePath
Definition: XnUSB.h:73
XnUSBEventType eventType
Definition: XnUSB.h:74