1 module libwasm.bindings.MediaRecorder;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.EventHandler;
7 import libwasm.bindings.EventTarget;
8 import libwasm.bindings.MediaStream;
9 
10 @safe:
11 nothrow:
12 
13 struct MediaRecorder {
14   nothrow:
15   libwasm.bindings.EventTarget.EventTarget _parent;
16   alias _parent this;
17   this(Handle h) {
18     _parent = .EventTarget(h);
19   }
20   auto stream()() {
21     return MediaStream(Object_Getter__Handle(this._parent, "stream"));
22   }
23   string mimeType()() {
24     return Object_Getter__string(this._parent, "mimeType");
25   }
26   RecordingState state()() {
27     return Object_Getter__int(this._parent, "state");
28   }
29   void onstart(T0)(scope auto ref Optional!(T0) onstart) if (isTOrPointer!(T0, EventHandlerNonNull)) {
30     Object_Call_EventHandler__void(this._parent, "onstart", !onstart.empty, onstart.front);
31   }
32   EventHandler onstart()() {
33     return Object_Getter__EventHandler(this._parent, "onstart");
34   }
35   void onstop(T0)(scope auto ref Optional!(T0) onstop) if (isTOrPointer!(T0, EventHandlerNonNull)) {
36     Object_Call_EventHandler__void(this._parent, "onstop", !onstop.empty, onstop.front);
37   }
38   EventHandler onstop()() {
39     return Object_Getter__EventHandler(this._parent, "onstop");
40   }
41   void ondataavailable(T0)(scope auto ref Optional!(T0) ondataavailable) if (isTOrPointer!(T0, EventHandlerNonNull)) {
42     Object_Call_EventHandler__void(this._parent, "ondataavailable", !ondataavailable.empty, ondataavailable.front);
43   }
44   EventHandler ondataavailable()() {
45     return Object_Getter__EventHandler(this._parent, "ondataavailable");
46   }
47   void onpause(T0)(scope auto ref Optional!(T0) onpause) if (isTOrPointer!(T0, EventHandlerNonNull)) {
48     Object_Call_EventHandler__void(this._parent, "onpause", !onpause.empty, onpause.front);
49   }
50   EventHandler onpause()() {
51     return Object_Getter__EventHandler(this._parent, "onpause");
52   }
53   void onresume(T0)(scope auto ref Optional!(T0) onresume) if (isTOrPointer!(T0, EventHandlerNonNull)) {
54     Object_Call_EventHandler__void(this._parent, "onresume", !onresume.empty, onresume.front);
55   }
56   EventHandler onresume()() {
57     return Object_Getter__EventHandler(this._parent, "onresume");
58   }
59   void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) {
60     Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front);
61   }
62   EventHandler onerror()() {
63     return Object_Getter__EventHandler(this._parent, "onerror");
64   }
65   void onwarning(T0)(scope auto ref Optional!(T0) onwarning) if (isTOrPointer!(T0, EventHandlerNonNull)) {
66     Object_Call_EventHandler__void(this._parent, "onwarning", !onwarning.empty, onwarning.front);
67   }
68   EventHandler onwarning()() {
69     return Object_Getter__EventHandler(this._parent, "onwarning");
70   }
71   void start()(int timeSlice) {
72     Object_Call_int__void(this._parent, "start", timeSlice);
73   }
74   void start()() {
75     Object_Call__void(this._parent, "start");
76   }
77   void stop()() {
78     Object_Call__void(this._parent, "stop");
79   }
80   void pause()() {
81     Object_Call__void(this._parent, "pause");
82   }
83   void resume()() {
84     Object_Call__void(this._parent, "resume");
85   }
86   void requestData()() {
87     Object_Call__void(this._parent, "requestData");
88   }
89   bool isTypeSupported()(string type) {
90     return Object_Call_string__bool(this._parent, "isTypeSupported", type);
91   }
92 }
93 struct MediaRecorderOptions {
94   nothrow:
95   JsHandle handle;
96   alias handle this;
97   this(Handle h) {
98     this.handle = JsHandle(h);
99   }
100   static auto create() {
101     return MediaRecorderOptions(libwasm_add__object());
102   }
103   void mimeType()(string mimeType) {
104     Object_Call_string__void(this.handle, "mimeType", mimeType);
105   }
106   string mimeType()() {
107     return Object_Getter__string(this.handle, "mimeType");
108   }
109   void audioBitsPerSecond()(uint audioBitsPerSecond) {
110     Object_Call_uint__void(this.handle, "audioBitsPerSecond", audioBitsPerSecond);
111   }
112   uint audioBitsPerSecond()() {
113     return Object_Getter__uint(this.handle, "audioBitsPerSecond");
114   }
115   void videoBitsPerSecond()(uint videoBitsPerSecond) {
116     Object_Call_uint__void(this.handle, "videoBitsPerSecond", videoBitsPerSecond);
117   }
118   uint videoBitsPerSecond()() {
119     return Object_Getter__uint(this.handle, "videoBitsPerSecond");
120   }
121   void bitsPerSecond()(uint bitsPerSecond) {
122     Object_Call_uint__void(this.handle, "bitsPerSecond", bitsPerSecond);
123   }
124   uint bitsPerSecond()() {
125     return Object_Getter__uint(this.handle, "bitsPerSecond");
126   }
127 }
128 enum RecordingState {
129   inactive,
130   recording,
131   paused
132 }
133 
134