blob: ba39a670ce7f695c9e562191a5ffbf17fd0cc289 [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Generated from Web IDL definitions.
import 'dart:js_interop';
import 'dom.dart';
import 'html.dart';
import 'permissions.dart';
import 'webidl.dart';
typedef USBTransferStatus = String;
typedef USBRequestType = String;
typedef USBRecipient = String;
typedef USBDirection = String;
typedef USBEndpointType = String;
@JS()
@staticInterop
@anonymous
class USBDeviceFilter {
external factory USBDeviceFilter({
int vendorId,
int productId,
int classCode,
int subclassCode,
int protocolCode,
String serialNumber,
});
}
extension USBDeviceFilterExtension on USBDeviceFilter {
external set vendorId(int value);
external int get vendorId;
external set productId(int value);
external int get productId;
external set classCode(int value);
external int get classCode;
external set subclassCode(int value);
external int get subclassCode;
external set protocolCode(int value);
external int get protocolCode;
external set serialNumber(String value);
external String get serialNumber;
}
@JS()
@staticInterop
@anonymous
class USBDeviceRequestOptions {
external factory USBDeviceRequestOptions({
required JSArray filters,
JSArray exclusionFilters,
});
}
extension USBDeviceRequestOptionsExtension on USBDeviceRequestOptions {
external set filters(JSArray value);
external JSArray get filters;
external set exclusionFilters(JSArray value);
external JSArray get exclusionFilters;
}
@JS('USB')
@staticInterop
class USB implements EventTarget {}
extension USBExtension on USB {
external JSPromise getDevices();
external JSPromise requestDevice(USBDeviceRequestOptions options);
external set onconnect(EventHandler value);
external EventHandler get onconnect;
external set ondisconnect(EventHandler value);
external EventHandler get ondisconnect;
}
@JS()
@staticInterop
@anonymous
class USBConnectionEventInit implements EventInit {
external factory USBConnectionEventInit({required USBDevice device});
}
extension USBConnectionEventInitExtension on USBConnectionEventInit {
external set device(USBDevice value);
external USBDevice get device;
}
@JS('USBConnectionEvent')
@staticInterop
class USBConnectionEvent implements Event {
external factory USBConnectionEvent(
String type,
USBConnectionEventInit eventInitDict,
);
}
extension USBConnectionEventExtension on USBConnectionEvent {
external USBDevice get device;
}
@JS('USBInTransferResult')
@staticInterop
class USBInTransferResult {
external factory USBInTransferResult(
USBTransferStatus status, [
JSDataView? data,
]);
}
extension USBInTransferResultExtension on USBInTransferResult {
external JSDataView? get data;
external USBTransferStatus get status;
}
@JS('USBOutTransferResult')
@staticInterop
class USBOutTransferResult {
external factory USBOutTransferResult(
USBTransferStatus status, [
int bytesWritten,
]);
}
extension USBOutTransferResultExtension on USBOutTransferResult {
external int get bytesWritten;
external USBTransferStatus get status;
}
@JS('USBIsochronousInTransferPacket')
@staticInterop
class USBIsochronousInTransferPacket {
external factory USBIsochronousInTransferPacket(
USBTransferStatus status, [
JSDataView? data,
]);
}
extension USBIsochronousInTransferPacketExtension
on USBIsochronousInTransferPacket {
external JSDataView? get data;
external USBTransferStatus get status;
}
@JS('USBIsochronousInTransferResult')
@staticInterop
class USBIsochronousInTransferResult {
external factory USBIsochronousInTransferResult(
JSArray packets, [
JSDataView? data,
]);
}
extension USBIsochronousInTransferResultExtension
on USBIsochronousInTransferResult {
external JSDataView? get data;
external JSArray get packets;
}
@JS('USBIsochronousOutTransferPacket')
@staticInterop
class USBIsochronousOutTransferPacket {
external factory USBIsochronousOutTransferPacket(
USBTransferStatus status, [
int bytesWritten,
]);
}
extension USBIsochronousOutTransferPacketExtension
on USBIsochronousOutTransferPacket {
external int get bytesWritten;
external USBTransferStatus get status;
}
@JS('USBIsochronousOutTransferResult')
@staticInterop
class USBIsochronousOutTransferResult {
external factory USBIsochronousOutTransferResult(JSArray packets);
}
extension USBIsochronousOutTransferResultExtension
on USBIsochronousOutTransferResult {
external JSArray get packets;
}
@JS('USBDevice')
@staticInterop
class USBDevice {}
extension USBDeviceExtension on USBDevice {
external JSPromise open();
external JSPromise close();
external JSPromise forget();
external JSPromise selectConfiguration(int configurationValue);
external JSPromise claimInterface(int interfaceNumber);
external JSPromise releaseInterface(int interfaceNumber);
external JSPromise selectAlternateInterface(
int interfaceNumber,
int alternateSetting,
);
external JSPromise controlTransferIn(
USBControlTransferParameters setup,
int length,
);
external JSPromise controlTransferOut(
USBControlTransferParameters setup, [
BufferSource data,
]);
external JSPromise clearHalt(
USBDirection direction,
int endpointNumber,
);
external JSPromise transferIn(
int endpointNumber,
int length,
);
external JSPromise transferOut(
int endpointNumber,
BufferSource data,
);
external JSPromise isochronousTransferIn(
int endpointNumber,
JSArray packetLengths,
);
external JSPromise isochronousTransferOut(
int endpointNumber,
BufferSource data,
JSArray packetLengths,
);
external JSPromise reset();
external int get usbVersionMajor;
external int get usbVersionMinor;
external int get usbVersionSubminor;
external int get deviceClass;
external int get deviceSubclass;
external int get deviceProtocol;
external int get vendorId;
external int get productId;
external int get deviceVersionMajor;
external int get deviceVersionMinor;
external int get deviceVersionSubminor;
external String? get manufacturerName;
external String? get productName;
external String? get serialNumber;
external USBConfiguration? get configuration;
external JSArray get configurations;
external bool get opened;
}
@JS()
@staticInterop
@anonymous
class USBControlTransferParameters {
external factory USBControlTransferParameters({
required USBRequestType requestType,
required USBRecipient recipient,
required int request,
required int value,
required int index,
});
}
extension USBControlTransferParametersExtension
on USBControlTransferParameters {
external set requestType(USBRequestType value);
external USBRequestType get requestType;
external set recipient(USBRecipient value);
external USBRecipient get recipient;
external set request(int value);
external int get request;
external set value(int value);
external int get value;
external set index(int value);
external int get index;
}
@JS('USBConfiguration')
@staticInterop
class USBConfiguration {
external factory USBConfiguration(
USBDevice device,
int configurationValue,
);
}
extension USBConfigurationExtension on USBConfiguration {
external int get configurationValue;
external String? get configurationName;
external JSArray get interfaces;
}
@JS('USBInterface')
@staticInterop
class USBInterface {
external factory USBInterface(
USBConfiguration configuration,
int interfaceNumber,
);
}
extension USBInterfaceExtension on USBInterface {
external int get interfaceNumber;
external USBAlternateInterface get alternate;
external JSArray get alternates;
external bool get claimed;
}
@JS('USBAlternateInterface')
@staticInterop
class USBAlternateInterface {
external factory USBAlternateInterface(
USBInterface deviceInterface,
int alternateSetting,
);
}
extension USBAlternateInterfaceExtension on USBAlternateInterface {
external int get alternateSetting;
external int get interfaceClass;
external int get interfaceSubclass;
external int get interfaceProtocol;
external String? get interfaceName;
external JSArray get endpoints;
}
@JS('USBEndpoint')
@staticInterop
class USBEndpoint {
external factory USBEndpoint(
USBAlternateInterface alternate,
int endpointNumber,
USBDirection direction,
);
}
extension USBEndpointExtension on USBEndpoint {
external int get endpointNumber;
external USBDirection get direction;
external USBEndpointType get type;
external int get packetSize;
}
@JS()
@staticInterop
@anonymous
class USBPermissionDescriptor implements PermissionDescriptor {
external factory USBPermissionDescriptor({
JSArray filters,
JSArray exclusionFilters,
});
}
extension USBPermissionDescriptorExtension on USBPermissionDescriptor {
external set filters(JSArray value);
external JSArray get filters;
external set exclusionFilters(JSArray value);
external JSArray get exclusionFilters;
}
@JS()
@staticInterop
@anonymous
class AllowedUSBDevice {
external factory AllowedUSBDevice({
required int vendorId,
required int productId,
String serialNumber,
});
}
extension AllowedUSBDeviceExtension on AllowedUSBDevice {
external set vendorId(int value);
external int get vendorId;
external set productId(int value);
external int get productId;
external set serialNumber(String value);
external String get serialNumber;
}
@JS()
@staticInterop
@anonymous
class USBPermissionStorage {
external factory USBPermissionStorage({JSArray allowedDevices});
}
extension USBPermissionStorageExtension on USBPermissionStorage {
external set allowedDevices(JSArray value);
external JSArray get allowedDevices;
}
@JS('USBPermissionResult')
@staticInterop
class USBPermissionResult implements PermissionStatus {}
extension USBPermissionResultExtension on USBPermissionResult {
external set devices(JSArray value);
external JSArray get devices;
}