Skip to content
Permalink
Browse files

Add MediaStreamTrack interface

  • Loading branch information...
Manishearth committed May 7, 2019
1 parent 749a659 commit 106cc4a1f7a9454e0f551d13806cf44a02bc32c9
@@ -0,0 +1,35 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

use crate::dom::bindings::codegen::Bindings::MediaStreamTrackBinding;
use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot;
use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope;
use dom_struct::dom_struct;
use servo_media::streams::registry::MediaStreamId;

#[dom_struct]
pub struct MediaStreamTrack {
eventtarget: EventTarget,
#[ignore_malloc_size_of = "defined in servo-media"]
id: MediaStreamId,
}

impl MediaStreamTrack {
pub fn new_inherited(id: MediaStreamId) -> MediaStreamTrack {
MediaStreamTrack {
eventtarget: EventTarget::new_inherited(),
id,
}
}

pub fn new(global: &GlobalScope, id: MediaStreamId) -> DomRoot<MediaStreamTrack> {
reflect_dom_object(
Box::new(MediaStreamTrack::new_inherited(id)),
global,
MediaStreamTrackBinding::Wrap,
)
}
}
@@ -399,6 +399,7 @@ pub mod medialist;
pub mod mediaquerylist;
pub mod mediaquerylistevent;
pub mod mediastream;
pub mod mediastreamtrack;
pub mod messageevent;
pub mod mimetype;
pub mod mimetypearray;
@@ -0,0 +1,24 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

// https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack

[Exposed=Window, Pref="dom.webrtc.enabled"]
interface MediaStreamTrack : EventTarget {
// readonly attribute DOMString kind;
// readonly attribute DOMString id;
// readonly attribute DOMString label;
// attribute boolean enabled;
// readonly attribute boolean muted;
// attribute EventHandler onmute;
// attribute EventHandler onunmute;
// readonly attribute MediaStreamTrackState readyState;
// attribute EventHandler onended;
// MediaStreamTrack clone();
// void stop();
// MediaTrackCapabilities getCapabilities();
// MediaTrackConstraints getConstraints();
// MediaTrackSettings getSettings();
// Promise<void> applyConstraints(optional MediaTrackConstraints constraints);
};

0 comments on commit 106cc4a

Please sign in to comment.
You can’t perform that action at this time.