1 module libwasm.bindings.RTCRtpSender;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.MediaStream;
7 import libwasm.bindings.MediaStreamTrack;
8 import libwasm.bindings.RTCDTMFSender;
9 import libwasm.bindings.RTCPeerConnection;
10 import libwasm.bindings.RTCStatsReport;
11 
12 @safe:
13 nothrow:
14 
15 enum RTCDegradationPreference {
16   maintain_framerate,
17   maintain_resolution,
18   balanced
19 }
20 struct RTCFecParameters {
21   nothrow:
22   JsHandle handle;
23   alias handle this;
24   this(Handle h) {
25     this.handle = JsHandle(h);
26   }
27   static auto create() {
28     return RTCFecParameters(libwasm_add__object());
29   }
30   void ssrc()(uint ssrc) {
31     Object_Call_uint__void(this.handle, "ssrc", ssrc);
32   }
33   uint ssrc()() {
34     return Object_Getter__uint(this.handle, "ssrc");
35   }
36 }
37 enum RTCPriorityType {
38   very_low,
39   low,
40   medium,
41   high
42 }
43 struct RTCRtcpParameters {
44   nothrow:
45   JsHandle handle;
46   alias handle this;
47   this(Handle h) {
48     this.handle = JsHandle(h);
49   }
50   static auto create() {
51     return RTCRtcpParameters(libwasm_add__object());
52   }
53   void cname()(string cname) {
54     Object_Call_string__void(this.handle, "cname", cname);
55   }
56   string cname()() {
57     return Object_Getter__string(this.handle, "cname");
58   }
59   void reducedSize()(bool reducedSize) {
60     Object_Call_bool__void(this.handle, "reducedSize", reducedSize);
61   }
62   bool reducedSize()() {
63     return Object_Getter__bool(this.handle, "reducedSize");
64   }
65 }
66 struct RTCRtpCodecParameters {
67   nothrow:
68   JsHandle handle;
69   alias handle this;
70   this(Handle h) {
71     this.handle = JsHandle(h);
72   }
73   static auto create() {
74     return RTCRtpCodecParameters(libwasm_add__object());
75   }
76   void payloadType()(ushort payloadType) {
77     Serialize_Object_VarArgCall!void(this.handle, "payloadType", "ushort", tuple(payloadType));
78   }
79   ushort payloadType()() {
80     return Object_Getter__ushort(this.handle, "payloadType");
81   }
82   void mimeType()(string mimeType) {
83     Object_Call_string__void(this.handle, "mimeType", mimeType);
84   }
85   string mimeType()() {
86     return Object_Getter__string(this.handle, "mimeType");
87   }
88   void clockRate()(uint clockRate) {
89     Object_Call_uint__void(this.handle, "clockRate", clockRate);
90   }
91   uint clockRate()() {
92     return Object_Getter__uint(this.handle, "clockRate");
93   }
94   void channels()(ushort channels) {
95     Serialize_Object_VarArgCall!void(this.handle, "channels", "ushort", tuple(channels));
96   }
97   ushort channels()() {
98     return Object_Getter__ushort(this.handle, "channels");
99   }
100   void sdpFmtpLine()(string sdpFmtpLine) {
101     Object_Call_string__void(this.handle, "sdpFmtpLine", sdpFmtpLine);
102   }
103   string sdpFmtpLine()() {
104     return Object_Getter__string(this.handle, "sdpFmtpLine");
105   }
106 }
107 struct RTCRtpEncodingParameters {
108   nothrow:
109   JsHandle handle;
110   alias handle this;
111   this(Handle h) {
112     this.handle = JsHandle(h);
113   }
114   static auto create() {
115     return RTCRtpEncodingParameters(libwasm_add__object());
116   }
117   void ssrc()(uint ssrc) {
118     Object_Call_uint__void(this.handle, "ssrc", ssrc);
119   }
120   uint ssrc()() {
121     return Object_Getter__uint(this.handle, "ssrc");
122   }
123   void rtx()(scope ref RTCRtxParameters rtx) {
124     Object_Call_Handle__void(this.handle, "rtx", rtx.handle);
125   }
126   auto rtx()() {
127     return RTCRtxParameters(Object_Getter__Handle(this.handle, "rtx"));
128   }
129   void fec()(scope ref RTCFecParameters fec) {
130     Object_Call_Handle__void(this.handle, "fec", fec.handle);
131   }
132   auto fec()() {
133     return RTCFecParameters(Object_Getter__Handle(this.handle, "fec"));
134   }
135   void active()(bool active) {
136     Object_Call_bool__void(this.handle, "active", active);
137   }
138   bool active()() {
139     return Object_Getter__bool(this.handle, "active");
140   }
141   void priority()(RTCPriorityType priority) {
142     Object_Call_int__void(this.handle, "priority", priority);
143   }
144   RTCPriorityType priority()() {
145     return Object_Getter__int(this.handle, "priority");
146   }
147   void maxBitrate()(uint maxBitrate) {
148     Object_Call_uint__void(this.handle, "maxBitrate", maxBitrate);
149   }
150   uint maxBitrate()() {
151     return Object_Getter__uint(this.handle, "maxBitrate");
152   }
153   void degradationPreference()(RTCDegradationPreference degradationPreference) {
154     Object_Call_int__void(this.handle, "degradationPreference", degradationPreference);
155   }
156   RTCDegradationPreference degradationPreference()() {
157     return Object_Getter__int(this.handle, "degradationPreference");
158   }
159   void rid()(string rid) {
160     Object_Call_string__void(this.handle, "rid", rid);
161   }
162   string rid()() {
163     return Object_Getter__string(this.handle, "rid");
164   }
165   void scaleResolutionDownBy()(float scaleResolutionDownBy) {
166     Object_Call_float__void(this.handle, "scaleResolutionDownBy", scaleResolutionDownBy);
167   }
168   float scaleResolutionDownBy()() {
169     return Object_Getter__float(this.handle, "scaleResolutionDownBy");
170   }
171 }
172 struct RTCRtpHeaderExtensionParameters {
173   nothrow:
174   JsHandle handle;
175   alias handle this;
176   this(Handle h) {
177     this.handle = JsHandle(h);
178   }
179   static auto create() {
180     return RTCRtpHeaderExtensionParameters(libwasm_add__object());
181   }
182   void uri()(string uri) {
183     Object_Call_string__void(this.handle, "uri", uri);
184   }
185   string uri()() {
186     return Object_Getter__string(this.handle, "uri");
187   }
188   void id()(ushort id) {
189     Serialize_Object_VarArgCall!void(this.handle, "id", "ushort", tuple(id));
190   }
191   ushort id()() {
192     return Object_Getter__ushort(this.handle, "id");
193   }
194   void encrypted()(bool encrypted) {
195     Object_Call_bool__void(this.handle, "encrypted", encrypted);
196   }
197   bool encrypted()() {
198     return Object_Getter__bool(this.handle, "encrypted");
199   }
200 }
201 struct RTCRtpParameters {
202   nothrow:
203   JsHandle handle;
204   alias handle this;
205   this(Handle h) {
206     this.handle = JsHandle(h);
207   }
208   static auto create() {
209     return RTCRtpParameters(libwasm_add__object());
210   }
211   void encodings()(scope ref Sequence!(RTCRtpEncodingParameters) encodings) {
212     Object_Call_Handle__void(this.handle, "encodings", encodings.handle);
213   }
214   auto encodings()() {
215     return Sequence!(RTCRtpEncodingParameters)(Object_Getter__Handle(this.handle, "encodings"));
216   }
217   void headerExtensions()(scope ref Sequence!(RTCRtpHeaderExtensionParameters) headerExtensions) {
218     Object_Call_Handle__void(this.handle, "headerExtensions", headerExtensions.handle);
219   }
220   auto headerExtensions()() {
221     return Sequence!(RTCRtpHeaderExtensionParameters)(Object_Getter__Handle(this.handle, "headerExtensions"));
222   }
223   void rtcp()(scope ref RTCRtcpParameters rtcp) {
224     Object_Call_Handle__void(this.handle, "rtcp", rtcp.handle);
225   }
226   auto rtcp()() {
227     return RTCRtcpParameters(Object_Getter__Handle(this.handle, "rtcp"));
228   }
229   void codecs()(scope ref Sequence!(RTCRtpCodecParameters) codecs) {
230     Object_Call_Handle__void(this.handle, "codecs", codecs.handle);
231   }
232   auto codecs()() {
233     return Sequence!(RTCRtpCodecParameters)(Object_Getter__Handle(this.handle, "codecs"));
234   }
235 }
236 struct RTCRtpSender {
237   nothrow:
238   JsHandle handle;
239   alias handle this;
240   this(Handle h) {
241     this.handle = JsHandle(h);
242   }
243   auto track()() {
244     return recastOpt!(MediaStreamTrack)(Object_Getter__OptionalHandle(this.handle, "track"));
245   }
246   auto setParameters()(scope ref RTCRtpParameters parameters) {
247     return JsPromise!(void)(Object_Call_Handle__Handle(this.handle, "setParameters", parameters.handle));
248   }
249   auto setParameters()() {
250     return JsPromise!(void)(Object_Getter__Handle(this.handle, "setParameters"));
251   }
252   auto getParameters()() {
253     return RTCRtpParameters(Object_Getter__Handle(this.handle, "getParameters"));
254   }
255   auto replaceTrack(T0)(scope auto ref Optional!(T0) withTrack) if (isTOrPointer!(T0, MediaStreamTrack)) {
256     return JsPromise!(void)(Serialize_Object_VarArgCall!Handle(this.handle, "replaceTrack", "Optional!Handle", tuple(!withTrack.empty, cast(Handle)withTrack.front._parent)));
257   }
258   auto getStats()() {
259     return JsPromise!(RTCStatsReport)(Object_Getter__Handle(this.handle, "getStats"));
260   }
261   auto dtmf()() {
262     return recastOpt!(RTCDTMFSender)(Object_Getter__OptionalHandle(this.handle, "dtmf"));
263   }
264   auto getStreams()() {
265     return Sequence!(MediaStream)(Object_Getter__Handle(this.handle, "getStreams"));
266   }
267   void setStreams()(scope ref Sequence!(MediaStream) streams) {
268     Object_Call_Handle__void(this.handle, "setStreams", streams.handle);
269   }
270   void setTrack(T0)(scope auto ref Optional!(T0) track) if (isTOrPointer!(T0, MediaStreamTrack)) {
271     Serialize_Object_VarArgCall!void(this.handle, "setTrack", "Optional!Handle", tuple(!track.empty, cast(Handle)track.front._parent));
272   }
273   void checkWasCreatedByPc()(scope ref RTCPeerConnection pc) {
274     Object_Call_Handle__void(this.handle, "checkWasCreatedByPc", pc._parent);
275   }
276 }
277 struct RTCRtxParameters {
278   nothrow:
279   JsHandle handle;
280   alias handle this;
281   this(Handle h) {
282     this.handle = JsHandle(h);
283   }
284   static auto create() {
285     return RTCRtxParameters(libwasm_add__object());
286   }
287   void ssrc()(uint ssrc) {
288     Object_Call_uint__void(this.handle, "ssrc", ssrc);
289   }
290   uint ssrc()() {
291     return Object_Getter__uint(this.handle, "ssrc");
292   }
293 }
294 
295