1 module libwasm.bindings.HTMLMediaElement;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.AudioTrackList;
7 import libwasm.bindings.EventHandler;
8 import libwasm.bindings.HTMLElement;
9 import libwasm.bindings.MediaError;
10 import libwasm.bindings.MediaKeys;
11 import libwasm.bindings.MediaSource;
12 import libwasm.bindings.MediaStream;
13 import libwasm.bindings.TextTrack;
14 import libwasm.bindings.TextTrackList;
15 import libwasm.bindings.TimeRanges;
16 import libwasm.bindings.VideoTrackList;
17 
18 @safe:
19 nothrow:
20 
21 struct HTMLMediaElement {
22   nothrow:
23   libwasm.bindings.HTMLElement.HTMLElement _parent;
24   alias _parent this;
25   this(Handle h) {
26     _parent = .HTMLElement(h);
27   }
28   auto error()() {
29     return recastOpt!(MediaError)(Object_Getter__OptionalHandle(this._parent, "error"));
30   }
31   void src()(string src) {
32     Object_Call_string__void(this._parent, "src", src);
33   }
34   string src()() {
35     return Object_Getter__string(this._parent, "src");
36   }
37   string currentSrc()() {
38     return Object_Getter__string(this._parent, "currentSrc");
39   }
40   void crossOrigin(T0)(scope auto ref Optional!(T0) crossOrigin) if (isTOrPointer!(T0, string)) {
41     Serialize_Object_VarArgCall!void(this._parent, "crossOrigin", "Optional!(string)", tuple(!crossOrigin.empty, crossOrigin.front));
42   }
43   Optional!(string) crossOrigin()() {
44     return Object_Getter__OptionalString(this._parent, "crossOrigin");
45   }
46   enum ushort NETWORK_EMPTY = 0;
47   enum ushort NETWORK_IDLE = 1;
48   enum ushort NETWORK_LOADING = 2;
49   enum ushort NETWORK_NO_SOURCE = 3;
50   ushort networkState()() {
51     return Object_Getter__ushort(this._parent, "networkState");
52   }
53   void preload()(string preload) {
54     Object_Call_string__void(this._parent, "preload", preload);
55   }
56   string preload()() {
57     return Object_Getter__string(this._parent, "preload");
58   }
59   auto buffered()() {
60     return TimeRanges(Object_Getter__Handle(this._parent, "buffered"));
61   }
62   void load()() {
63     Object_Call__void(this._parent, "load");
64   }
65   string canPlayType()(string type) {
66     return Object_Call_string__string(this._parent, "canPlayType", type);
67   }
68   enum ushort HAVE_NOTHING = 0;
69   enum ushort HAVE_METADATA = 1;
70   enum ushort HAVE_CURRENT_DATA = 2;
71   enum ushort HAVE_FUTURE_DATA = 3;
72   enum ushort HAVE_ENOUGH_DATA = 4;
73   ushort readyState()() {
74     return Object_Getter__ushort(this._parent, "readyState");
75   }
76   bool seeking()() {
77     return Object_Getter__bool(this._parent, "seeking");
78   }
79   void currentTime()(double currentTime) {
80     Object_Call_double__void(this._parent, "currentTime", currentTime);
81   }
82   double currentTime()() {
83     return Object_Getter__double(this._parent, "currentTime");
84   }
85   void fastSeek()(double time) {
86     Object_Call_double__void(this._parent, "fastSeek", time);
87   }
88   double duration()() {
89     return Object_Getter__double(this._parent, "duration");
90   }
91   bool isEncrypted()() {
92     return Object_Getter__bool(this._parent, "isEncrypted");
93   }
94   bool paused()() {
95     return Object_Getter__bool(this._parent, "paused");
96   }
97   void defaultPlaybackRate()(double defaultPlaybackRate) {
98     Object_Call_double__void(this._parent, "defaultPlaybackRate", defaultPlaybackRate);
99   }
100   double defaultPlaybackRate()() {
101     return Object_Getter__double(this._parent, "defaultPlaybackRate");
102   }
103   void playbackRate()(double playbackRate) {
104     Object_Call_double__void(this._parent, "playbackRate", playbackRate);
105   }
106   double playbackRate()() {
107     return Object_Getter__double(this._parent, "playbackRate");
108   }
109   auto played()() {
110     return TimeRanges(Object_Getter__Handle(this._parent, "played"));
111   }
112   auto seekable()() {
113     return TimeRanges(Object_Getter__Handle(this._parent, "seekable"));
114   }
115   bool ended()() {
116     return Object_Getter__bool(this._parent, "ended");
117   }
118   void autoplay()(bool autoplay) {
119     Object_Call_bool__void(this._parent, "autoplay", autoplay);
120   }
121   bool autoplay()() {
122     return Object_Getter__bool(this._parent, "autoplay");
123   }
124   void loop()(bool loop) {
125     Object_Call_bool__void(this._parent, "loop", loop);
126   }
127   bool loop()() {
128     return Object_Getter__bool(this._parent, "loop");
129   }
130   auto play()() {
131     return JsPromise!(void)(Object_Getter__Handle(this._parent, "play"));
132   }
133   void pause()() {
134     Object_Call__void(this._parent, "pause");
135   }
136   void controls()(bool controls) {
137     Object_Call_bool__void(this._parent, "controls", controls);
138   }
139   bool controls()() {
140     return Object_Getter__bool(this._parent, "controls");
141   }
142   void volume()(double volume) {
143     Object_Call_double__void(this._parent, "volume", volume);
144   }
145   double volume()() {
146     return Object_Getter__double(this._parent, "volume");
147   }
148   void muted()(bool muted) {
149     Object_Call_bool__void(this._parent, "muted", muted);
150   }
151   bool muted()() {
152     return Object_Getter__bool(this._parent, "muted");
153   }
154   void defaultMuted()(bool defaultMuted) {
155     Object_Call_bool__void(this._parent, "defaultMuted", defaultMuted);
156   }
157   bool defaultMuted()() {
158     return Object_Getter__bool(this._parent, "defaultMuted");
159   }
160   auto audioTracks()() {
161     return AudioTrackList(Object_Getter__Handle(this._parent, "audioTracks"));
162   }
163   auto videoTracks()() {
164     return VideoTrackList(Object_Getter__Handle(this._parent, "videoTracks"));
165   }
166   auto textTracks()() {
167     return recastOpt!(TextTrackList)(Object_Getter__OptionalHandle(this._parent, "textTracks"));
168   }
169   auto addTextTrack()(TextTrackKind kind, string label /* = "" */, string language /* = "" */) {
170     return TextTrack(Serialize_Object_VarArgCall!Handle(this._parent, "addTextTrack", "Enum;string;string", tuple(kind, label, language)));
171   }
172   auto addTextTrack()(TextTrackKind kind, string label /* = "" */) {
173     return TextTrack(Serialize_Object_VarArgCall!Handle(this._parent, "addTextTrack", "Enum;string", tuple(kind, label)));
174   }
175   auto addTextTrack()(TextTrackKind kind) {
176     return TextTrack(Object_Call_int__Handle(this._parent, "addTextTrack", kind));
177   }
178   auto mozMediaSourceObject()() {
179     return recastOpt!(MediaSource)(Object_Getter__OptionalHandle(this._parent, "mozMediaSourceObject"));
180   }
181   string mozDebugReaderData()() {
182     return Object_Getter__string(this._parent, "mozDebugReaderData");
183   }
184   auto mozRequestDebugInfo()() {
185     return JsPromise!(string)(Object_Getter__Handle(this._parent, "mozRequestDebugInfo"));
186   }
187   void mozEnableDebugLog()() {
188     Object_Call__void(this._parent, "mozEnableDebugLog");
189   }
190   auto mozRequestDebugLog()() {
191     return JsPromise!(string)(Object_Getter__Handle(this._parent, "mozRequestDebugLog"));
192   }
193   auto mozDumpDebugInfo()() {
194     return JsPromise!(void)(Object_Getter__Handle(this._parent, "mozDumpDebugInfo"));
195   }
196   void srcObject(T0)(scope auto ref Optional!(T0) srcObject) if (isTOrPointer!(T0, MediaStream)) {
197     Serialize_Object_VarArgCall!void(this._parent, "srcObject", "Optional!Handle", tuple(!srcObject.empty, cast(Handle)srcObject.front.handle));
198   }
199   auto srcObject()() {
200     return recastOpt!(MediaStream)(Object_Getter__OptionalHandle(this._parent, "srcObject"));
201   }
202   void mozPreservesPitch()(bool mozPreservesPitch) {
203     Object_Call_bool__void(this._parent, "mozPreservesPitch", mozPreservesPitch);
204   }
205   bool mozPreservesPitch()() {
206     return Object_Getter__bool(this._parent, "mozPreservesPitch");
207   }
208   void mozAllowCasting()(bool mozAllowCasting) {
209     Object_Call_bool__void(this._parent, "mozAllowCasting", mozAllowCasting);
210   }
211   bool mozAllowCasting()() {
212     return Object_Getter__bool(this._parent, "mozAllowCasting");
213   }
214   void mozIsCasting()(bool mozIsCasting) {
215     Object_Call_bool__void(this._parent, "mozIsCasting", mozIsCasting);
216   }
217   bool mozIsCasting()() {
218     return Object_Getter__bool(this._parent, "mozIsCasting");
219   }
220   auto mozCaptureStream()() {
221     return MediaStream(Object_Getter__Handle(this._parent, "mozCaptureStream"));
222   }
223   auto mozCaptureStreamUntilEnded()() {
224     return MediaStream(Object_Getter__Handle(this._parent, "mozCaptureStreamUntilEnded"));
225   }
226   bool mozAudioCaptured()() {
227     return Object_Getter__bool(this._parent, "mozAudioCaptured");
228   }
229   auto mozGetMetadata()() {
230     return recastOpt!(JsObject)(Object_Getter__OptionalHandle(this._parent, "mozGetMetadata"));
231   }
232   double mozFragmentEnd()() {
233     return Object_Getter__double(this._parent, "mozFragmentEnd");
234   }
235   void reportCanPlayTelemetry()() {
236     Object_Call__void(this._parent, "reportCanPlayTelemetry");
237   }
238   auto mediaKeys()() {
239     return recastOpt!(MediaKeys)(Object_Getter__OptionalHandle(this._parent, "mediaKeys"));
240   }
241   auto setMediaKeys(T0)(scope auto ref Optional!(T0) mediaKeys) if (isTOrPointer!(T0, MediaKeys)) {
242     return JsPromise!(void)(Serialize_Object_VarArgCall!Handle(this._parent, "setMediaKeys", "Optional!Handle", tuple(!mediaKeys.empty, cast(Handle)mediaKeys.front.handle)));
243   }
244   void onencrypted(T0)(scope auto ref Optional!(T0) onencrypted) if (isTOrPointer!(T0, EventHandlerNonNull)) {
245     Object_Call_EventHandler__void(this._parent, "onencrypted", !onencrypted.empty, onencrypted.front);
246   }
247   EventHandler onencrypted()() {
248     return Object_Getter__EventHandler(this._parent, "onencrypted");
249   }
250   void onwaitingforkey(T0)(scope auto ref Optional!(T0) onwaitingforkey) if (isTOrPointer!(T0, EventHandlerNonNull)) {
251     Object_Call_EventHandler__void(this._parent, "onwaitingforkey", !onwaitingforkey.empty, onwaitingforkey.front);
252   }
253   EventHandler onwaitingforkey()() {
254     return Object_Getter__EventHandler(this._parent, "onwaitingforkey");
255   }
256   double computedVolume()() {
257     return Object_Getter__double(this._parent, "computedVolume");
258   }
259   bool computedMuted()() {
260     return Object_Getter__bool(this._parent, "computedMuted");
261   }
262   uint computedSuspended()() {
263     return Object_Getter__uint(this._parent, "computedSuspended");
264   }
265   auto seekToNextFrame()() {
266     return JsPromise!(void)(Object_Getter__Handle(this._parent, "seekToNextFrame"));
267   }
268   void setVisible()(bool aVisible) {
269     Object_Call_bool__void(this._parent, "setVisible", aVisible);
270   }
271   bool hasSuspendTaint()() {
272     return Object_Getter__bool(this._parent, "hasSuspendTaint");
273   }
274   bool isVisible()() {
275     return Object_Getter__bool(this._parent, "isVisible");
276   }
277   bool isVideoDecodingSuspended()() {
278     return Object_Getter__bool(this._parent, "isVideoDecodingSuspended");
279   }
280   string sinkId()() {
281     return Object_Getter__string(this._parent, "sinkId");
282   }
283   auto setSinkId()(string sinkId) {
284     return JsPromise!(void)(Object_Call_string__Handle(this._parent, "setSinkId", sinkId));
285   }
286   bool allowedToPlay()() {
287     return Object_Getter__bool(this._parent, "allowedToPlay");
288   }
289 }
290 
291