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