# Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """USB constant definitions. """ class DescriptorType(object): """Descriptor Types. See Universal Serial Bus Specification Revision 2.0 Table 9-5. """ DEVICE = 1 CONFIGURATION = 2 STRING = 3 INTERFACE = 4 ENDPOINT = 5 QUALIFIER = 6 OTHER_SPEED_CONFIGURATION = 7 BOS = 15 DEVICE_CAPABILITY = 16 class CapabilityType(object): """Device capability types. See Universal Serial Bus 3.1 Specification, Revision 1.0 Table 9-14. """ WIRELESS_USB = 0x01 USB_20_EXTENSION = 0x02 SUPERSPEED_USB = 0x03 CONTAINER_ID = 0x04 PLATFORM = 0x05 POWER_DELIVERY_CAPABILITY = 0x06 BATTERY_INFO_CAPABILITY = 0x07 PD_CONSUMER_PORT_CAPABILITY = 0x08 PD_PROVIDER_PORT_CAPABILITY = 0x09 SUPERSPEED_PLUS = 0x0A PRECISION_TIME_MEASUREMENT = 0x0B WIRELESS_USB_EXT = 0x0C class DeviceClass(object): """Class code. See http://www.usb.org/developers/defined_class. """ PER_INTERFACE = 0 AUDIO = 1 COMM = 2 HID = 3 PHYSICAL = 5 STILL_IMAGE = 6 PRINTER = 7 MASS_STORAGE = 8 HUB = 9 CDC_DATA = 10 CSCID = 11 CONTENT_SEC = 13 VIDEO = 14 VENDOR = 0xFF class DeviceSubClass(object): """Subclass code. See http://www.usb.org/developers/defined_class. """ PER_INTERFACE = 0 VENDOR = 0xFF class DeviceProtocol(object): """Protocol code. See http://www.usb.org/developers/defined_class. """ PER_INTERFACE = 0 VENDOR = 0xFF class InterfaceClass(object): """Class code. See http://www.usb.org/developers/defined_class. """ VENDOR = 0xFF class InterfaceSubClass(object): """Subclass code. See http://www.usb.org/developers/defined_class. """ VENDOR = 0xFF class InterfaceProtocol(object): """Protocol code. See http://www.usb.org/developers/defined_class. """ VENDOR = 0xFF class TransferType(object): """Transfer Type. See http://www.usb.org/developers/defined_class. """ MASK = 3 CONTROL = 0 ISOCHRONOUS = 1 BULK = 2 INTERRUPT = 3 class Dir(object): """Data transfer direction. See Universal Serial Bus Specification Revision 2.0 Table 9-2. """ OUT = 0 IN = 0x80 class Type(object): """Request Type. See Universal Serial Bus Specification Revision 2.0 Table 9-2. """ MASK = 0x60 STANDARD = 0x00 CLASS = 0x20 VENDOR = 0x40 RESERVED = 0x60 class Recipient(object): """Request Recipient. See Universal Serial Bus Specification Revision 2.0 Table 9-2. """ MASK = 0x1f DEVICE = 0 INTERFACE = 1 ENDPOINT = 2 OTHER = 3 class Request(object): """Standard Request Codes. See Universal Serial Bus Specification Revision 2.0 Table 9-4. """ GET_STATUS = 0x00 CLEAR_FEATURE = 0x01 SET_FEATURE = 0x03 SET_ADDRESS = 0x05 GET_DESCRIPTOR = 0x06 SET_DESCRIPTOR = 0x07 GET_CONFIGURATION = 0x08 SET_CONFIGURATION = 0x09 GET_INTERFACE = 0x0A SET_INTERFACE = 0x0B SYNCH_FRAME = 0x0C SET_SEL = 0x30 SET_ISOCH_DELAY = 0x31 class Speed(object): UNKNOWN = 0 LOW = 1 FULL = 2 HIGH = 3 WIRELESS = 4 SUPER = 5 class VendorID(object): GOOGLE = 0x18D1 class ProductID(object): GOOGLE_TEST_GADGET = 0x58F0 GOOGLE_KEYBOARD_GADGET = 0x58F1 GOOGLE_MOUSE_GADGET = 0x58F2 GOOGLE_HID_ECHO_GADGET = 0x58F3 GOOGLE_ECHO_GADGET = 0x58F4 GOOGLE_COMPOSITE_ECHO_GADGET = 0x58F5