1 module libwasm.bindings.MediaStream;
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.MediaStreamTrack;
9 
10 @safe:
11 nothrow:
12 
13 struct DisplayMediaStreamConstraints {
14   nothrow:
15   JsHandle handle;
16   alias handle this;
17   this(Handle h) {
18     this.handle = JsHandle(h);
19   }
20   static auto create() {
21     return DisplayMediaStreamConstraints(libwasm_add__object());
22   }
23   void video()(scope ref SumType!(bool, MediaTrackConstraints) video) {
24     Serialize_Object_VarArgCall!void(this.handle, "video", "SumType!(bool,Handle)", tuple(libwasm.sumtype.match!(((bool v) => 0),((ref video.Types[1] v) => 1))(video),tuple(libwasm.sumtype.match!(((bool v) => v),((ref video.Types[1] v) => bool.init))(video),libwasm.sumtype.match!(((bool v) => Handle.init),((ref video.Types[1] v) => cast(Handle)v.handle))(video))));
25   }
26   auto video()() {
27     return Object_Getter__Handle(this.handle, "video");
28   }
29   void audio()(scope ref SumType!(bool, MediaTrackConstraints) audio) {
30     Serialize_Object_VarArgCall!void(this.handle, "audio", "SumType!(bool,Handle)", tuple(libwasm.sumtype.match!(((bool v) => 0),((ref audio.Types[1] v) => 1))(audio),tuple(libwasm.sumtype.match!(((bool v) => v),((ref audio.Types[1] v) => bool.init))(audio),libwasm.sumtype.match!(((bool v) => Handle.init),((ref audio.Types[1] v) => cast(Handle)v.handle))(audio))));
31   }
32   auto audio()() {
33     return Object_Getter__Handle(this.handle, "audio");
34   }
35 }
36 struct MediaStream {
37   nothrow:
38   libwasm.bindings.EventTarget.EventTarget _parent;
39   alias _parent this;
40   this(Handle h) {
41     _parent = .EventTarget(h);
42   }
43   string id()() {
44     return Object_Getter__string(this._parent, "id");
45   }
46   auto getAudioTracks()() {
47     return Sequence!(MediaStreamTrack)(Object_Getter__Handle(this._parent, "getAudioTracks"));
48   }
49   auto getVideoTracks()() {
50     return Sequence!(MediaStreamTrack)(Object_Getter__Handle(this._parent, "getVideoTracks"));
51   }
52   auto getTracks()() {
53     return Sequence!(MediaStreamTrack)(Object_Getter__Handle(this._parent, "getTracks"));
54   }
55   auto getTrackById()(string trackId) {
56     return recastOpt!(MediaStreamTrack)(Object_Call_string__OptionalHandle(this._parent, "getTrackById", trackId));
57   }
58   void addTrack()(scope ref MediaStreamTrack track) {
59     Object_Call_Handle__void(this._parent, "addTrack", track._parent);
60   }
61   void removeTrack()(scope ref MediaStreamTrack track) {
62     Object_Call_Handle__void(this._parent, "removeTrack", track._parent);
63   }
64   auto clone()() {
65     return MediaStream(Object_Getter__Handle(this._parent, "clone"));
66   }
67   bool active()() {
68     return Object_Getter__bool(this._parent, "active");
69   }
70   void onaddtrack(T0)(scope auto ref Optional!(T0) onaddtrack) if (isTOrPointer!(T0, EventHandlerNonNull)) {
71     Object_Call_EventHandler__void(this._parent, "onaddtrack", !onaddtrack.empty, onaddtrack.front);
72   }
73   EventHandler onaddtrack()() {
74     return Object_Getter__EventHandler(this._parent, "onaddtrack");
75   }
76   void onremovetrack(T0)(scope auto ref Optional!(T0) onremovetrack) if (isTOrPointer!(T0, EventHandlerNonNull)) {
77     Object_Call_EventHandler__void(this._parent, "onremovetrack", !onremovetrack.empty, onremovetrack.front);
78   }
79   EventHandler onremovetrack()() {
80     return Object_Getter__EventHandler(this._parent, "onremovetrack");
81   }
82   auto countUnderlyingStreams()() {
83     return JsPromise!(int)(Object_Getter__Handle(this._parent, "countUnderlyingStreams"));
84   }
85   void assignId()(string id) {
86     Object_Call_string__void(this._parent, "assignId", id);
87   }
88 }
89 struct MediaStreamConstraints {
90   nothrow:
91   JsHandle handle;
92   alias handle this;
93   this(Handle h) {
94     this.handle = JsHandle(h);
95   }
96   static auto create() {
97     return MediaStreamConstraints(libwasm_add__object());
98   }
99   void audio()(scope ref SumType!(bool, MediaTrackConstraints) audio) {
100     Serialize_Object_VarArgCall!void(this.handle, "audio", "SumType!(bool,Handle)", tuple(libwasm.sumtype.match!(((bool v) => 0),((ref audio.Types[1] v) => 1))(audio),tuple(libwasm.sumtype.match!(((bool v) => v),((ref audio.Types[1] v) => bool.init))(audio),libwasm.sumtype.match!(((bool v) => Handle.init),((ref audio.Types[1] v) => cast(Handle)v.handle))(audio))));
101   }
102   auto audio()() {
103     return Object_Getter__Handle(this.handle, "audio");
104   }
105   void video()(scope ref SumType!(bool, MediaTrackConstraints) video) {
106     Serialize_Object_VarArgCall!void(this.handle, "video", "SumType!(bool,Handle)", tuple(libwasm.sumtype.match!(((bool v) => 0),((ref video.Types[1] v) => 1))(video),tuple(libwasm.sumtype.match!(((bool v) => v),((ref video.Types[1] v) => bool.init))(video),libwasm.sumtype.match!(((bool v) => Handle.init),((ref video.Types[1] v) => cast(Handle)v.handle))(video))));
107   }
108   auto video()() {
109     return Object_Getter__Handle(this.handle, "video");
110   }
111   void picture()(bool picture) {
112     Object_Call_bool__void(this.handle, "picture", picture);
113   }
114   bool picture()() {
115     return Object_Getter__bool(this.handle, "picture");
116   }
117   void fake()(bool fake) {
118     Object_Call_bool__void(this.handle, "fake", fake);
119   }
120   bool fake()() {
121     return Object_Getter__bool(this.handle, "fake");
122   }
123   void peerIdentity(T0)(scope auto ref Optional!(T0) peerIdentity) if (isTOrPointer!(T0, string)) {
124     Serialize_Object_VarArgCall!void(this.handle, "peerIdentity", "Optional!(string)", tuple(!peerIdentity.empty, peerIdentity.front));
125   }
126   Optional!(string) peerIdentity()() {
127     return Object_Getter__OptionalString(this.handle, "peerIdentity");
128   }
129 }
130 
131