summaryrefslogtreecommitdiffstats
path: root/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h')
-rw-r--r--tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnUSBDevice.h117
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