blob: 14722e8045ae6df7524fc58f044e07bc5cec1ea1 [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 'hr_time.dart';
import 'html.dart';
import 'permissions.dart';
typedef MIDIPortType = String;
typedef MIDIPortDeviceState = String;
typedef MIDIPortConnectionState = String;
@JS()
@staticInterop
@anonymous
class MidiPermissionDescriptor implements PermissionDescriptor {
external factory MidiPermissionDescriptor({bool sysex});
}
extension MidiPermissionDescriptorExtension on MidiPermissionDescriptor {
external set sysex(bool value);
external bool get sysex;
}
@JS()
@staticInterop
@anonymous
class MIDIOptions {
external factory MIDIOptions({
bool sysex,
bool software,
});
}
extension MIDIOptionsExtension on MIDIOptions {
external set sysex(bool value);
external bool get sysex;
external set software(bool value);
external bool get software;
}
@JS('MIDIInputMap')
@staticInterop
class MIDIInputMap {}
extension MIDIInputMapExtension on MIDIInputMap {}
@JS('MIDIOutputMap')
@staticInterop
class MIDIOutputMap {}
extension MIDIOutputMapExtension on MIDIOutputMap {}
@JS('MIDIAccess')
@staticInterop
class MIDIAccess implements EventTarget {}
extension MIDIAccessExtension on MIDIAccess {
external MIDIInputMap get inputs;
external MIDIOutputMap get outputs;
external set onstatechange(EventHandler value);
external EventHandler get onstatechange;
external bool get sysexEnabled;
}
@JS('MIDIPort')
@staticInterop
class MIDIPort implements EventTarget {}
extension MIDIPortExtension on MIDIPort {
external JSPromise open();
external JSPromise close();
external String get id;
external String? get manufacturer;
external String? get name;
external MIDIPortType get type;
external String? get version;
external MIDIPortDeviceState get state;
external MIDIPortConnectionState get connection;
external set onstatechange(EventHandler value);
external EventHandler get onstatechange;
}
@JS('MIDIInput')
@staticInterop
class MIDIInput implements MIDIPort {}
extension MIDIInputExtension on MIDIInput {
external set onmidimessage(EventHandler value);
external EventHandler get onmidimessage;
}
@JS('MIDIOutput')
@staticInterop
class MIDIOutput implements MIDIPort {}
extension MIDIOutputExtension on MIDIOutput {
external void send(
JSArray data, [
DOMHighResTimeStamp timestamp,
]);
external void clear();
}
@JS('MIDIMessageEvent')
@staticInterop
class MIDIMessageEvent implements Event {
external factory MIDIMessageEvent(
String type, [
MIDIMessageEventInit eventInitDict,
]);
}
extension MIDIMessageEventExtension on MIDIMessageEvent {
external JSUint8Array get data;
}
@JS()
@staticInterop
@anonymous
class MIDIMessageEventInit implements EventInit {
external factory MIDIMessageEventInit({JSUint8Array data});
}
extension MIDIMessageEventInitExtension on MIDIMessageEventInit {
external set data(JSUint8Array value);
external JSUint8Array get data;
}
@JS('MIDIConnectionEvent')
@staticInterop
class MIDIConnectionEvent implements Event {
external factory MIDIConnectionEvent(
String type, [
MIDIConnectionEventInit eventInitDict,
]);
}
extension MIDIConnectionEventExtension on MIDIConnectionEvent {
external MIDIPort get port;
}
@JS()
@staticInterop
@anonymous
class MIDIConnectionEventInit implements EventInit {
external factory MIDIConnectionEventInit({MIDIPort port});
}
extension MIDIConnectionEventInitExtension on MIDIConnectionEventInit {
external set port(MIDIPort value);
external MIDIPort get port;
}