mirror of
https://github.com/servo/servo.git
synced 2025-07-31 11:10:22 +01:00
Add {MediaStream, MediaStreamTrack}.clone()
This commit is contained in:
parent
477ca175e3
commit
229ce36431
4 changed files with 18 additions and 4 deletions
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
use crate::dom::bindings::cell::DomRefCell;
|
use crate::dom::bindings::cell::DomRefCell;
|
||||||
use crate::dom::bindings::codegen::Bindings::MediaStreamBinding::{self, MediaStreamMethods};
|
use crate::dom::bindings::codegen::Bindings::MediaStreamBinding::{self, MediaStreamMethods};
|
||||||
use crate::dom::bindings::reflector::reflect_dom_object;
|
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
|
||||||
use crate::dom::bindings::root::{Dom, DomRoot};
|
use crate::dom::bindings::root::{Dom, DomRoot};
|
||||||
use crate::dom::bindings::str::DOMString;
|
use crate::dom::bindings::str::DOMString;
|
||||||
use crate::dom::eventtarget::EventTarget;
|
use crate::dom::eventtarget::EventTarget;
|
||||||
|
@ -98,4 +98,13 @@ impl MediaStreamMethods for MediaStream {
|
||||||
fn RemoveTrack(&self, track: &MediaStreamTrack) {
|
fn RemoveTrack(&self, track: &MediaStreamTrack) {
|
||||||
self.tracks.borrow_mut().retain(|x| *x != track);
|
self.tracks.borrow_mut().retain(|x| *x != track);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// https://w3c.github.io/mediacapture-main/#dom-mediastream-clone
|
||||||
|
fn Clone(&self) -> DomRoot<MediaStream> {
|
||||||
|
let new = MediaStream::new(&self.global());
|
||||||
|
for track in &*self.tracks.borrow() {
|
||||||
|
new.add_track(&track)
|
||||||
|
}
|
||||||
|
new
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
use crate::dom::bindings::codegen::Bindings::MediaStreamTrackBinding::{
|
use crate::dom::bindings::codegen::Bindings::MediaStreamTrackBinding::{
|
||||||
self, MediaStreamTrackMethods,
|
self, MediaStreamTrackMethods,
|
||||||
};
|
};
|
||||||
use crate::dom::bindings::reflector::reflect_dom_object;
|
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
|
||||||
use crate::dom::bindings::root::DomRoot;
|
use crate::dom::bindings::root::DomRoot;
|
||||||
use crate::dom::bindings::str::DOMString;
|
use crate::dom::bindings::str::DOMString;
|
||||||
use crate::dom::eventtarget::EventTarget;
|
use crate::dom::eventtarget::EventTarget;
|
||||||
|
@ -66,4 +66,9 @@ impl MediaStreamTrackMethods for MediaStreamTrack {
|
||||||
fn Id(&self) -> DOMString {
|
fn Id(&self) -> DOMString {
|
||||||
self.id.id().to_string().into()
|
self.id.id().to_string().into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack-clone
|
||||||
|
fn Clone(&self) -> DomRoot<MediaStreamTrack> {
|
||||||
|
MediaStreamTrack::new(&self.global(), self.id, self.ty)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ interface MediaStream : EventTarget {
|
||||||
MediaStreamTrack? getTrackById(DOMString trackId);
|
MediaStreamTrack? getTrackById(DOMString trackId);
|
||||||
void addTrack(MediaStreamTrack track);
|
void addTrack(MediaStreamTrack track);
|
||||||
void removeTrack(MediaStreamTrack track);
|
void removeTrack(MediaStreamTrack track);
|
||||||
// MediaStream clone();
|
MediaStream clone();
|
||||||
// readonly attribute boolean active;
|
// readonly attribute boolean active;
|
||||||
// attribute EventHandler onaddtrack;
|
// attribute EventHandler onaddtrack;
|
||||||
// attribute EventHandler onremovetrack;
|
// attribute EventHandler onremovetrack;
|
||||||
|
|
|
@ -15,7 +15,7 @@ interface MediaStreamTrack : EventTarget {
|
||||||
// attribute EventHandler onunmute;
|
// attribute EventHandler onunmute;
|
||||||
// readonly attribute MediaStreamTrackState readyState;
|
// readonly attribute MediaStreamTrackState readyState;
|
||||||
// attribute EventHandler onended;
|
// attribute EventHandler onended;
|
||||||
// MediaStreamTrack clone();
|
MediaStreamTrack clone();
|
||||||
// void stop();
|
// void stop();
|
||||||
// MediaTrackCapabilities getCapabilities();
|
// MediaTrackCapabilities getCapabilities();
|
||||||
// MediaTrackConstraints getConstraints();
|
// MediaTrackConstraints getConstraints();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue