script/dom/webrtc/
rtcrtpsender.rs1use std::rc::Rc;
6
7use dom_struct::dom_struct;
8
9use crate::dom::bindings::codegen::Bindings::RTCRtpSenderBinding::{
10 RTCRtcpParameters, RTCRtpParameters, RTCRtpSendParameters, RTCRtpSenderMethods,
11};
12use crate::dom::bindings::reflector::{DomGlobal, Reflector, reflect_dom_object};
13use crate::dom::bindings::root::DomRoot;
14use crate::dom::bindings::str::DOMString;
15use crate::dom::globalscope::GlobalScope;
16use crate::dom::promise::Promise;
17use crate::script_runtime::CanGc;
18
19#[dom_struct]
20pub(crate) struct RTCRtpSender {
21 reflector_: Reflector,
22}
23
24impl RTCRtpSender {
25 fn new_inherited() -> Self {
26 Self {
27 reflector_: Reflector::new(),
28 }
29 }
30
31 pub(crate) fn new(global: &GlobalScope, can_gc: CanGc) -> DomRoot<Self> {
32 reflect_dom_object(Box::new(Self::new_inherited()), global, can_gc)
33 }
34}
35
36impl RTCRtpSenderMethods<crate::DomTypeHolder> for RTCRtpSender {
37 fn GetParameters(&self) -> RTCRtpSendParameters {
39 RTCRtpSendParameters {
40 parent: RTCRtpParameters {
41 headerExtensions: vec![],
42 rtcp: RTCRtcpParameters {
43 cname: None,
44 reducedSize: None,
45 },
46 codecs: vec![],
47 },
48 transactionId: DOMString::new(),
49 encodings: vec![],
50 }
51 }
52
53 fn SetParameters(&self, _parameters: &RTCRtpSendParameters, can_gc: CanGc) -> Rc<Promise> {
55 let promise = Promise::new(&self.global(), can_gc);
56 promise.resolve_native(&(), can_gc);
57 promise
58 }
59}