1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
// 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
[
OriginTrialEnabled=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 sequence<USBConfiguration> configurations;
readonly attribute boolean opened;
[CallWith=ScriptState] Promise<void> open();
[CallWith=ScriptState] Promise<void> close();
[CallWith=ScriptState] Promise<void> selectConfiguration(octet configurationValue);
[CallWith=ScriptState] Promise<void> claimInterface(octet interfaceNumber);
[CallWith=ScriptState] Promise<void> releaseInterface(octet interfaceNumber);
[CallWith=ScriptState] Promise<void> selectAlternateInterface(octet interfaceNumber, octet alternateSetting);
[CallWith=ScriptState] Promise<USBInTransferResult> controlTransferIn(USBControlTransferParameters setup, unsigned short length);
[CallWith=ScriptState] Promise<USBOutTransferResult> controlTransferOut(USBControlTransferParameters setup, optional BufferSource data);
[CallWith=ScriptState] Promise<void> clearHalt(USBDirection direction, octet endpointNumber);
[CallWith=ScriptState] Promise<USBInTransferResult> transferIn(octet endpointNumber, unsigned long length);
[CallWith=ScriptState] Promise<USBOutTransferResult> transferOut(octet endpointNumber, BufferSource data);
[CallWith=ScriptState] Promise<USBIsochronousInTransferResult> isochronousTransferIn(octet endpointNumber, sequence<unsigned long> packetLengths);
[CallWith=ScriptState] Promise<UsbIsochronousOutTransferResult> isochronousTransferOut(octet endpointNumber, BufferSource data, sequence<unsigned long> packetLengths);
[CallWith=ScriptState] Promise<void> reset();
};
|