| // Copyright 2015 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. |
| |
| // https://wicg.github.io/webusb/#transfers |
| |
| enum USBTransferStatus { |
| "ok", |
| "stall", |
| "babble" |
| }; |
| |
| // https://wicg.github.io/webusb/#device-usage |
| |
| [ |
| RuntimeEnabled=WebUSB |
| ] interface USBDevice { |
| readonly attribute octet usbVersionMajor; |
| readonly attribute octet usbVersionMinor; |
| readonly attribute octet usbVersionSubminor; |
| readonly attribute octet deviceClass; |
| readonly attribute octet deviceSubclass; |
| readonly attribute octet deviceProtocol; |
| readonly attribute unsigned short vendorId; |
| readonly attribute unsigned short productId; |
| readonly attribute octet deviceVersionMajor; |
| readonly attribute octet deviceVersionMinor; |
| readonly attribute octet deviceVersionSubminor; |
| readonly attribute DOMString? manufacturerName; |
| readonly attribute DOMString? productName; |
| readonly attribute DOMString? serialNumber; |
| readonly attribute USBConfiguration? configuration; |
| readonly attribute FrozenArray<USBConfiguration> configurations; |
| readonly attribute boolean opened; |
| |
| [CallWith=ScriptState, MeasureAs=UsbDeviceOpen] Promise<void> open(); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceClose] Promise<void> close(); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceSelectConfiguration] Promise<void> selectConfiguration(octet configurationValue); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceClaimInterface] Promise<void> claimInterface(octet interfaceNumber); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceReleaseInterface] Promise<void> releaseInterface(octet interfaceNumber); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceSelectAlternateInterface] Promise<void> selectAlternateInterface(octet interfaceNumber, octet alternateSetting); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceControlTransferIn] Promise<USBInTransferResult> controlTransferIn(USBControlTransferParameters setup, unsigned short length); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceControlTransferOut] Promise<USBOutTransferResult> controlTransferOut(USBControlTransferParameters setup, optional BufferSource data); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceClearHalt] Promise<void> clearHalt(USBDirection direction, octet endpointNumber); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceTransferIn] Promise<USBInTransferResult> transferIn(octet endpointNumber, unsigned long length); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceTransferOut] Promise<USBOutTransferResult> transferOut(octet endpointNumber, BufferSource data); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceIsochronousTransferIn] Promise<USBIsochronousInTransferResult> isochronousTransferIn(octet endpointNumber, sequence<unsigned long> packetLengths); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceIsochronousTransferOut] Promise<UsbIsochronousOutTransferResult> isochronousTransferOut(octet endpointNumber, BufferSource data, sequence<unsigned long> packetLengths); |
| [CallWith=ScriptState, MeasureAs=UsbDeviceReset] Promise<void> reset(); |
| }; |