diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-20 13:18:59 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 10:08:51 +0000 |
commit | 31f9c57bc50ae053cfaf039a1dfdb128e2494458 (patch) | |
tree | 316138cb73c49877f5a80a8496c2f1b737122fb5 /tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32 | |
parent | 4162ddeb02ee41fd4217d7f3d93d45cab3313ba8 (diff) |
Fix issues with COIN builds
-Fix miscellaneous compile errors
-Move manual tests to manual folder and enable export of autotests
-Added widgets requirement
-Fixed autotests
-Fixed renderer and controller synchronization in QML case
-Treat fallback Mesa as ES2 similar to setting AA_UseSoftwareOpenGL
Change-Id: If6619733725d079e339bef16262e5ea1450ab20f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@theqtcompany.com>
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32')
3 files changed, 682 insertions, 0 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnOSWin32.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnOSWin32.h new file mode 100644 index 00000000..c821744d --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnOSWin32.h @@ -0,0 +1,157 @@ +/**************************************************************************** +* * +* 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_OS_WIN32_H__ +#define __XN_OS_WIN32_H__ + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include <XnPlatform.h> + +//--------------------------------------------------------------------------- +// Files +//--------------------------------------------------------------------------- +/** A generic handle type. */ +typedef HANDLE XN_HANDLE; + +/** A file handle type. */ +typedef HANDLE XN_FILE_HANDLE; + +/** The value of an invalid file handle. */ +#define XN_INVALID_FILE_HANDLE INVALID_HANDLE_VALUE + +/** A string that specifies the current directory. */ +#define XN_FILE_LOCAL_DIR ".\\" + +/** The file directory separator. */ +#define XN_FILE_DIR_SEP "\\" + +/** The file extension separator. */ +#define XN_FILE_EXT_SEP "." + +/** The file "all" wildcard. */ +#define XN_FILE_ALL_WILDCARD "*" + +/** The newline separation string. */ +#define XN_NEW_LINE_SEP "\r\n" + +//--------------------------------------------------------------------------- +// INI Files +//--------------------------------------------------------------------------- +/** A string that specifies the extension of INI files. */ +#define XN_INI_FILE_EXT "ini" + +/** The maximum allowed INI string length (in bytes). */ +// Note: This must always be big enough to contain a 32-bit number! +#define XN_INI_MAX_LEN 256 + +//--------------------------------------------------------------------------- +// Shared Libraries +//--------------------------------------------------------------------------- +/** A shared library handle type. */ +typedef HMODULE XN_LIB_HANDLE; + +/** A string that specifies the prefix of shared library files. */ +#define XN_SHARED_LIBRARY_PREFIX "" + +/** A string that specifies the postfix of shared library files. */ +#define XN_SHARED_LIBRARY_POSTFIX ".dll" + +//--------------------------------------------------------------------------- +// Threads +//--------------------------------------------------------------------------- +/** A Xiron thread type. */ +typedef HANDLE XN_THREAD_HANDLE; + +/** A Xiron thread ID. */ +typedef DWORD XN_THREAD_ID; + +/** A Xiron process ID. */ +typedef DWORD XN_PROCESS_ID; + +/** The thread entry point function prototype. */ +typedef LPTHREAD_START_ROUTINE XN_THREAD_PROC_PROTO; + +/** The thread entry point function definition. */ +#define XN_THREAD_PROC DWORD WINAPI + +/** The thread return function. */ +#define XN_THREAD_PROC_RETURN(ret) return(ret) + +/** The thread passable data pointer type. */ +typedef LPVOID XN_THREAD_PARAM; + +//--------------------------------------------------------------------------- +// Time Outs +//--------------------------------------------------------------------------- +/** The mutex lock infinite timeout. */ +#define XN_WAIT_INFINITE INFINITE + +//--------------------------------------------------------------------------- +// Mutex +//--------------------------------------------------------------------------- +/** A Xiron mutex type. */ +typedef HANDLE XN_MUTEX_HANDLE; + +//--------------------------------------------------------------------------- +// Critical Sections +//--------------------------------------------------------------------------- +/** A Xiron critical sections type. */ +typedef CRITICAL_SECTION* XN_CRITICAL_SECTION_HANDLE; + +//--------------------------------------------------------------------------- +// Events +//--------------------------------------------------------------------------- +/** A Xiron event type. */ +typedef HANDLE XN_EVENT_HANDLE; + +//--------------------------------------------------------------------------- +// Semaphores +//--------------------------------------------------------------------------- +/** A Xiron semaphore type. */ +typedef HANDLE XN_SEMAPHORE_HANDLE; + +//--------------------------------------------------------------------------- +// Timer +//--------------------------------------------------------------------------- +/** The Xiron OS timer structure. */ +typedef struct XnOSTimer +{ + XnDouble dTicksPerTimeUnit; + LARGE_INTEGER nStartTick; +} XnOSTimer; + +//--------------------------------------------------------------------------- +// Network +//--------------------------------------------------------------------------- +/** The network host name and port separator. */ +#define XN_NETWORK_HOST_PORT_SEP ":" + +//--------------------------------------------------------------------------- +// Swaps +//--------------------------------------------------------------------------- +#define XN_PREPARE_VAR16_IN_BUFFER(var) (var) +#define XN_PREPARE_VAR32_IN_BUFFER(var) (var) +#define XN_PREPARE_VAR64_IN_BUFFER(var) (var) +#define XN_PREPARE_VAR_FLOAT_IN_BUFFER(var) (var) + +#endif //__XN_OS_WIN32_H__
\ No newline at end of file diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnPlatformWin32.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnPlatformWin32.h new file mode 100644 index 00000000..efc26ead --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/XnPlatformWin32.h @@ -0,0 +1,255 @@ +/**************************************************************************** +* * +* 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_PLATFORM_WIN32_H_ +#define _XN_PLATFORM_WIN32_H_ + +//--------------------------------------------------------------------------- +// Prerequisites +//--------------------------------------------------------------------------- +#ifndef WINVER // Allow use of features specific to Windows XP or later + #define WINVER 0x0501 +#endif +#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later + #define _WIN32_WINNT 0x0501 +#endif +#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later + #define _WIN32_WINDOWS 0x0410 +#endif +#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later + #define _WIN32_IE 0x0600 +#endif +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Undeprecate CRT functions +#ifndef _CRT_SECURE_NO_DEPRECATE + #define _CRT_SECURE_NO_DEPRECATE 1 +#endif + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include <windows.h> +#include <stdlib.h> +#include <stdio.h> +#include <malloc.h> +#include <io.h> +#include <time.h> +#include <assert.h> +#include <float.h> +#include <crtdbg.h> + +//--------------------------------------------------------------------------- +// Platform Basic Definition +//--------------------------------------------------------------------------- +#define XN_PLATFORM XN_PLATFORM_WIN32 +#define XN_PLATFORM_STRING "Win32" + +//--------------------------------------------------------------------------- +// Platform Capabilities +//--------------------------------------------------------------------------- +#define XN_PLATFORM_ENDIAN_TYPE XN_PLATFORM_IS_LITTLE_ENDIAN + +#if _MSC_VER < 1400 // Before VS2005 there was no support for the vaargs macro... + #define XN_PLATFORM_VAARGS_TYPE XN_PLATFORM_USE_NO_VAARGS +#else + #define XN_PLATFORM_VAARGS_TYPE XN_PLATFORM_USE_WIN32_VAARGS_STYLE +#endif + +#define XN_PLATFORM_SUPPORTS_DYNAMIC_LIBS 1 + +//--------------------------------------------------------------------------- +// Basic Types +//--------------------------------------------------------------------------- +/** Boolean TRUE/FALSE type. */ +typedef BOOL XnBool; + +/** Signed character for strings. */ +typedef char XnChar; +/** Unsigned character for strings. */ +typedef unsigned char XnUChar; + +/** Signed wide character for strings. */ +typedef wchar_t XnWChar; + +/** 8-bit signed integer. */ +typedef signed char XnInt8; +/** 8-bit unsigned integer. */ +typedef unsigned char XnUInt8; + +/** 16-bit signed integer. */ +typedef short XnInt16; +/** 16-bit unsigned integer. */ +typedef unsigned short XnUInt16; + +/** 32-bit signed integer. */ +typedef int XnInt32; +/** 32-bit unsigned integer. */ +typedef unsigned int XnUInt32; + +/** 64-bit signed integer. */ +typedef __int64 XnInt64; +/** 64-bit unsigned integer. */ +typedef unsigned __int64 XnUInt64; + +/** natural signed integer. */ +typedef int XnInt; +/** natural unsigned integer. */ +typedef unsigned int XnUInt; + +/** Float (32bit) */ +typedef float XnFloat; +/** Double (64bit) */ +typedef double XnDouble; + +/** Far procedures type (for shared libraries functions). */ +typedef FARPROC XnFarProc; + +/** Size type. */ +typedef size_t XnSizeT; + +/** Max unsigned 8-bit value */ +#define XN_MAX_UINT8 _UI8_MAX +/** Max unsigned 16-bit value */ +#define XN_MAX_UINT16 _UI16_MAX +/** Max unsigned 32-bit value */ +#define XN_MAX_UINT32 _UI32_MAX +/** Max unsigned 64-bit value */ +#define XN_MAX_UINT64 _UI64_MAX + +/** Min signed 8-bit value */ +#define XN_MIN_INT8 _I8_MIN +/** Min signed 16-bit value */ +#define XN_MIN_INT16 _I16_MIN +/** Min signed 32-bit value */ +#define XN_MIN_INT32 _I32_MIN +/** Min signed 64-bit value */ +#define XN_MIN_INT64 _I64_MIN + +/** Max signed 8-bit value */ +#define XN_MAX_INT8 _I8_MAX +/** Max signed 16-bit value */ +#define XN_MAX_INT16 _I16_MAX +/** Max signed 32-bit value */ +#define XN_MAX_INT32 _I32_MAX +/** Max signed 64-bit value */ +#define XN_MAX_INT64 _I64_MAX + +/** Min double value */ +#define XN_MIN_DOUBLE DBL_MIN +/** Max double value */ +#define XN_MAX_DOUBLE DBL_MAX + +//--------------------------------------------------------------------------- +// Memory +//--------------------------------------------------------------------------- +/** The default memory alignment. */ +#define XN_DEFAULT_MEM_ALIGN 16 + +/** The thread static declarator (using TLS). */ +#define XN_THREAD_STATIC __declspec(thread) + +//--------------------------------------------------------------------------- +// Files +//--------------------------------------------------------------------------- +/** The maximum allowed file path size (in bytes). */ +#define XN_FILE_MAX_PATH MAX_PATH + +//--------------------------------------------------------------------------- +// Call backs +//--------------------------------------------------------------------------- +/** The std call type. */ +#define XN_STDCALL __stdcall + +/** The call back calling convention. */ +#define XN_CALLBACK_TYPE XN_STDCALL + +/** The C and C++ calling convension. */ +#define XN_C_DECL __cdecl + +//--------------------------------------------------------------------------- +// Macros +//--------------------------------------------------------------------------- +/** Returns the date and time at compile time. */ +#define XN_TIMESTAMP __DATE__ " " __TIME__ + +/** Converts n into a pre-processor string. */ +#define XN_STRINGIFY(n) XN_STRINGIFY_HELPER(n) +#define XN_STRINGIFY_HELPER(n) #n + +/** Asserts an expression, only on Debug build. */ +#define XN_ASSERT(x) _ASSERTE(x) + +//--------------------------------------------------------------------------- +// API Export/Import Macros +//--------------------------------------------------------------------------- +/** Indicates an exported shared library function. */ +#define XN_API_EXPORT __declspec(dllexport) + +/** Indicates an imported shared library function. */ +#define XN_API_IMPORT __declspec(dllimport) + +/** Indicates a deprecated function */ +#if _MSC_VER < 1400 // Before VS2005 there was no support for declspec deprecated... + #define XN_API_DEPRECATED(msg) +#else + #define XN_API_DEPRECATED(msg) __declspec(deprecated(msg)) +#endif + +#ifdef __INTEL_COMPILER + #define XN_DEPRECATED_WARNING_IDS 1786 + #define XN_HIDES_PARENT_METHOD_WARNING_ID 1125 + #define XN_CONDITION_IS_CONST_WARNING_ID + #define XN_INHERITS_VIA_DOMINANCE_WARNING_ID + #define XN_UNALIGNED_ADDRESS_WARNING_ID + #define XN_STRUCT_PADDED_WARNING_ID +#else + #define XN_DEPRECATED_WARNING_IDS 4995 4996 + #define XN_HIDES_PARENT_METHOD_WARNING_ID + #define XN_CONDITION_IS_CONST_WARNING_ID 4127 + #define XN_INHERITS_VIA_DOMINANCE_WARNING_ID 4250 + #define XN_UNALIGNED_ADDRESS_WARNING_ID 4366 + #define XN_STRUCT_PADDED_WARNING_ID 4324 +#endif + +#define XN_PRAGMA_START_DISABLED_WARNING_SECTION(warnings) \ + __pragma(warning(push)) \ + __pragma(warning(disable: warnings)) + +#define XN_PRAGMA_STOP_DISABLED_WARNING_SECTION \ + __pragma(warning(pop)) + +/** Declares a global shared library export function. */ +#define XN_API_EXPORT_INIT() \ + BOOL APIENTRY DllMain (HMODULE /*hModule*/, DWORD nReasonForCall, LPVOID /*lpReserved*/) \ + { \ + switch (nReasonForCall) \ + { \ + case DLL_PROCESS_ATTACH: \ + case DLL_THREAD_ATTACH: \ + case DLL_THREAD_DETACH: \ + case DLL_PROCESS_DETACH: \ + break; \ + } \ + return TRUE; \ + } + +#endif //_XN_PLATFORM_WIN32_H_ diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/usb100.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/usb100.h new file mode 100644 index 00000000..63c87b58 --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/Win32/usb100.h @@ -0,0 +1,270 @@ +#ifndef __USB100_H__ +#define __USB100_H__ + + +#include <PSHPACK1.H> + + +//bmRequest.Dir +#define BMREQUEST_HOST_TO_DEVICE 0 +#define BMREQUEST_DEVICE_TO_HOST 1 + +//bmRequest.Type +#define BMREQUEST_STANDARD 0 +#define BMREQUEST_CLASS 1 +#define BMREQUEST_VENDOR 2 + +//bmRequest.Recipient +#define BMREQUEST_TO_DEVICE 0 +#define BMREQUEST_TO_INTERFACE 1 +#define BMREQUEST_TO_ENDPOINT 2 +#define BMREQUEST_TO_OTHER 3 + + +#define MAXIMUM_USB_STRING_LENGTH 255 + +// values for the bits returned by the USB GET_STATUS command +#define USB_GETSTATUS_SELF_POWERED 0x01 +#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02 + + +#define USB_DEVICE_DESCRIPTOR_TYPE 0x01 +#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 +#define USB_STRING_DESCRIPTOR_TYPE 0x03 +#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 +#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 + +// descriptor types defined by DWG documents +#define USB_RESERVED_DESCRIPTOR_TYPE 0x06 +#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07 +#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08 + +#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d<<8 | i)) + +// +// Values for bmAttributes field of an +// endpoint descriptor +// + +#define USB_ENDPOINT_TYPE_MASK 0x03 + +#define USB_ENDPOINT_TYPE_CONTROL 0x00 +#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01 +#define USB_ENDPOINT_TYPE_BULK 0x02 +#define USB_ENDPOINT_TYPE_INTERRUPT 0x03 + + +// +// definitions for bits in the bmAttributes field of a +// configuration descriptor. +// +#define USB_CONFIG_POWERED_MASK 0xc0 + +#define USB_CONFIG_BUS_POWERED 0x80 +#define USB_CONFIG_SELF_POWERED 0x40 +#define USB_CONFIG_REMOTE_WAKEUP 0x20 + +// +// Endpoint direction bit, stored in address +// + +#define USB_ENDPOINT_DIRECTION_MASK 0x80 + +// test direction bit in the bEndpointAddress field of +// an endpoint descriptor. +#define USB_ENDPOINT_DIRECTION_OUT(addr) (!((addr) & USB_ENDPOINT_DIRECTION_MASK)) +#define USB_ENDPOINT_DIRECTION_IN(addr) ((addr) & USB_ENDPOINT_DIRECTION_MASK) + +// +// USB defined request codes +// see chapter 9 of the USB 1.0 specifcation for +// more information. +// + +// These are the correct values based on the USB 1.0 +// specification + +#define USB_REQUEST_GET_STATUS 0x00 +#define USB_REQUEST_CLEAR_FEATURE 0x01 + +#define USB_REQUEST_SET_FEATURE 0x03 + +#define USB_REQUEST_SET_ADDRESS 0x05 +#define USB_REQUEST_GET_DESCRIPTOR 0x06 +#define USB_REQUEST_SET_DESCRIPTOR 0x07 +#define USB_REQUEST_GET_CONFIGURATION 0x08 +#define USB_REQUEST_SET_CONFIGURATION 0x09 +#define USB_REQUEST_GET_INTERFACE 0x0A +#define USB_REQUEST_SET_INTERFACE 0x0B +#define USB_REQUEST_SYNC_FRAME 0x0C + + +// +// defined USB device classes +// + + +#define USB_DEVICE_CLASS_RESERVED 0x00 +#define USB_DEVICE_CLASS_AUDIO 0x01 +#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02 +#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03 +#define USB_DEVICE_CLASS_MONITOR 0x04 +#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05 +#define USB_DEVICE_CLASS_POWER 0x06 +#define USB_DEVICE_CLASS_PRINTER 0x07 +#define USB_DEVICE_CLASS_STORAGE 0x08 +#define USB_DEVICE_CLASS_HUB 0x09 +#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF + +// +// USB Core defined Feature selectors +// + +#define USB_FEATURE_ENDPOINT_STALL 0x0000 +#define USB_FEATURE_REMOTE_WAKEUP 0x0001 + +// +// USB DWG defined Feature selectors +// + +#define USB_FEATURE_INTERFACE_POWER_D0 0x0002 +#define USB_FEATURE_INTERFACE_POWER_D1 0x0003 +#define USB_FEATURE_INTERFACE_POWER_D2 0x0004 +#define USB_FEATURE_INTERFACE_POWER_D3 0x0005 + +typedef struct _USB_DEVICE_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + USHORT bcdUSB; + UCHAR bDeviceClass; + UCHAR bDeviceSubClass; + UCHAR bDeviceProtocol; + UCHAR bMaxPacketSize0; + USHORT idVendor; + USHORT idProduct; + USHORT bcdDevice; + UCHAR iManufacturer; + UCHAR iProduct; + UCHAR iSerialNumber; + UCHAR bNumConfigurations; +} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR; + +typedef struct _USB_ENDPOINT_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + UCHAR bEndpointAddress; + UCHAR bmAttributes; + USHORT wMaxPacketSize; + UCHAR bInterval; +} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR; + +typedef struct _USB_CONFIGURATION_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + USHORT wTotalLength; + UCHAR bNumInterfaces; + UCHAR bConfigurationValue; + UCHAR iConfiguration; + UCHAR bmAttributes; + UCHAR MaxPower; +} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR; + +typedef struct _USB_INTERFACE_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + UCHAR bInterfaceNumber; + UCHAR bAlternateSetting; + UCHAR bNumEndpoints; + UCHAR bInterfaceClass; + UCHAR bInterfaceSubClass; + UCHAR bInterfaceProtocol; + UCHAR iInterface; +} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR; + +typedef struct _USB_STRING_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + WCHAR bString[1]; +} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR; + +typedef struct _USB_COMMON_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; +} USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR; + + +// +// Standard USB HUB definitions +// +// See Chapter 11 USB core specification +// + +typedef struct _USB_HUB_DESCRIPTOR { + UCHAR bDescriptorLength; // Length of this descriptor + UCHAR bDescriptorType; // Hub configuration type + UCHAR bNumberOfPorts; // number of ports on this hub + USHORT wHubCharacteristics; // Hub Charateristics + UCHAR bPowerOnToPowerGood; // port power on till power good in 2ms + UCHAR bHubControlCurrent; // max current in mA + // + // room for 255 ports power control and removable bitmask + UCHAR bRemoveAndPowerMask[64]; +} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR; + + +// +// Structures defined by various DWG feature documents +// + + +// +// See DWG USB Feature Specification: Interface Power Management +// + +#define USB_SUPPORT_D0_COMMAND 0x01 +#define USB_SUPPORT_D1_COMMAND 0x02 +#define USB_SUPPORT_D2_COMMAND 0x04 +#define USB_SUPPORT_D3_COMMAND 0x08 + +#define USB_SUPPORT_D1_WAKEUP 0x10 +#define USB_SUPPORT_D2_WAKEUP 0x20 + + +typedef struct _USB_CONFIGURATION_POWER_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + UCHAR SelfPowerConsumedD0[3]; + UCHAR bPowerSummaryId; + UCHAR bBusPowerSavingD1; + UCHAR bSelfPowerSavingD1; + UCHAR bBusPowerSavingD2; + UCHAR bSelfPowerSavingD2; + UCHAR bBusPowerSavingD3; + UCHAR bSelfPowerSavingD3; + USHORT TransitionTimeFromD1; + USHORT TransitionTimeFromD2; + USHORT TransitionTimeFromD3; +} USB_CONFIGURATION_POWER_DESCRIPTOR, *PUSB_CONFIGURATION_POWER_DESCRIPTOR; + + +typedef struct _USB_INTERFACE_POWER_DESCRIPTOR { + UCHAR bLength; + UCHAR bDescriptorType; + UCHAR bmCapabilitiesFlags; + UCHAR bBusPowerSavingD1; + UCHAR bSelfPowerSavingD1; + UCHAR bBusPowerSavingD2; + UCHAR bSelfPowerSavingD2; + UCHAR bBusPowerSavingD3; + UCHAR bSelfPowerSavingD3; + USHORT TransitionTimeFromD1; + USHORT TransitionTimeFromD2; + USHORT TransitionTimeFromD3; +} USB_INTERFACE_POWER_DESCRIPTOR, *PUSB_INTERFACE_POWER_DESCRIPTOR; + + +#include <POPPACK.H> + + +#endif /* __USB100_H__ */ + |