// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/mediacapture-streams
///|
/// ConstrainULong typedef
pub type ConstrainULong
///|
pub extern "js" fn ConstrainULong::to_js_value(
self : ConstrainULong,
) -> JsValue =
#| (self) => self
///|
/// Create ConstrainULong from Int
pub extern "js" fn ConstrainULong::from_int(v : Int) -> ConstrainULong =
#| (v) => v
///|
/// Create ConstrainULong from ConstrainULongRange
pub extern "js" fn ConstrainULong::from_constrain_u_long_range(
v : ConstrainULongRange,
) -> ConstrainULong =
#| (v) => v
///|
/// Check if this ConstrainULong is Int
pub extern "js" fn ConstrainULong::is_int(self : ConstrainULong) -> Bool =
#| (self) => typeof self === 'number'
///|
/// Check if this ConstrainULong is ConstrainULongRange
pub extern "js" fn ConstrainULong::is_constrain_u_long_range(
self : ConstrainULong,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ConstrainULong as Int
pub extern "js" fn ConstrainULong::as_int(self : ConstrainULong) -> Int? =
#| (self) => (typeof self === 'number') ? self : undefined
///|
/// Try to get ConstrainULong as ConstrainULongRange
pub extern "js" fn ConstrainULong::as_constrain_u_long_range(
self : ConstrainULong,
) -> ConstrainULongRange? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ConstrainULong] to Int?
pub fn ConstrainULong::bind_as_int(value : ConstrainULong?) -> Int? {
match value {
Some(v) => v.as_int()
None => None
}
}
///|
/// Flatten Option[ConstrainULong] to ConstrainULongRange?
pub fn ConstrainULong::bind_as_constrain_u_long_range(
value : ConstrainULong?,
) -> ConstrainULongRange? {
match value {
Some(v) => v.as_constrain_u_long_range()
None => None
}
}
///|
/// ConstrainDouble typedef
pub type ConstrainDouble
///|
pub extern "js" fn ConstrainDouble::to_js_value(
self : ConstrainDouble,
) -> JsValue =
#| (self) => self
///|
/// Create ConstrainDouble from Double
pub extern "js" fn ConstrainDouble::from_double(v : Double) -> ConstrainDouble =
#| (v) => v
///|
/// Create ConstrainDouble from ConstrainDoubleRange
pub extern "js" fn ConstrainDouble::from_constrain_double_range(
v : ConstrainDoubleRange,
) -> ConstrainDouble =
#| (v) => v
///|
/// Check if this ConstrainDouble is Double
pub extern "js" fn ConstrainDouble::is_double(self : ConstrainDouble) -> Bool =
#| (self) => typeof self === 'number'
///|
/// Check if this ConstrainDouble is ConstrainDoubleRange
pub extern "js" fn ConstrainDouble::is_constrain_double_range(
self : ConstrainDouble,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ConstrainDouble as Double
pub extern "js" fn ConstrainDouble::as_double(
self : ConstrainDouble,
) -> Double? =
#| (self) => (typeof self === 'number') ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Try to get ConstrainDouble as ConstrainDoubleRange
pub extern "js" fn ConstrainDouble::as_constrain_double_range(
self : ConstrainDouble,
) -> ConstrainDoubleRange? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ConstrainDouble] to Double?
pub fn ConstrainDouble::bind_as_double(value : ConstrainDouble?) -> Double? {
match value {
Some(v) => v.as_double()
None => None
}
}
///|
/// Flatten Option[ConstrainDouble] to ConstrainDoubleRange?
pub fn ConstrainDouble::bind_as_constrain_double_range(
value : ConstrainDouble?,
) -> ConstrainDoubleRange? {
match value {
Some(v) => v.as_constrain_double_range()
None => None
}
}
///|
/// ConstrainBoolean typedef
pub type ConstrainBoolean
///|
pub extern "js" fn ConstrainBoolean::to_js_value(
self : ConstrainBoolean,
) -> JsValue =
#| (self) => self
///|
/// Create ConstrainBoolean from Bool
pub extern "js" fn ConstrainBoolean::from_bool(v : Bool) -> ConstrainBoolean =
#| (v) => v
///|
/// Create ConstrainBoolean from ConstrainBooleanParameters
pub extern "js" fn ConstrainBoolean::from_constrain_boolean_parameters(
v : ConstrainBooleanParameters,
) -> ConstrainBoolean =
#| (v) => v
///|
/// Check if this ConstrainBoolean is Bool
pub extern "js" fn ConstrainBoolean::is_bool(self : ConstrainBoolean) -> Bool =
#| (self) => typeof self === 'boolean'
///|
/// Check if this ConstrainBoolean is ConstrainBooleanParameters
pub extern "js" fn ConstrainBoolean::is_constrain_boolean_parameters(
self : ConstrainBoolean,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ConstrainBoolean as Bool
pub extern "js" fn ConstrainBoolean::as_bool(self : ConstrainBoolean) -> Bool? =
#| (self) => (typeof self === 'boolean') ? self : undefined
///|
/// Try to get ConstrainBoolean as ConstrainBooleanParameters
pub extern "js" fn ConstrainBoolean::as_constrain_boolean_parameters(
self : ConstrainBoolean,
) -> ConstrainBooleanParameters? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ConstrainBoolean] to Bool?
pub fn ConstrainBoolean::bind_as_bool(value : ConstrainBoolean?) -> Bool? {
match value {
Some(v) => v.as_bool()
None => None
}
}
///|
/// Flatten Option[ConstrainBoolean] to ConstrainBooleanParameters?
pub fn ConstrainBoolean::bind_as_constrain_boolean_parameters(
value : ConstrainBoolean?,
) -> ConstrainBooleanParameters? {
match value {
Some(v) => v.as_constrain_boolean_parameters()
None => None
}
}
///|
/// ConstrainDOMString typedef
pub type ConstrainDOMString
///|
pub extern "js" fn ConstrainDOMString::to_js_value(
self : ConstrainDOMString,
) -> JsValue =
#| (self) => self
///|
/// Create ConstrainDOMString from String
pub extern "js" fn ConstrainDOMString::from_string(
v : String,
) -> ConstrainDOMString =
#| (v) => v
///|
/// Create ConstrainDOMString from Array[String]
pub extern "js" fn ConstrainDOMString::from_array_of_string(
v : Array[String],
) -> ConstrainDOMString =
#| (v) => v
///|
/// Create ConstrainDOMString from ConstrainDOMStringParameters
pub extern "js" fn ConstrainDOMString::from_constrain_dom_string_parameters(
v : ConstrainDOMStringParameters,
) -> ConstrainDOMString =
#| (v) => v
///|
/// Check if this ConstrainDOMString is String
pub extern "js" fn ConstrainDOMString::is_string(
self : ConstrainDOMString,
) -> Bool =
#| (self) => typeof self === 'string'
///|
/// Check if this ConstrainDOMString is Array[String]
pub extern "js" fn ConstrainDOMString::is_array_of_string(
self : ConstrainDOMString,
) -> Bool =
#| (self) => Array.isArray(self)
///|
/// Check if this ConstrainDOMString is ConstrainDOMStringParameters
pub extern "js" fn ConstrainDOMString::is_constrain_dom_string_parameters(
self : ConstrainDOMString,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ConstrainDOMString as String
pub extern "js" fn ConstrainDOMString::as_string(
self : ConstrainDOMString,
) -> String? =
#| (self) => (typeof self === 'string') ? self : undefined
///|
/// Try to get ConstrainDOMString as Array[String]
pub extern "js" fn ConstrainDOMString::as_array_of_string(
self : ConstrainDOMString,
) -> Array[String]? =
#| (self) => (Array.isArray(self)) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Try to get ConstrainDOMString as ConstrainDOMStringParameters
pub extern "js" fn ConstrainDOMString::as_constrain_dom_string_parameters(
self : ConstrainDOMString,
) -> ConstrainDOMStringParameters? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ConstrainDOMString] to String?
pub fn ConstrainDOMString::bind_as_string(
value : ConstrainDOMString?,
) -> String? {
match value {
Some(v) => v.as_string()
None => None
}
}
///|
/// Flatten Option[ConstrainDOMString] to Array[String]?
pub fn ConstrainDOMString::bind_as_array_of_string(
value : ConstrainDOMString?,
) -> Array[String]? {
match value {
Some(v) => v.as_array_of_string()
None => None
}
}
///|
/// Flatten Option[ConstrainDOMString] to ConstrainDOMStringParameters?
pub fn ConstrainDOMString::bind_as_constrain_dom_string_parameters(
value : ConstrainDOMString?,
) -> ConstrainDOMStringParameters? {
match value {
Some(v) => v.as_constrain_dom_string_parameters()
None => None
}
}
///|
/// ConstrainBooleanOrDOMString typedef
pub type ConstrainBooleanOrDOMString
///|
pub extern "js" fn ConstrainBooleanOrDOMString::to_js_value(
self : ConstrainBooleanOrDOMString,
) -> JsValue =
#| (self) => self
///|
/// Create ConstrainBooleanOrDOMString from Bool
pub extern "js" fn ConstrainBooleanOrDOMString::from_bool(
v : Bool,
) -> ConstrainBooleanOrDOMString =
#| (v) => v
///|
/// Create ConstrainBooleanOrDOMString from String
pub extern "js" fn ConstrainBooleanOrDOMString::from_string(
v : String,
) -> ConstrainBooleanOrDOMString =
#| (v) => v
///|
/// Create ConstrainBooleanOrDOMString from ConstrainBooleanOrDOMStringParameters
pub extern "js" fn ConstrainBooleanOrDOMString::from_constrain_boolean_or_dom_string_parameters(
v : ConstrainBooleanOrDOMStringParameters,
) -> ConstrainBooleanOrDOMString =
#| (v) => v
///|
/// Check if this ConstrainBooleanOrDOMString is Bool
pub extern "js" fn ConstrainBooleanOrDOMString::is_bool(
self : ConstrainBooleanOrDOMString,
) -> Bool =
#| (self) => typeof self === 'boolean'
///|
/// Check if this ConstrainBooleanOrDOMString is String
pub extern "js" fn ConstrainBooleanOrDOMString::is_string(
self : ConstrainBooleanOrDOMString,
) -> Bool =
#| (self) => typeof self === 'string'
///|
/// Check if this ConstrainBooleanOrDOMString is ConstrainBooleanOrDOMStringParameters
pub extern "js" fn ConstrainBooleanOrDOMString::is_constrain_boolean_or_dom_string_parameters(
self : ConstrainBooleanOrDOMString,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ConstrainBooleanOrDOMString as Bool
pub extern "js" fn ConstrainBooleanOrDOMString::as_bool(
self : ConstrainBooleanOrDOMString,
) -> Bool? =
#| (self) => (typeof self === 'boolean') ? self : undefined
///|
/// Try to get ConstrainBooleanOrDOMString as String
pub extern "js" fn ConstrainBooleanOrDOMString::as_string(
self : ConstrainBooleanOrDOMString,
) -> String? =
#| (self) => (typeof self === 'string') ? self : undefined
///|
/// Try to get ConstrainBooleanOrDOMString as ConstrainBooleanOrDOMStringParameters
pub extern "js" fn ConstrainBooleanOrDOMString::as_constrain_boolean_or_dom_string_parameters(
self : ConstrainBooleanOrDOMString,
) -> ConstrainBooleanOrDOMStringParameters? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ConstrainBooleanOrDOMString] to Bool?
pub fn ConstrainBooleanOrDOMString::bind_as_bool(
value : ConstrainBooleanOrDOMString?,
) -> Bool? {
match value {
Some(v) => v.as_bool()
None => None
}
}
///|
/// Flatten Option[ConstrainBooleanOrDOMString] to String?
pub fn ConstrainBooleanOrDOMString::bind_as_string(
value : ConstrainBooleanOrDOMString?,
) -> String? {
match value {
Some(v) => v.as_string()
None => None
}
}
///|
/// Flatten Option[ConstrainBooleanOrDOMString] to ConstrainBooleanOrDOMStringParameters?
pub fn ConstrainBooleanOrDOMString::bind_as_constrain_boolean_or_dom_string_parameters(
value : ConstrainBooleanOrDOMString?,
) -> ConstrainBooleanOrDOMStringParameters? {
match value {
Some(v) => v.as_constrain_boolean_or_dom_string_parameters()
None => None
}
}
///|
/// MediaStreamTrackState enum
pub(all) enum MediaStreamTrackState {
Live
Ended
} derive(Eq, Show)
///|
/// Convert to string value
pub fn MediaStreamTrackState::to_string(self : MediaStreamTrackState) -> String {
match self {
MediaStreamTrackState::Live => "live"
MediaStreamTrackState::Ended => "ended"
}
}
///|
/// Parse from string value
pub fn MediaStreamTrackState::from_string(s : String) -> MediaStreamTrackState? {
match s {
"live" => Some(MediaStreamTrackState::Live)
"ended" => Some(MediaStreamTrackState::Ended)
_ => None
}
}
///|
/// VideoFacingModeEnum enum
pub(all) enum VideoFacingModeEnum {
User
Environment
Left
Right
} derive(Eq, Show)
///|
/// Convert to string value
pub fn VideoFacingModeEnum::to_string(self : VideoFacingModeEnum) -> String {
match self {
VideoFacingModeEnum::User => "user"
VideoFacingModeEnum::Environment => "environment"
VideoFacingModeEnum::Left => "left"
VideoFacingModeEnum::Right => "right"
}
}
///|
/// Parse from string value
pub fn VideoFacingModeEnum::from_string(s : String) -> VideoFacingModeEnum? {
match s {
"user" => Some(VideoFacingModeEnum::User)
"environment" => Some(VideoFacingModeEnum::Environment)
"left" => Some(VideoFacingModeEnum::Left)
"right" => Some(VideoFacingModeEnum::Right)
_ => None
}
}
///|
/// VideoResizeModeEnum enum
pub(all) enum VideoResizeModeEnum {
None
CropAndScale
} derive(Eq, Show)
///|
/// Convert to string value
pub fn VideoResizeModeEnum::to_string(self : VideoResizeModeEnum) -> String {
match self {
VideoResizeModeEnum::None => "none"
VideoResizeModeEnum::CropAndScale => "crop-and-scale"
}
}
///|
/// Parse from string value
pub fn VideoResizeModeEnum::from_string(s : String) -> VideoResizeModeEnum? {
match s {
"none" => Some(VideoResizeModeEnum::None)
"crop-and-scale" => Some(VideoResizeModeEnum::CropAndScale)
_ => None
}
}
///|
/// EchoCancellationModeEnum enum
pub(all) enum EchoCancellationModeEnum {
All
RemoteOnly
} derive(Eq, Show)
///|
/// Convert to string value
pub fn EchoCancellationModeEnum::to_string(
self : EchoCancellationModeEnum,
) -> String {
match self {
EchoCancellationModeEnum::All => "all"
EchoCancellationModeEnum::RemoteOnly => "remote-only"
}
}
///|
/// Parse from string value
pub fn EchoCancellationModeEnum::from_string(
s : String,
) -> EchoCancellationModeEnum? {
match s {
"all" => Some(EchoCancellationModeEnum::All)
"remote-only" => Some(EchoCancellationModeEnum::RemoteOnly)
_ => None
}
}
///|
/// MediaDeviceKind enum
pub(all) enum MediaDeviceKind {
Audioinput
Audiooutput
Videoinput
} derive(Eq, Show)
///|
/// Convert to string value
pub fn MediaDeviceKind::to_string(self : MediaDeviceKind) -> String {
match self {
MediaDeviceKind::Audioinput => "audioinput"
MediaDeviceKind::Audiooutput => "audiooutput"
MediaDeviceKind::Videoinput => "videoinput"
}
}
///|
/// Parse from string value
pub fn MediaDeviceKind::from_string(s : String) -> MediaDeviceKind? {
match s {
"audioinput" => Some(MediaDeviceKind::Audioinput)
"audiooutput" => Some(MediaDeviceKind::Audiooutput)
"videoinput" => Some(MediaDeviceKind::Videoinput)
_ => None
}
}
///|
/// MediaTrackConstraints dictionary
pub(all) struct MediaTrackConstraints {
advanced : Array[MediaTrackConstraintSet]?
}
///|
/// Create a new MediaTrackConstraints with default values
pub fn MediaTrackConstraints::default() -> MediaTrackConstraints {
MediaTrackConstraints::{ advanced: None }
}
///|
extern "js" fn MediaTrackConstraints::to_js_ffi(
self : MediaTrackConstraints,
) -> JsValue =
#| (self) => ({
#| advanced: ((() => { const v = self.advanced; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn MediaTrackConstraints::to_js(self : MediaTrackConstraints) -> JsValue {
MediaTrackConstraints::to_js_ffi(self)
}
///|
extern "js" fn MediaTrackConstraints::from_js_ffi(
value : JsValue,
) -> MediaTrackConstraints =
#| (v) => ({
#| advanced: (v.advanced === undefined ? { $tag: 0 } : { $tag: 1, _0: v.advanced })
#| })
///|
/// Convert from JsValue
pub fn MediaTrackConstraints::from_js(value : JsValue) -> MediaTrackConstraints {
MediaTrackConstraints::from_js_ffi(value)
}
///|
/// MediaStreamTrackEventInit dictionary
pub(all) struct MediaStreamTrackEventInit {
track : MediaStreamTrack
}
///|
/// Create a new MediaStreamTrackEventInit
pub fn MediaStreamTrackEventInit::new(
track~ : MediaStreamTrack,
) -> MediaStreamTrackEventInit {
MediaStreamTrackEventInit::{ track, }
}
///|
extern "js" fn MediaStreamTrackEventInit::to_js_ffi(
self : MediaStreamTrackEventInit,
) -> JsValue =
#| (self) => ({
#| track: self.track
#| })
///|
/// Convert to JsValue
pub fn MediaStreamTrackEventInit::to_js(
self : MediaStreamTrackEventInit,
) -> JsValue {
MediaStreamTrackEventInit::to_js_ffi(self)
}
///|
extern "js" fn MediaStreamTrackEventInit::from_js_ffi(
value : JsValue,
) -> MediaStreamTrackEventInit =
#| (v) => ({
#| track: v.track
#| })
///|
/// Convert from JsValue
pub fn MediaStreamTrackEventInit::from_js(
value : JsValue,
) -> MediaStreamTrackEventInit {
MediaStreamTrackEventInit::from_js_ffi(value)
}
///|
/// DeviceChangeEventInit dictionary
pub(all) struct DeviceChangeEventInit {
devices : Array[MediaDeviceInfo]?
}
///|
/// Create a new DeviceChangeEventInit with default values
pub fn DeviceChangeEventInit::default() -> DeviceChangeEventInit {
DeviceChangeEventInit::{ devices: None }
}
///|
extern "js" fn DeviceChangeEventInit::to_js_ffi(
self : DeviceChangeEventInit,
) -> JsValue =
#| (self) => ({
#| devices: ((() => { const v = self.devices; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn DeviceChangeEventInit::to_js(self : DeviceChangeEventInit) -> JsValue {
DeviceChangeEventInit::to_js_ffi(self)
}
///|
extern "js" fn DeviceChangeEventInit::from_js_ffi(
value : JsValue,
) -> DeviceChangeEventInit =
#| (v) => ({
#| devices: (v.devices === undefined ? { $tag: 0 } : { $tag: 1, _0: v.devices })
#| })
///|
/// Convert from JsValue
pub fn DeviceChangeEventInit::from_js(value : JsValue) -> DeviceChangeEventInit {
DeviceChangeEventInit::from_js_ffi(value)
}
///|
/// MediaStreamConstraints dictionary
pub(all) struct MediaStreamConstraints {
video : BoolOrMediaTrackConstraints?
audio : BoolOrMediaTrackConstraints?
preferCurrentTab : Bool?
peerIdentity : String?
}
///|
/// Create a new MediaStreamConstraints with default values
pub fn MediaStreamConstraints::default() -> MediaStreamConstraints {
MediaStreamConstraints::{
video: None,
audio: None,
preferCurrentTab: None,
peerIdentity: None,
}
}
///|
extern "js" fn MediaStreamConstraints::to_js_ffi(
self : MediaStreamConstraints,
) -> JsValue =
#| (self) => ({
#| video: ((() => { const v = self.video; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| audio: ((() => { const v = self.audio; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| preferCurrentTab: (self.preferCurrentTab === -1 ? undefined : self.preferCurrentTab),
#| peerIdentity: self.peerIdentity
#| })
///|
/// Convert to JsValue
pub fn MediaStreamConstraints::to_js(self : MediaStreamConstraints) -> JsValue {
MediaStreamConstraints::to_js_ffi(self)
}
///|
extern "js" fn MediaStreamConstraints::from_js_ffi(
value : JsValue,
) -> MediaStreamConstraints =
#| (v) => ({
#| video: (v.video === undefined ? { $tag: 0 } : { $tag: 1, _0: v.video }),
#| audio: (v.audio === undefined ? { $tag: 0 } : { $tag: 1, _0: v.audio }),
#| preferCurrentTab: (v.preferCurrentTab === undefined ? -1 : v.preferCurrentTab),
#| peerIdentity: v.peerIdentity
#| })
///|
/// Convert from JsValue
pub fn MediaStreamConstraints::from_js(
value : JsValue,
) -> MediaStreamConstraints {
MediaStreamConstraints::from_js_ffi(value)
}
///|
/// DoubleRange dictionary
pub(all) struct DoubleRange {
max : Double?
min : Double?
}
///|
/// Create a new DoubleRange with default values
pub fn DoubleRange::default() -> DoubleRange {
DoubleRange::{ max: None, min: None }
}
///|
extern "js" fn DoubleRange::to_js_ffi(self : DoubleRange) -> JsValue =
#| (self) => ({
#| max: ((() => { const v = self.max; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| min: ((() => { const v = self.min; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn DoubleRange::to_js(self : DoubleRange) -> JsValue {
DoubleRange::to_js_ffi(self)
}
///|
extern "js" fn DoubleRange::from_js_ffi(value : JsValue) -> DoubleRange =
#| (v) => ({
#| max: (v.max === undefined ? { $tag: 0 } : { $tag: 1, _0: v.max }),
#| min: (v.min === undefined ? { $tag: 0 } : { $tag: 1, _0: v.min })
#| })
///|
/// Convert from JsValue
pub fn DoubleRange::from_js(value : JsValue) -> DoubleRange {
DoubleRange::from_js_ffi(value)
}
///|
/// ConstrainDoubleRange dictionary
pub(all) struct ConstrainDoubleRange {
max : Double?
min : Double?
exact : Double?
ideal : Double?
}
///|
/// Create a new ConstrainDoubleRange with default values
pub fn ConstrainDoubleRange::default() -> ConstrainDoubleRange {
ConstrainDoubleRange::{ max: None, min: None, exact: None, ideal: None }
}
///|
extern "js" fn ConstrainDoubleRange::to_js_ffi(
self : ConstrainDoubleRange,
) -> JsValue =
#| (self) => ({
#| max: ((() => { const v = self.max; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| min: ((() => { const v = self.min; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| exact: ((() => { const v = self.exact; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| ideal: ((() => { const v = self.ideal; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn ConstrainDoubleRange::to_js(self : ConstrainDoubleRange) -> JsValue {
ConstrainDoubleRange::to_js_ffi(self)
}
///|
extern "js" fn ConstrainDoubleRange::from_js_ffi(
value : JsValue,
) -> ConstrainDoubleRange =
#| (v) => ({
#| max: (v.max === undefined ? { $tag: 0 } : { $tag: 1, _0: v.max }),
#| min: (v.min === undefined ? { $tag: 0 } : { $tag: 1, _0: v.min }),
#| exact: (v.exact === undefined ? { $tag: 0 } : { $tag: 1, _0: v.exact }),
#| ideal: (v.ideal === undefined ? { $tag: 0 } : { $tag: 1, _0: v.ideal })
#| })
///|
/// Convert from JsValue
pub fn ConstrainDoubleRange::from_js(value : JsValue) -> ConstrainDoubleRange {
ConstrainDoubleRange::from_js_ffi(value)
}
///|
/// ULongRange dictionary
pub(all) struct ULongRange {
max : Int?
min : Int?
}
///|
/// Create a new ULongRange with default values
pub fn ULongRange::default() -> ULongRange {
ULongRange::{ max: None, min: None }
}
///|
extern "js" fn ULongRange::to_js_ffi(self : ULongRange) -> JsValue =
#| (self) => ({
#| max: self.max,
#| min: self.min
#| })
///|
/// Convert to JsValue
pub fn ULongRange::to_js(self : ULongRange) -> JsValue {
ULongRange::to_js_ffi(self)
}
///|
extern "js" fn ULongRange::from_js_ffi(value : JsValue) -> ULongRange =
#| (v) => ({
#| max: v.max,
#| min: v.min
#| })
///|
/// Convert from JsValue
pub fn ULongRange::from_js(value : JsValue) -> ULongRange {
ULongRange::from_js_ffi(value)
}
///|
/// ConstrainULongRange dictionary
pub(all) struct ConstrainULongRange {
max : Int?
min : Int?
exact : Int?
ideal : Int?
}
///|
/// Create a new ConstrainULongRange with default values
pub fn ConstrainULongRange::default() -> ConstrainULongRange {
ConstrainULongRange::{ max: None, min: None, exact: None, ideal: None }
}
///|
extern "js" fn ConstrainULongRange::to_js_ffi(
self : ConstrainULongRange,
) -> JsValue =
#| (self) => ({
#| max: self.max,
#| min: self.min,
#| exact: self.exact,
#| ideal: self.ideal
#| })
///|
/// Convert to JsValue
pub fn ConstrainULongRange::to_js(self : ConstrainULongRange) -> JsValue {
ConstrainULongRange::to_js_ffi(self)
}
///|
extern "js" fn ConstrainULongRange::from_js_ffi(
value : JsValue,
) -> ConstrainULongRange =
#| (v) => ({
#| max: v.max,
#| min: v.min,
#| exact: v.exact,
#| ideal: v.ideal
#| })
///|
/// Convert from JsValue
pub fn ConstrainULongRange::from_js(value : JsValue) -> ConstrainULongRange {
ConstrainULongRange::from_js_ffi(value)
}
///|
/// ConstrainBooleanParameters dictionary
pub(all) struct ConstrainBooleanParameters {
exact : Bool?
ideal : Bool?
}
///|
/// Create a new ConstrainBooleanParameters with default values
pub fn ConstrainBooleanParameters::default() -> ConstrainBooleanParameters {
ConstrainBooleanParameters::{ exact: None, ideal: None }
}
///|
extern "js" fn ConstrainBooleanParameters::to_js_ffi(
self : ConstrainBooleanParameters,
) -> JsValue =
#| (self) => ({
#| exact: (self.exact === -1 ? undefined : self.exact),
#| ideal: (self.ideal === -1 ? undefined : self.ideal)
#| })
///|
/// Convert to JsValue
pub fn ConstrainBooleanParameters::to_js(
self : ConstrainBooleanParameters,
) -> JsValue {
ConstrainBooleanParameters::to_js_ffi(self)
}
///|
extern "js" fn ConstrainBooleanParameters::from_js_ffi(
value : JsValue,
) -> ConstrainBooleanParameters =
#| (v) => ({
#| exact: (v.exact === undefined ? -1 : v.exact),
#| ideal: (v.ideal === undefined ? -1 : v.ideal)
#| })
///|
/// Convert from JsValue
pub fn ConstrainBooleanParameters::from_js(
value : JsValue,
) -> ConstrainBooleanParameters {
ConstrainBooleanParameters::from_js_ffi(value)
}
///|
/// ConstrainDOMStringParameters dictionary
pub(all) struct ConstrainDOMStringParameters {
exact : StringOrArrayOfString?
ideal : StringOrArrayOfString?
}
///|
/// Create a new ConstrainDOMStringParameters with default values
pub fn ConstrainDOMStringParameters::default() -> ConstrainDOMStringParameters {
ConstrainDOMStringParameters::{ exact: None, ideal: None }
}
///|
extern "js" fn ConstrainDOMStringParameters::to_js_ffi(
self : ConstrainDOMStringParameters,
) -> JsValue =
#| (self) => ({
#| exact: ((() => { const v = self.exact; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| ideal: ((() => { const v = self.ideal; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn ConstrainDOMStringParameters::to_js(
self : ConstrainDOMStringParameters,
) -> JsValue {
ConstrainDOMStringParameters::to_js_ffi(self)
}
///|
extern "js" fn ConstrainDOMStringParameters::from_js_ffi(
value : JsValue,
) -> ConstrainDOMStringParameters =
#| (v) => ({
#| exact: (v.exact === undefined ? { $tag: 0 } : { $tag: 1, _0: v.exact }),
#| ideal: (v.ideal === undefined ? { $tag: 0 } : { $tag: 1, _0: v.ideal })
#| })
///|
/// Convert from JsValue
pub fn ConstrainDOMStringParameters::from_js(
value : JsValue,
) -> ConstrainDOMStringParameters {
ConstrainDOMStringParameters::from_js_ffi(value)
}
///|
/// ConstrainBooleanOrDOMStringParameters dictionary
pub(all) struct ConstrainBooleanOrDOMStringParameters {
exact : BoolOrString?
ideal : BoolOrString?
}
///|
/// Create a new ConstrainBooleanOrDOMStringParameters with default values
pub fn ConstrainBooleanOrDOMStringParameters::default() -> ConstrainBooleanOrDOMStringParameters {
ConstrainBooleanOrDOMStringParameters::{ exact: None, ideal: None }
}
///|
extern "js" fn ConstrainBooleanOrDOMStringParameters::to_js_ffi(
self : ConstrainBooleanOrDOMStringParameters,
) -> JsValue =
#| (self) => ({
#| exact: ((() => { const v = self.exact; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| ideal: ((() => { const v = self.ideal; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn ConstrainBooleanOrDOMStringParameters::to_js(
self : ConstrainBooleanOrDOMStringParameters,
) -> JsValue {
ConstrainBooleanOrDOMStringParameters::to_js_ffi(self)
}
///|
extern "js" fn ConstrainBooleanOrDOMStringParameters::from_js_ffi(
value : JsValue,
) -> ConstrainBooleanOrDOMStringParameters =
#| (v) => ({
#| exact: (v.exact === undefined ? { $tag: 0 } : { $tag: 1, _0: v.exact }),
#| ideal: (v.ideal === undefined ? { $tag: 0 } : { $tag: 1, _0: v.ideal })
#| })
///|
/// Convert from JsValue
pub fn ConstrainBooleanOrDOMStringParameters::from_js(
value : JsValue,
) -> ConstrainBooleanOrDOMStringParameters {
ConstrainBooleanOrDOMStringParameters::from_js_ffi(value)
}
///|
/// CameraDevicePermissionDescriptor dictionary
pub(all) struct CameraDevicePermissionDescriptor {
panTiltZoom : Bool?
}
///|
/// Create a new CameraDevicePermissionDescriptor with default values
pub fn CameraDevicePermissionDescriptor::default() -> CameraDevicePermissionDescriptor {
CameraDevicePermissionDescriptor::{ panTiltZoom: None }
}
///|
extern "js" fn CameraDevicePermissionDescriptor::to_js_ffi(
self : CameraDevicePermissionDescriptor,
) -> JsValue =
#| (self) => ({
#| panTiltZoom: (self.panTiltZoom === -1 ? undefined : self.panTiltZoom)
#| })
///|
/// Convert to JsValue
pub fn CameraDevicePermissionDescriptor::to_js(
self : CameraDevicePermissionDescriptor,
) -> JsValue {
CameraDevicePermissionDescriptor::to_js_ffi(self)
}
///|
extern "js" fn CameraDevicePermissionDescriptor::from_js_ffi(
value : JsValue,
) -> CameraDevicePermissionDescriptor =
#| (v) => ({
#| panTiltZoom: (v.panTiltZoom === undefined ? -1 : v.panTiltZoom)
#| })
///|
/// Convert from JsValue
pub fn CameraDevicePermissionDescriptor::from_js(
value : JsValue,
) -> CameraDevicePermissionDescriptor {
CameraDevicePermissionDescriptor::from_js_ffi(value)
}
///|
/// MediaStream interface
pub type MediaStream
///|
pub extern "js" fn MediaStream::to_js_value(self : MediaStream) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaStream (unchecked)
pub extern "js" fn MediaStream::from_js_value(v : JsValue) -> MediaStream =
#| (v) => v
///|
/// Safely cast JsValue to MediaStream (checked with instanceof)
pub extern "js" fn MediaStream::from_js_value_opt(v : JsValue) -> MediaStream? =
#| (v) => (v instanceof MediaStream) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaStream (checked with instanceof)
pub extern "js" fn JsValue::as_media_stream(self : JsValue) -> MediaStream? =
#| (self) => (self instanceof MediaStream) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaStream (unchecked)
pub extern "js" fn JsValue::to_media_stream(self : JsValue) -> MediaStream =
#| (self) => self
///|
pub extern "js" fn MediaStream::to_event_target(
self : MediaStream,
) -> EventTarget =
#| (self) => self
///|
pub extern "js" fn MediaStream::new() -> MediaStream =
#| () => new MediaStream()
///|
pub extern "js" fn MediaStream::new_with_media_stream(
stream : MediaStream,
) -> MediaStream =
#| (stream) => new MediaStream(stream)
///|
pub extern "js" fn MediaStream::new_with_array(
tracks : Array[MediaStreamTrack],
) -> MediaStream =
#| (tracks) => new MediaStream(tracks)
///|
pub extern "js" fn MediaStream::get_id(self : MediaStream) -> String =
#| (self) => self.id
///|
pub extern "js" fn MediaStream::get_audio_tracks(
self : MediaStream,
) -> Array[MediaStreamTrack] =
#| (self) => self.getAudioTracks()
///|
pub extern "js" fn MediaStream::get_video_tracks(
self : MediaStream,
) -> Array[MediaStreamTrack] =
#| (self) => self.getVideoTracks()
///|
pub extern "js" fn MediaStream::get_tracks(
self : MediaStream,
) -> Array[MediaStreamTrack] =
#| (self) => self.getTracks()
///|
pub extern "js" fn MediaStream::get_track_by_id(
self : MediaStream,
track_id : String,
) -> MediaStreamTrack? =
#| (self, track_id) => (() => { const v = self.getTrackById(track_id); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
pub extern "js" fn MediaStream::add_track(
self : MediaStream,
track : MediaStreamTrack,
) -> Unit =
#| (self, track) => self.addTrack(track)
///|
pub extern "js" fn MediaStream::remove_track(
self : MediaStream,
track : MediaStreamTrack,
) -> Unit =
#| (self, track) => self.removeTrack(track)
///|
pub extern "js" fn MediaStream::clone(self : MediaStream) -> MediaStream =
#| (self) => self.clone()
///|
pub extern "js" fn MediaStream::get_active(self : MediaStream) -> Bool =
#| (self) => self.active
///|
pub extern "js" fn MediaStream::set_onaddtrack(
self : MediaStream,
handler : (MediaStreamTrackEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onaddtrack = (e) => handler(e) }
///|
pub extern "js" fn MediaStream::clear_onaddtrack(self : MediaStream) -> Unit =
#| (self) => { self.onaddtrack = null }
///|
pub extern "js" fn MediaStream::set_onremovetrack(
self : MediaStream,
handler : (MediaStreamTrackEvent) -> Unit,
) -> Unit =
#| (self, handler) => { self.onremovetrack = (e) => handler(e) }
///|
pub extern "js" fn MediaStream::clear_onremovetrack(self : MediaStream) -> Unit =
#| (self) => { self.onremovetrack = null }
///|
/// MediaStreamTrack interface
pub type MediaStreamTrack
///|
pub extern "js" fn MediaStreamTrack::to_js_value(
self : MediaStreamTrack,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaStreamTrack (unchecked)
pub extern "js" fn MediaStreamTrack::from_js_value(
v : JsValue,
) -> MediaStreamTrack =
#| (v) => v
///|
/// Safely cast JsValue to MediaStreamTrack (checked with instanceof)
pub extern "js" fn MediaStreamTrack::from_js_value_opt(
v : JsValue,
) -> MediaStreamTrack? =
#| (v) => (v instanceof MediaStreamTrack) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaStreamTrack (checked with instanceof)
pub extern "js" fn JsValue::as_media_stream_track(
self : JsValue,
) -> MediaStreamTrack? =
#| (self) => (self instanceof MediaStreamTrack) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaStreamTrack (unchecked)
pub extern "js" fn JsValue::to_media_stream_track(
self : JsValue,
) -> MediaStreamTrack =
#| (self) => self
///|
pub extern "js" fn MediaStreamTrack::to_event_target(
self : MediaStreamTrack,
) -> EventTarget =
#| (self) => self
///|
pub extern "js" fn MediaStreamTrack::as_canvas_capture_media_stream_track(
self : MediaStreamTrack,
) -> CanvasCaptureMediaStreamTrack? =
#| (self) => (self instanceof CanvasCaptureMediaStreamTrack) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
pub extern "js" fn MediaStreamTrack::as_browser_capture_media_stream_track(
self : MediaStreamTrack,
) -> BrowserCaptureMediaStreamTrack? =
#| (self) => (self instanceof BrowserCaptureMediaStreamTrack) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
pub extern "js" fn MediaStreamTrack::get_kind(
self : MediaStreamTrack,
) -> String =
#| (self) => self.kind
///|
pub extern "js" fn MediaStreamTrack::get_id(self : MediaStreamTrack) -> String =
#| (self) => self.id
///|
pub extern "js" fn MediaStreamTrack::get_label(
self : MediaStreamTrack,
) -> String =
#| (self) => self.label
///|
pub extern "js" fn MediaStreamTrack::get_enabled(
self : MediaStreamTrack,
) -> Bool =
#| (self) => self.enabled
///|
pub extern "js" fn MediaStreamTrack::set_enabled(
self : MediaStreamTrack,
value : Bool,
) -> Unit =
#| (self, value) => { self.enabled = value }
///|
pub extern "js" fn MediaStreamTrack::get_muted(self : MediaStreamTrack) -> Bool =
#| (self) => self.muted
///|
pub extern "js" fn MediaStreamTrack::set_onmute(
self : MediaStreamTrack,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.onmute = (e) => handler(e) }
///|
pub extern "js" fn MediaStreamTrack::clear_onmute(
self : MediaStreamTrack,
) -> Unit =
#| (self) => { self.onmute = null }
///|
pub extern "js" fn MediaStreamTrack::set_onunmute(
self : MediaStreamTrack,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.onunmute = (e) => handler(e) }
///|
pub extern "js" fn MediaStreamTrack::clear_onunmute(
self : MediaStreamTrack,
) -> Unit =
#| (self) => { self.onunmute = null }
///|
pub extern "js" fn MediaStreamTrack::get_ready_state(
self : MediaStreamTrack,
) -> MediaStreamTrackState =
#| (self) => ['live', 'ended'].indexOf(self.readyState)
///|
pub extern "js" fn MediaStreamTrack::set_onended(
self : MediaStreamTrack,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.onended = (e) => handler(e) }
///|
pub extern "js" fn MediaStreamTrack::clear_onended(
self : MediaStreamTrack,
) -> Unit =
#| (self) => { self.onended = null }
///|
pub extern "js" fn MediaStreamTrack::clone(
self : MediaStreamTrack,
) -> MediaStreamTrack =
#| (self) => self.clone()
///|
pub extern "js" fn MediaStreamTrack::stop(self : MediaStreamTrack) -> Unit =
#| (self) => self.stop()
///|
pub extern "js" fn MediaStreamTrack::get_capabilities(
self : MediaStreamTrack,
) -> MediaTrackCapabilities =
#| (self) => self.getCapabilities()
///|
pub extern "js" fn MediaStreamTrack::get_constraints(
self : MediaStreamTrack,
) -> MediaTrackConstraints =
#| (self) => self.getConstraints()
///|
pub extern "js" fn MediaStreamTrack::get_settings(
self : MediaStreamTrack,
) -> MediaTrackSettings =
#| (self) => self.getSettings()
///|
pub extern "js" fn MediaStreamTrack::apply_constraints(
self : MediaStreamTrack,
) -> Promise[Unit] =
#| (self) => self.applyConstraints()
///|
extern "js" fn MediaStreamTrack::apply_constraints_with_constraints_ffi(
self : MediaStreamTrack,
constraints : JsValue,
) -> Promise[Unit] =
#| (self, constraints) => self.applyConstraints(constraints)
///|
pub fn MediaStreamTrack::apply_constraints_with_constraints(
self : MediaStreamTrack,
constraints : MediaTrackConstraints,
) -> Promise[Unit] {
MediaStreamTrack::apply_constraints_with_constraints_ffi(
self,
constraints.to_js(),
)
}
///|
pub extern "js" fn MediaStreamTrack::get_capture_handle(
self : MediaStreamTrack,
) -> CaptureHandle? =
#| (self) => (() => { const v = self.getCaptureHandle(); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })()
///|
pub extern "js" fn MediaStreamTrack::set_oncapturehandlechange(
self : MediaStreamTrack,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.oncapturehandlechange = (e) => handler(e) }
///|
pub extern "js" fn MediaStreamTrack::clear_oncapturehandlechange(
self : MediaStreamTrack,
) -> Unit =
#| (self) => { self.oncapturehandlechange = null }
///|
pub extern "js" fn MediaStreamTrack::get_supported_capture_actions(
self : MediaStreamTrack,
) -> Array[String] =
#| (self) => self.getSupportedCaptureActions()
///|
pub extern "js" fn MediaStreamTrack::send_capture_action(
self : MediaStreamTrack,
action : CaptureAction,
) -> Promise[Unit] =
#| (self, action) => self.sendCaptureAction(['next', 'previous', 'first', 'last'][action])
///|
pub extern "js" fn MediaStreamTrack::get_content_hint(
self : MediaStreamTrack,
) -> String =
#| (self) => self.contentHint
///|
pub extern "js" fn MediaStreamTrack::set_content_hint(
self : MediaStreamTrack,
value : String,
) -> Unit =
#| (self, value) => { self.contentHint = value }
///|
pub extern "js" fn MediaStreamTrack::get_isolated(
self : MediaStreamTrack,
) -> Bool =
#| (self) => self.isolated
///|
pub extern "js" fn MediaStreamTrack::set_onisolationchange(
self : MediaStreamTrack,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.onisolationchange = (e) => handler(e) }
///|
pub extern "js" fn MediaStreamTrack::clear_onisolationchange(
self : MediaStreamTrack,
) -> Unit =
#| (self) => { self.onisolationchange = null }
///|
/// MediaStreamTrackEvent interface
pub type MediaStreamTrackEvent
///|
pub extern "js" fn MediaStreamTrackEvent::to_js_value(
self : MediaStreamTrackEvent,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaStreamTrackEvent (unchecked)
pub extern "js" fn MediaStreamTrackEvent::from_js_value(
v : JsValue,
) -> MediaStreamTrackEvent =
#| (v) => v
///|
/// Safely cast JsValue to MediaStreamTrackEvent (checked with instanceof)
pub extern "js" fn MediaStreamTrackEvent::from_js_value_opt(
v : JsValue,
) -> MediaStreamTrackEvent? =
#| (v) => (v instanceof MediaStreamTrackEvent) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaStreamTrackEvent (checked with instanceof)
pub extern "js" fn JsValue::as_media_stream_track_event(
self : JsValue,
) -> MediaStreamTrackEvent? =
#| (self) => (self instanceof MediaStreamTrackEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaStreamTrackEvent (unchecked)
pub extern "js" fn JsValue::to_media_stream_track_event(
self : JsValue,
) -> MediaStreamTrackEvent =
#| (self) => self
///|
pub extern "js" fn MediaStreamTrackEvent::to_event(
self : MediaStreamTrackEvent,
) -> Event =
#| (self) => self
///|
extern "js" fn MediaStreamTrackEvent::new_ffi(
type_ : String,
event_init_dict : JsValue,
) -> MediaStreamTrackEvent =
#| (type_, event_init_dict) => new MediaStreamTrackEvent(type_, event_init_dict)
///|
pub fn MediaStreamTrackEvent::new(
type_ : String,
event_init_dict : MediaStreamTrackEventInit,
) -> MediaStreamTrackEvent {
MediaStreamTrackEvent::new_ffi(type_, event_init_dict.to_js())
}
///|
pub extern "js" fn MediaStreamTrackEvent::get_track(
self : MediaStreamTrackEvent,
) -> MediaStreamTrack =
#| (self) => self.track
///|
/// OverconstrainedError interface
pub type OverconstrainedError
///|
pub extern "js" fn OverconstrainedError::to_js_value(
self : OverconstrainedError,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to OverconstrainedError (unchecked)
pub extern "js" fn OverconstrainedError::from_js_value(
v : JsValue,
) -> OverconstrainedError =
#| (v) => v
///|
/// Safely cast JsValue to OverconstrainedError (checked with instanceof)
pub extern "js" fn OverconstrainedError::from_js_value_opt(
v : JsValue,
) -> OverconstrainedError? =
#| (v) => (v instanceof OverconstrainedError) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to OverconstrainedError (checked with instanceof)
pub extern "js" fn JsValue::as_overconstrained_error(
self : JsValue,
) -> OverconstrainedError? =
#| (self) => (self instanceof OverconstrainedError) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to OverconstrainedError (unchecked)
pub extern "js" fn JsValue::to_overconstrained_error(
self : JsValue,
) -> OverconstrainedError =
#| (self) => self
///|
pub extern "js" fn OverconstrainedError::to_dom_exception(
self : OverconstrainedError,
) -> DOMException =
#| (self) => self
///|
pub extern "js" fn OverconstrainedError::new(
constraint : String,
) -> OverconstrainedError =
#| (constraint) => new OverconstrainedError(constraint)
///|
pub extern "js" fn OverconstrainedError::new_with_message(
constraint : String,
message : String,
) -> OverconstrainedError =
#| (constraint, message) => new OverconstrainedError(constraint, message)
///|
pub extern "js" fn OverconstrainedError::get_constraint(
self : OverconstrainedError,
) -> String =
#| (self) => self.constraint
///|
/// MediaDevices interface
pub type MediaDevices
///|
pub extern "js" fn MediaDevices::to_js_value(self : MediaDevices) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaDevices (unchecked)
pub extern "js" fn MediaDevices::from_js_value(v : JsValue) -> MediaDevices =
#| (v) => v
///|
/// Safely cast JsValue to MediaDevices (checked with instanceof)
pub extern "js" fn MediaDevices::from_js_value_opt(
v : JsValue,
) -> MediaDevices? =
#| (v) => (v instanceof MediaDevices) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaDevices (checked with instanceof)
pub extern "js" fn JsValue::as_media_devices(self : JsValue) -> MediaDevices? =
#| (self) => (self instanceof MediaDevices) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaDevices (unchecked)
pub extern "js" fn JsValue::to_media_devices(self : JsValue) -> MediaDevices =
#| (self) => self
///|
pub extern "js" fn MediaDevices::to_event_target(
self : MediaDevices,
) -> EventTarget =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum MediaDevicesSelectAudioOutputError {
NotFoundError(JsError)
NotAllowedError(JsError)
InvalidStateError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum MediaDevicesGetUserMediaError {
TypeError(JsError)
AbortError(JsError)
NotFoundError(JsError)
SecurityError(JsError)
NotAllowedError(JsError)
NotReadableError(JsError)
InvalidStateError(JsError)
OverconstrainedError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum MediaDevicesGetDisplayMediaError {
TypeError(JsError)
AbortError(JsError)
NotFoundError(JsError)
NotAllowedError(JsError)
NotReadableError(JsError)
InvalidStateError(JsError)
OverconstrainedError(JsError)
OtherError(JsError)
} derive(Show)
///|
pub extern "js" fn MediaDevices::set_ondevicechange(
self : MediaDevices,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.ondevicechange = (e) => handler(e) }
///|
pub extern "js" fn MediaDevices::clear_ondevicechange(
self : MediaDevices,
) -> Unit =
#| (self) => { self.ondevicechange = null }
///|
pub extern "js" fn MediaDevices::enumerate_devices(
self : MediaDevices,
) -> Promise[Array[MediaDeviceInfo]] =
#| (self) => self.enumerateDevices()
///|
pub extern "js" fn MediaDevices::select_audio_output(
self : MediaDevices,
) -> Promise[Result[MediaDeviceInfo, MediaDevicesSelectAudioOutputError]] =
#| (self) => self.selectAudioOutput().then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'NotFoundError') return { $tag: 0, _0: e }; if (n === 'NotAllowedError') return { $tag: 1, _0: e }; if (n === 'InvalidStateError') return { $tag: 2, _0: e }; return { $tag: 3, _0: e }; })() }))
///|
extern "js" fn MediaDevices::select_audio_output_with_options_ffi(
self : MediaDevices,
options : JsValue,
) -> Promise[Result[MediaDeviceInfo, MediaDevicesSelectAudioOutputError]] =
#| (self, options) => self.selectAudioOutput(options).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'NotFoundError') return { $tag: 0, _0: e }; if (n === 'NotAllowedError') return { $tag: 1, _0: e }; if (n === 'InvalidStateError') return { $tag: 2, _0: e }; return { $tag: 3, _0: e }; })() }))
///|
pub fn MediaDevices::select_audio_output_with_options(
self : MediaDevices,
options : AudioOutputOptions,
) -> Promise[Result[MediaDeviceInfo, MediaDevicesSelectAudioOutputError]] {
MediaDevices::select_audio_output_with_options_ffi(self, options.to_js())
}
///|
pub extern "js" fn MediaDevices::set_capture_handle_config(
self : MediaDevices,
) -> Unit =
#| (self) => self.setCaptureHandleConfig()
///|
extern "js" fn MediaDevices::set_capture_handle_config_with_config_ffi(
self : MediaDevices,
config : JsValue,
) -> Unit =
#| (self, config) => self.setCaptureHandleConfig(config)
///|
pub fn MediaDevices::set_capture_handle_config_with_config(
self : MediaDevices,
config : CaptureHandleConfig,
) -> Unit {
MediaDevices::set_capture_handle_config_with_config_ffi(self, config.to_js())
}
///|
pub extern "js" fn MediaDevices::set_supported_capture_actions(
self : MediaDevices,
actions : Array[String],
) -> Unit =
#| (self, actions) => self.setSupportedCaptureActions(actions)
///|
pub extern "js" fn MediaDevices::set_oncaptureaction(
self : MediaDevices,
handler : (Event) -> Unit,
) -> Unit =
#| (self, handler) => { self.oncaptureaction = (e) => handler(e) }
///|
pub extern "js" fn MediaDevices::clear_oncaptureaction(
self : MediaDevices,
) -> Unit =
#| (self) => { self.oncaptureaction = null }
///|
pub extern "js" fn MediaDevices::get_supported_constraints(
self : MediaDevices,
) -> MediaTrackSupportedConstraints =
#| (self) => self.getSupportedConstraints()
///|
pub extern "js" fn MediaDevices::get_user_media(
self : MediaDevices,
) -> Promise[Result[MediaStream, MediaDevicesGetUserMediaError]] =
#| (self) => self.getUserMedia().then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; if (n === 'AbortError') return { $tag: 1, _0: e }; if (n === 'NotFoundError') return { $tag: 2, _0: e }; if (n === 'SecurityError') return { $tag: 3, _0: e }; if (n === 'NotAllowedError') return { $tag: 4, _0: e }; if (n === 'NotReadableError') return { $tag: 5, _0: e }; if (n === 'InvalidStateError') return { $tag: 6, _0: e }; if (n === 'OverconstrainedError') return { $tag: 7, _0: e }; return { $tag: 8, _0: e }; })() }))
///|
extern "js" fn MediaDevices::get_user_media_with_constraints_ffi(
self : MediaDevices,
constraints : JsValue,
) -> Promise[Result[MediaStream, MediaDevicesGetUserMediaError]] =
#| (self, constraints) => self.getUserMedia(constraints).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; if (n === 'AbortError') return { $tag: 1, _0: e }; if (n === 'NotFoundError') return { $tag: 2, _0: e }; if (n === 'SecurityError') return { $tag: 3, _0: e }; if (n === 'NotAllowedError') return { $tag: 4, _0: e }; if (n === 'NotReadableError') return { $tag: 5, _0: e }; if (n === 'InvalidStateError') return { $tag: 6, _0: e }; if (n === 'OverconstrainedError') return { $tag: 7, _0: e }; return { $tag: 8, _0: e }; })() }))
///|
pub fn MediaDevices::get_user_media_with_constraints(
self : MediaDevices,
constraints : MediaStreamConstraints,
) -> Promise[Result[MediaStream, MediaDevicesGetUserMediaError]] {
MediaDevices::get_user_media_with_constraints_ffi(self, constraints.to_js())
}
///|
pub extern "js" fn MediaDevices::get_viewport_media(
self : MediaDevices,
) -> Promise[MediaStream] =
#| (self) => self.getViewportMedia()
///|
extern "js" fn MediaDevices::get_viewport_media_with_options_ffi(
self : MediaDevices,
options : JsValue,
) -> Promise[MediaStream] =
#| (self, options) => self.getViewportMedia(options)
///|
pub fn MediaDevices::get_viewport_media_with_options(
self : MediaDevices,
options : DisplayMediaStreamOptions,
) -> Promise[MediaStream] {
MediaDevices::get_viewport_media_with_options_ffi(self, options.to_js())
}
///|
pub extern "js" fn MediaDevices::get_display_media(
self : MediaDevices,
) -> Promise[Result[MediaStream, MediaDevicesGetDisplayMediaError]] =
#| (self) => self.getDisplayMedia().then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; if (n === 'AbortError') return { $tag: 1, _0: e }; if (n === 'NotFoundError') return { $tag: 2, _0: e }; if (n === 'NotAllowedError') return { $tag: 3, _0: e }; if (n === 'NotReadableError') return { $tag: 4, _0: e }; if (n === 'InvalidStateError') return { $tag: 5, _0: e }; if (n === 'OverconstrainedError') return { $tag: 6, _0: e }; return { $tag: 7, _0: e }; })() }))
///|
extern "js" fn MediaDevices::get_display_media_with_options_ffi(
self : MediaDevices,
options : JsValue,
) -> Promise[Result[MediaStream, MediaDevicesGetDisplayMediaError]] =
#| (self, options) => self.getDisplayMedia(options).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; if (n === 'AbortError') return { $tag: 1, _0: e }; if (n === 'NotFoundError') return { $tag: 2, _0: e }; if (n === 'NotAllowedError') return { $tag: 3, _0: e }; if (n === 'NotReadableError') return { $tag: 4, _0: e }; if (n === 'InvalidStateError') return { $tag: 5, _0: e }; if (n === 'OverconstrainedError') return { $tag: 6, _0: e }; return { $tag: 7, _0: e }; })() }))
///|
pub fn MediaDevices::get_display_media_with_options(
self : MediaDevices,
options : DisplayMediaStreamOptions,
) -> Promise[Result[MediaStream, MediaDevicesGetDisplayMediaError]] {
MediaDevices::get_display_media_with_options_ffi(self, options.to_js())
}
///|
/// MediaDeviceInfo interface
pub type MediaDeviceInfo
///|
pub extern "js" fn MediaDeviceInfo::to_js_value(
self : MediaDeviceInfo,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaDeviceInfo (unchecked)
pub extern "js" fn MediaDeviceInfo::from_js_value(
v : JsValue,
) -> MediaDeviceInfo =
#| (v) => v
///|
/// Safely cast JsValue to MediaDeviceInfo (checked with instanceof)
pub extern "js" fn MediaDeviceInfo::from_js_value_opt(
v : JsValue,
) -> MediaDeviceInfo? =
#| (v) => (v instanceof MediaDeviceInfo) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaDeviceInfo (checked with instanceof)
pub extern "js" fn JsValue::as_media_device_info(
self : JsValue,
) -> MediaDeviceInfo? =
#| (self) => (self instanceof MediaDeviceInfo) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaDeviceInfo (unchecked)
pub extern "js" fn JsValue::to_media_device_info(
self : JsValue,
) -> MediaDeviceInfo =
#| (self) => self
///|
pub extern "js" fn MediaDeviceInfo::as_input_device_info(
self : MediaDeviceInfo,
) -> InputDeviceInfo? =
#| (self) => (self instanceof InputDeviceInfo) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
pub extern "js" fn MediaDeviceInfo::get_device_id(
self : MediaDeviceInfo,
) -> String =
#| (self) => self.deviceId
///|
pub extern "js" fn MediaDeviceInfo::get_kind(
self : MediaDeviceInfo,
) -> MediaDeviceKind =
#| (self) => ['audioinput', 'audiooutput', 'videoinput'].indexOf(self.kind)
///|
pub extern "js" fn MediaDeviceInfo::get_label(self : MediaDeviceInfo) -> String =
#| (self) => self.label
///|
pub extern "js" fn MediaDeviceInfo::get_group_id(
self : MediaDeviceInfo,
) -> String =
#| (self) => self.groupId
///|
pub extern "js" fn MediaDeviceInfo::to_json(self : MediaDeviceInfo) -> JsValue =
#| (self) => self.toJSON()
///|
/// InputDeviceInfo interface
pub type InputDeviceInfo
///|
pub extern "js" fn InputDeviceInfo::to_js_value(
self : InputDeviceInfo,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to InputDeviceInfo (unchecked)
pub extern "js" fn InputDeviceInfo::from_js_value(
v : JsValue,
) -> InputDeviceInfo =
#| (v) => v
///|
/// Safely cast JsValue to InputDeviceInfo (checked with instanceof)
pub extern "js" fn InputDeviceInfo::from_js_value_opt(
v : JsValue,
) -> InputDeviceInfo? =
#| (v) => (v instanceof InputDeviceInfo) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to InputDeviceInfo (checked with instanceof)
pub extern "js" fn JsValue::as_input_device_info(
self : JsValue,
) -> InputDeviceInfo? =
#| (self) => (self instanceof InputDeviceInfo) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to InputDeviceInfo (unchecked)
pub extern "js" fn JsValue::to_input_device_info(
self : JsValue,
) -> InputDeviceInfo =
#| (self) => self
///|
pub extern "js" fn InputDeviceInfo::to_media_device_info(
self : InputDeviceInfo,
) -> MediaDeviceInfo =
#| (self) => self
///|
pub extern "js" fn InputDeviceInfo::get_capabilities(
self : InputDeviceInfo,
) -> MediaTrackCapabilities =
#| (self) => self.getCapabilities()
///|
/// DeviceChangeEvent interface
pub type DeviceChangeEvent
///|
pub extern "js" fn DeviceChangeEvent::to_js_value(
self : DeviceChangeEvent,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to DeviceChangeEvent (unchecked)
pub extern "js" fn DeviceChangeEvent::from_js_value(
v : JsValue,
) -> DeviceChangeEvent =
#| (v) => v
///|
/// Safely cast JsValue to DeviceChangeEvent (checked with instanceof)
pub extern "js" fn DeviceChangeEvent::from_js_value_opt(
v : JsValue,
) -> DeviceChangeEvent? =
#| (v) => (v instanceof DeviceChangeEvent) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to DeviceChangeEvent (checked with instanceof)
pub extern "js" fn JsValue::as_device_change_event(
self : JsValue,
) -> DeviceChangeEvent? =
#| (self) => (self instanceof DeviceChangeEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to DeviceChangeEvent (unchecked)
pub extern "js" fn JsValue::to_device_change_event(
self : JsValue,
) -> DeviceChangeEvent =
#| (self) => self
///|
pub extern "js" fn DeviceChangeEvent::to_event(
self : DeviceChangeEvent,
) -> Event =
#| (self) => self
///|
pub extern "js" fn DeviceChangeEvent::new(type_ : String) -> DeviceChangeEvent =
#| (type_) => new DeviceChangeEvent(type_)
///|
extern "js" fn DeviceChangeEvent::new_with_event_init_dict_ffi(
type_ : String,
event_init_dict : JsValue,
) -> DeviceChangeEvent =
#| (type_, event_init_dict) => new DeviceChangeEvent(type_, event_init_dict)
///|
pub fn DeviceChangeEvent::new_with_event_init_dict(
type_ : String,
event_init_dict : DeviceChangeEventInit,
) -> DeviceChangeEvent {
DeviceChangeEvent::new_with_event_init_dict_ffi(
type_,
event_init_dict.to_js(),
)
}
///|
pub extern "js" fn DeviceChangeEvent::get_devices(
self : DeviceChangeEvent,
) -> Array[MediaDeviceInfo] =
#| (self) => self.devices
///|
pub extern "js" fn DeviceChangeEvent::get_user_inserted_devices(
self : DeviceChangeEvent,
) -> Array[MediaDeviceInfo] =
#| (self) => self.userInsertedDevices