diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 13:11:21 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 13:16:16 +0300 |
commit | c6090dc08fbb6c88cc3a35482660839664eb46e7 (patch) | |
tree | 316138cb73c49877f5a80a8496c2f1b737122fb5 /tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h | |
parent | b235e3dbeddc7ee7f4d47509c799bbc990585832 (diff) | |
parent | 31f9c57bc50ae053cfaf039a1dfdb128e2494458 (diff) |
Merge branch 'develop'
Change-Id: Id4ff4c5196d35401f647e70a8c2a127d1c77629f
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h')
-rw-r--r-- | tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h new file mode 100644 index 00000000..4113d248 --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h @@ -0,0 +1,117 @@ +/**************************************************************************** +* * +* 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_USB_DEVICE_H_ +#define _XN_USB_DEVICE_H_ + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include "XnPlatform.h" +#include "XnStatus.h" + +#if (XN_PLATFORM == XN_PLATFORM_WIN32) + + #include <Win32/usb100.h> + typedef USB_ENDPOINT_DESCRIPTOR XnUSBEndpointDescriptor; + typedef USB_INTERFACE_DESCRIPTOR XnUSBInterfaceDescriptor; + typedef USB_CONFIGURATION_DESCRIPTOR XnUSBConfigDescriptor; + typedef USB_DEVICE_DESCRIPTOR XnUSBDeviceDescriptor; + + #define USB_DT_CONFIG_SIZE 0 + #define USB_DT_CONFIG 0 + #define USB_CONFIG_ATT_ONE 0 + #define USB_DT_ENDPOINT_SIZE 0 + #define USB_DT_ENDPOINT 0 + #define USB_ENDPOINT_XFER_BULK 0 + #define USB_DT_INTERFACE_SIZE 0 + #define USB_DT_INTERFACE 0 + #define USB_CLASS_VENDOR_SPEC 0 + #define USB_DT_DEVICE_SIZE 0 + #define USB_DT_DEVICE 0 + +#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM) + #include <linux/usb/ch9.h> + typedef struct usb_endpoint_descriptor XnUSBEndpointDescriptor; + typedef struct usb_interface_descriptor XnUSBInterfaceDescriptor; + typedef struct usb_config_descriptor XnUSBConfigDescriptor; + typedef struct usb_device_descriptor XnUSBDeviceDescriptor; +#else + #error "Unsupported Platform!" +#endif + +//--------------------------------------------------------------------------- +// Structures & Enums +//--------------------------------------------------------------------------- +typedef enum XnUSBDeviceConnectionState +{ + XN_USB_DEVICE_DISCONNECTED, + XN_USB_DEVICE_CONNECTED, + XN_USB_DEVICE_SUSPENDED, +} XnUSBDeviceConnectionState; + +typedef struct XnUSBStringDescriptor +{ + XnUInt8 nID; + const XnChar* strString; +} XnUSBStringDescriptor; + +typedef struct XnUSBInterfaceDescriptorHolder +{ + XnUSBInterfaceDescriptor descriptor; + XnUSBEndpointDescriptor** aEndpoints; +} XnUSBInterfaceDescriptorHolder; + +typedef struct XnUSBConfigDescriptorHolder +{ + XnUSBConfigDescriptor descriptor; + XnUSBInterfaceDescriptorHolder** aInterfaces; +} XnUSBConfigDescriptorHolder; + +typedef struct XnUSBDeviceDescriptorHolder +{ + XnUSBDeviceDescriptor descriptor; + XnUSBConfigDescriptorHolder** aConfigurations; + XnUSBStringDescriptor* aStrings; + XnUInt8 nStrings; +} XnUSBDeviceDescriptorHolder; + +struct XnUSBDevice; +typedef struct XnUSBDevice XnUSBDevice; + +typedef void (*XnUSBDeviceNewControlRequestCallback)(XnUSBDevice* pDevice, void* pCookie); +typedef void (*XnUSBDeviceConnectivityChangedCallback)(XnUSBDevice* pDevice, XnUSBDeviceConnectionState state, void* pCookie); + +//--------------------------------------------------------------------------- +// API +//--------------------------------------------------------------------------- +XN_C_API XnStatus XN_C_DECL xnUSBDeviceInit(const XnUSBDeviceDescriptorHolder* pDeviceDescriptor, XnUInt32 nControlMessageMaxSize, XnUSBDevice** ppDevice); +XN_C_API void XN_C_DECL xnUSBDeviceShutdown(XnUSBDevice* pDevice); +XN_C_API XnBool XN_C_DECL xnUSBDeviceIsControlRequestPending(XnUSBDevice* pDevice); + +//pnRequestSize is max size on input, actual size on output +XN_C_API XnStatus XN_C_DECL xnUSBDeviceReceiveControlRequest(XnUSBDevice* pDevice, XnUChar* pBuffer, XnUInt32* pnRequestSize); +XN_C_API XnStatus XN_C_DECL xnUSBDeviceSendControlReply(XnUSBDevice* pDevice, const XnUChar* pBuffer, XnUInt32 nReplySize); +XN_C_API XnStatus XN_C_DECL xnUSBDeviceSetNewControlRequestCallback(XnUSBDevice* pDevice, XnUSBDeviceNewControlRequestCallback pFunc, void* pCookie); +XN_C_API XnStatus XN_C_DECL xnUSBDeviceSetConnectivityChangedCallback(XnUSBDevice* pDevice, XnUSBDeviceConnectivityChangedCallback pFunc, void* pCookie); +XN_C_API XnStatus XN_C_DECL xnUSBDeviceWriteEndpoint(XnUSBDevice* pDevice, XnUInt8 nAddress, const XnUChar* pData, XnUInt32 nDataSize); + +#endif |