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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
// Source: Web MIDI API (https://webaudio.github.io/web-midi-api/)
dictionary MidiPermissionDescriptor : PermissionDescriptor {
boolean sysex = false;
};
partial interface Navigator {
[SecureContext]
Promise <MIDIAccess> requestMIDIAccess(optional MIDIOptions options = {});
};
dictionary MIDIOptions {
boolean sysex;
boolean software;
};
[SecureContext, Exposed=Window] interface MIDIInputMap {
readonly maplike <DOMString, MIDIInput>;
};
[SecureContext, Exposed=Window] interface MIDIOutputMap {
readonly maplike <DOMString, MIDIOutput>;
};
[SecureContext, Exposed=Window] interface MIDIAccess: EventTarget {
readonly attribute MIDIInputMap inputs;
readonly attribute MIDIOutputMap outputs;
attribute EventHandler onstatechange;
readonly attribute boolean sysexEnabled;
};
[SecureContext, Exposed=Window] interface MIDIPort: EventTarget {
readonly attribute DOMString id;
readonly attribute DOMString? manufacturer;
readonly attribute DOMString? name;
readonly attribute MIDIPortType type;
readonly attribute DOMString? version;
readonly attribute MIDIPortDeviceState state;
readonly attribute MIDIPortConnectionState connection;
attribute EventHandler onstatechange;
Promise <MIDIPort> open();
Promise <MIDIPort> close();
};
[SecureContext, Exposed=Window] interface MIDIInput: MIDIPort {
attribute EventHandler onmidimessage;
};
[SecureContext, Exposed=Window] interface MIDIOutput : MIDIPort {
undefined send(sequence<octet> data, optional DOMHighResTimeStamp timestamp = 0);
undefined clear();
};
enum MIDIPortType {
"input",
"output",
};
enum MIDIPortDeviceState {
"disconnected",
"connected",
};
enum MIDIPortConnectionState {
"open",
"closed",
"pending",
};
[SecureContext, Exposed=Window]
interface MIDIMessageEvent : Event {
constructor(DOMString type, optional MIDIMessageEventInit eventInitDict = {});
readonly attribute Uint8Array? data;
};
dictionary MIDIMessageEventInit: EventInit {
Uint8Array data;
};
[SecureContext, Exposed=Window]
interface MIDIConnectionEvent : Event {
constructor(DOMString type, optional MIDIConnectionEventInit eventInitDict = {});
readonly attribute MIDIPort? port;
};
dictionary MIDIConnectionEventInit: EventInit {
MIDIPort port;
};
|