mirror of
https://github.com/servo/servo.git
synced 2025-07-22 06:43:40 +01:00
Add empty MediaDevices interface
This commit is contained in:
parent
93a359e528
commit
bafbc0e1c0
3 changed files with 123 additions and 0 deletions
34
components/script/dom/mediadevices.rs
Normal file
34
components/script/dom/mediadevices.rs
Normal file
|
@ -0,0 +1,34 @@
|
|||
/* 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::MediaDevicesBinding;
|
||||
use crate::dom::bindings::error::Fallible;
|
||||
use crate::dom::bindings::reflector::reflect_dom_object;
|
||||
use crate::dom::bindings::reflector::DomObject;
|
||||
use crate::dom::bindings::root::DomRoot;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::globalscope::GlobalScope;
|
||||
use crate::dom::window::Window;
|
||||
use dom_struct::dom_struct;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct MediaDevices {
|
||||
eventtarget: EventTarget,
|
||||
}
|
||||
|
||||
impl MediaDevices {
|
||||
pub fn new_inherited() -> MediaDevices {
|
||||
MediaDevices {
|
||||
eventtarget: EventTarget::new_inherited(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new(global: &GlobalScope) -> DomRoot<MediaDevices> {
|
||||
reflect_dom_object(
|
||||
Box::new(MediaDevices::new_inherited()),
|
||||
global,
|
||||
MediaDevicesBinding::Wrap,
|
||||
)
|
||||
}
|
||||
}
|
|
@ -389,6 +389,7 @@ pub mod imagedata;
|
|||
pub mod inputevent;
|
||||
pub mod keyboardevent;
|
||||
pub mod location;
|
||||
pub mod mediadevices;
|
||||
pub mod mediaerror;
|
||||
pub mod medialist;
|
||||
pub mod mediaquerylist;
|
||||
|
|
88
components/script/dom/webidls/MediaDevices.webidl
Normal file
88
components/script/dom/webidls/MediaDevices.webidl
Normal file
|
@ -0,0 +1,88 @@
|
|||
/* 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-mediadevices
|
||||
|
||||
[Exposed=Window,
|
||||
SecureContext, Pref="dom.webrtc.enabled"]
|
||||
interface MediaDevices : EventTarget {
|
||||
// attribute EventHandler ondevicechange;
|
||||
// Promise<sequence<MediaDeviceInfo>> enumerateDevices();
|
||||
};
|
||||
|
||||
partial interface Navigator {
|
||||
// [SameObject, SecureContext]
|
||||
// readonly attribute MediaDevices mediaDevices;
|
||||
};
|
||||
|
||||
partial interface MediaDevices {
|
||||
// MediaTrackSupportedConstraints getSupportedConstraints();
|
||||
// Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints);
|
||||
};
|
||||
|
||||
|
||||
dictionary MediaStreamConstraints {
|
||||
// (boolean or MediaTrackConstraints) video = false;
|
||||
// (boolean or MediaTrackConstraints) audio = false;
|
||||
boolean video = false;
|
||||
boolean audio = false;
|
||||
};
|
||||
|
||||
// dictionary DoubleRange {
|
||||
// double max;
|
||||
// double min;
|
||||
// };
|
||||
|
||||
// dictionary ConstrainDoubleRange : DoubleRange {
|
||||
// double exact;
|
||||
// double ideal;
|
||||
// };
|
||||
|
||||
// dictionary ULongRange {
|
||||
// [Clamp] unsigned long max;
|
||||
// [Clamp] unsigned long min;
|
||||
// };
|
||||
|
||||
// dictionary ConstrainULongRange : ULongRange {
|
||||
// [Clamp] unsigned long exact;
|
||||
// [Clamp] unsigned long ideal;
|
||||
// };
|
||||
|
||||
// dictionary ConstrainBooleanParameters {
|
||||
// boolean exact;
|
||||
// boolean ideal;
|
||||
// };
|
||||
|
||||
// dictionary ConstrainDOMStringParameters {
|
||||
// (DOMString or sequence<DOMString>) exact;
|
||||
// (DOMString or sequence<DOMString>) ideal;
|
||||
// };
|
||||
|
||||
// dictionary MediaTrackConstraints : MediaTrackConstraintSet {
|
||||
// sequence<MediaTrackConstraintSet> advanced;
|
||||
// };
|
||||
|
||||
// typedef ([Clamp] unsigned long or ConstrainULongRange) ConstrainULong;
|
||||
// typedef (double or ConstrainDoubleRange) ConstrainDouble;
|
||||
// typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
|
||||
// typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;
|
||||
|
||||
// dictionary MediaTrackConstraintSet {
|
||||
// ConstrainULong width;
|
||||
// ConstrainULong height;
|
||||
// ConstrainDouble aspectRatio;
|
||||
// ConstrainDouble frameRate;
|
||||
// ConstrainDOMString facingMode;
|
||||
// ConstrainDOMString resizeMode;
|
||||
// ConstrainDouble volume;
|
||||
// ConstrainULong sampleRate;
|
||||
// ConstrainULong sampleSize;
|
||||
// ConstrainBoolean echoCancellation;
|
||||
// ConstrainBoolean autoGainControl;
|
||||
// ConstrainBoolean noiseSuppression;
|
||||
// ConstrainDouble latency;
|
||||
// ConstrainULong channelCount;
|
||||
// ConstrainDOMString deviceId;
|
||||
// ConstrainDOMString groupId;
|
||||
// };
|
Loading…
Add table
Add a link
Reference in a new issue