# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.1.0

import enum

import winrt.system
from winrt import _winrt_windows_devices_usb

__all__ = [
    "UsbControlRecipient",
    "UsbControlTransferType",
    "UsbEndpointType",
    "UsbReadOptions",
    "UsbTransferDirection",
    "UsbWriteOptions",
    "UsbBulkInEndpointDescriptor",
    "UsbBulkInPipe",
    "UsbBulkOutEndpointDescriptor",
    "UsbBulkOutPipe",
    "UsbConfiguration",
    "UsbConfigurationDescriptor",
    "UsbControlRequestType",
    "UsbDescriptor",
    "UsbDevice",
    "UsbDeviceClass",
    "UsbDeviceClasses",
    "UsbDeviceDescriptor",
    "UsbEndpointDescriptor",
    "UsbInterface",
    "UsbInterfaceDescriptor",
    "UsbInterfaceSetting",
    "UsbInterruptInEndpointDescriptor",
    "UsbInterruptInEventArgs",
    "UsbInterruptInPipe",
    "UsbInterruptOutEndpointDescriptor",
    "UsbInterruptOutPipe",
    "UsbSetupPacket",
]

class UsbControlRecipient(enum.IntEnum):
    DEVICE = 0
    SPECIFIED_INTERFACE = 1
    ENDPOINT = 2
    OTHER = 3
    DEFAULT_INTERFACE = 4

class UsbControlTransferType(enum.IntEnum):
    STANDARD = 0
    CLASS = 1
    VENDOR = 2

class UsbEndpointType(enum.IntEnum):
    CONTROL = 0
    ISOCHRONOUS = 1
    BULK = 2
    INTERRUPT = 3

class UsbReadOptions(enum.IntFlag):
    NONE = 0x0
    AUTO_CLEAR_STALL = 0x1
    OVERRIDE_AUTOMATIC_BUFFER_MANAGEMENT = 0x2
    IGNORE_SHORT_PACKET = 0x4
    ALLOW_PARTIAL_READS = 0x8

class UsbTransferDirection(enum.IntEnum):
    OUT = 0
    IN = 1

class UsbWriteOptions(enum.IntFlag):
    NONE = 0x0
    AUTO_CLEAR_STALL = 0x1
    SHORT_PACKET_TERMINATE = 0x2

UsbBulkInEndpointDescriptor = _winrt_windows_devices_usb.UsbBulkInEndpointDescriptor
UsbBulkInPipe = _winrt_windows_devices_usb.UsbBulkInPipe
UsbBulkOutEndpointDescriptor = _winrt_windows_devices_usb.UsbBulkOutEndpointDescriptor
UsbBulkOutPipe = _winrt_windows_devices_usb.UsbBulkOutPipe
UsbConfiguration = _winrt_windows_devices_usb.UsbConfiguration
UsbConfigurationDescriptor = _winrt_windows_devices_usb.UsbConfigurationDescriptor
UsbControlRequestType = _winrt_windows_devices_usb.UsbControlRequestType
UsbDescriptor = _winrt_windows_devices_usb.UsbDescriptor
UsbDevice = _winrt_windows_devices_usb.UsbDevice
UsbDeviceClass = _winrt_windows_devices_usb.UsbDeviceClass
UsbDeviceClasses = _winrt_windows_devices_usb.UsbDeviceClasses
UsbDeviceDescriptor = _winrt_windows_devices_usb.UsbDeviceDescriptor
UsbEndpointDescriptor = _winrt_windows_devices_usb.UsbEndpointDescriptor
UsbInterface = _winrt_windows_devices_usb.UsbInterface
UsbInterfaceDescriptor = _winrt_windows_devices_usb.UsbInterfaceDescriptor
UsbInterfaceSetting = _winrt_windows_devices_usb.UsbInterfaceSetting
UsbInterruptInEndpointDescriptor = _winrt_windows_devices_usb.UsbInterruptInEndpointDescriptor
UsbInterruptInEventArgs = _winrt_windows_devices_usb.UsbInterruptInEventArgs
UsbInterruptInPipe = _winrt_windows_devices_usb.UsbInterruptInPipe
UsbInterruptOutEndpointDescriptor = _winrt_windows_devices_usb.UsbInterruptOutEndpointDescriptor
UsbInterruptOutPipe = _winrt_windows_devices_usb.UsbInterruptOutPipe
UsbSetupPacket = _winrt_windows_devices_usb.UsbSetupPacket
