1 module libwasm.bindings.MIDIPort;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.EventHandler;
7 import libwasm.bindings.EventTarget;
8 
9 @safe:
10 nothrow:
11 
12 struct MIDIPort {
13   nothrow:
14   libwasm.bindings.EventTarget.EventTarget _parent;
15   alias _parent this;
16   this(Handle h) {
17     _parent = .EventTarget(h);
18   }
19   string id()() {
20     return Object_Getter__string(this._parent, "id");
21   }
22   Optional!(string) manufacturer()() {
23     return Object_Getter__OptionalString(this._parent, "manufacturer");
24   }
25   Optional!(string) name()() {
26     return Object_Getter__OptionalString(this._parent, "name");
27   }
28   Optional!(string) version_()() {
29     return Object_Getter__OptionalString(this._parent, "version");
30   }
31   MIDIPortType type()() {
32     return Object_Getter__int(this._parent, "type");
33   }
34   MIDIPortDeviceState state()() {
35     return Object_Getter__int(this._parent, "state");
36   }
37   MIDIPortConnectionState connection()() {
38     return Object_Getter__int(this._parent, "connection");
39   }
40   void onstatechange(T0)(scope auto ref Optional!(T0) onstatechange) if (isTOrPointer!(T0, EventHandlerNonNull)) {
41     Object_Call_EventHandler__void(this._parent, "onstatechange", !onstatechange.empty, onstatechange.front);
42   }
43   EventHandler onstatechange()() {
44     return Object_Getter__EventHandler(this._parent, "onstatechange");
45   }
46   auto open()() {
47     return JsPromise!(MIDIPort)(Object_Getter__Handle(this._parent, "open"));
48   }
49   auto close()() {
50     return JsPromise!(MIDIPort)(Object_Getter__Handle(this._parent, "close"));
51   }
52 }
53 enum MIDIPortConnectionState {
54   open,
55   closed,
56   pending
57 }
58 enum MIDIPortDeviceState {
59   disconnected,
60   connected
61 }
62 enum MIDIPortType {
63   input,
64   output
65 }
66 
67