@rescript/webapi 0.1.0-experimental-29b94b3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +14 -0
- package/package.json +38 -0
- package/rescript.json +19 -0
- package/src/CSSFontLoadingAPI/FontFace.res +34 -0
- package/src/CSSFontLoadingAPI/FontFaceSet.res +112 -0
- package/src/CSSFontLoadingAPI.res +101 -0
- package/src/CanvasAPI/ImageBitmap.res +8 -0
- package/src/CanvasAPI/OffscreenCanvas.res +123 -0
- package/src/CanvasAPI.res +55 -0
- package/src/ChannelMessagingAPI/MessagePort.res +120 -0
- package/src/ChannelMessagingAPI.res +13 -0
- package/src/ClipboardAPI/Clipboard.res +106 -0
- package/src/ClipboardAPI/ClipboardItem.res +21 -0
- package/src/ClipboardAPI.res +31 -0
- package/src/CredentialManagementAPI/CredentialsContainer.res +31 -0
- package/src/CredentialManagementAPI.res +140 -0
- package/src/DOMAPI/Animation.res +137 -0
- package/src/DOMAPI/AnimationEffect.res +19 -0
- package/src/DOMAPI/CSSRuleList.res +7 -0
- package/src/DOMAPI/CSSStyleDeclaration.res +36 -0
- package/src/DOMAPI/CSSStyleSheet.res +32 -0
- package/src/DOMAPI/CSSStyleValue.res +13 -0
- package/src/DOMAPI/CaretPosition.res +4 -0
- package/src/DOMAPI/CharacterData.res +272 -0
- package/src/DOMAPI/Comment.res +278 -0
- package/src/DOMAPI/CustomElementRegistry.res +31 -0
- package/src/DOMAPI/DOMImplementation.res +30 -0
- package/src/DOMAPI/DOMMatrix.res +169 -0
- package/src/DOMAPI/DOMMatrixReadOnly.res +103 -0
- package/src/DOMAPI/DOMPoint.res +29 -0
- package/src/DOMAPI/DOMPointReadOnly.res +24 -0
- package/src/DOMAPI/DOMRect.res +23 -0
- package/src/DOMAPI/DOMRectList.res +4 -0
- package/src/DOMAPI/DOMRectReadOnly.res +17 -0
- package/src/DOMAPI/DOMTokenList.res +72 -0
- package/src/DOMAPI/Document.res +634 -0
- package/src/DOMAPI/DocumentFragment.res +261 -0
- package/src/DOMAPI/DocumentTimeline.res +9 -0
- package/src/DOMAPI/Element.res +634 -0
- package/src/DOMAPI/ElementInternals.res +39 -0
- package/src/DOMAPI/FileList.res +8 -0
- package/src/DOMAPI/HTMLAnchorElement.res +693 -0
- package/src/DOMAPI/HTMLAreaElement.res +687 -0
- package/src/DOMAPI/HTMLAudioElement.res +750 -0
- package/src/DOMAPI/HTMLBRElement.res +686 -0
- package/src/DOMAPI/HTMLBaseElement.res +687 -0
- package/src/DOMAPI/HTMLBodyElement.res +687 -0
- package/src/DOMAPI/HTMLButtonElement.res +714 -0
- package/src/DOMAPI/HTMLCanvasElement.res +741 -0
- package/src/DOMAPI/HTMLCollection.res +15 -0
- package/src/DOMAPI/HTMLCollectionOf.res +16 -0
- package/src/DOMAPI/HTMLDListElement.res +690 -0
- package/src/DOMAPI/HTMLDataElement.res +687 -0
- package/src/DOMAPI/HTMLDataListElement.res +697 -0
- package/src/DOMAPI/HTMLDialogElement.res +715 -0
- package/src/DOMAPI/HTMLDivElement.res +686 -0
- package/src/DOMAPI/HTMLElement.res +685 -0
- package/src/DOMAPI/HTMLEmbedElement.res +693 -0
- package/src/DOMAPI/HTMLFieldSetElement.res +718 -0
- package/src/DOMAPI/HTMLFormControlsCollection.res +16 -0
- package/src/DOMAPI/HTMLFormElement.res +720 -0
- package/src/DOMAPI/HTMLFrameSetElement.res +697 -0
- package/src/DOMAPI/HTMLHRElement.res +686 -0
- package/src/DOMAPI/HTMLHeadElement.res +687 -0
- package/src/DOMAPI/HTMLHeadingElement.res +693 -0
- package/src/DOMAPI/HTMLHtmlElement.res +687 -0
- package/src/DOMAPI/HTMLIFrameElement.res +696 -0
- package/src/DOMAPI/HTMLImageElement.res +696 -0
- package/src/DOMAPI/HTMLInputElement.res +773 -0
- package/src/DOMAPI/HTMLLIElement.res +686 -0
- package/src/DOMAPI/HTMLLabelElement.res +690 -0
- package/src/DOMAPI/HTMLLegendElement.res +693 -0
- package/src/DOMAPI/HTMLLinkElement.res +687 -0
- package/src/DOMAPI/HTMLMapElement.res +686 -0
- package/src/DOMAPI/HTMLMediaElement.res +749 -0
- package/src/DOMAPI/HTMLMenuElement.res +687 -0
- package/src/DOMAPI/HTMLMetaElement.res +687 -0
- package/src/DOMAPI/HTMLMeterElement.res +690 -0
- package/src/DOMAPI/HTMLModElement.res +686 -0
- package/src/DOMAPI/HTMLOListElement.res +690 -0
- package/src/DOMAPI/HTMLObjectElement.res +717 -0
- package/src/DOMAPI/HTMLOptGroupElement.res +697 -0
- package/src/DOMAPI/HTMLOptionElement.res +693 -0
- package/src/DOMAPI/HTMLOptionsCollection.res +21 -0
- package/src/DOMAPI/HTMLOutputElement.res +711 -0
- package/src/DOMAPI/HTMLParagraphElement.res +701 -0
- package/src/DOMAPI/HTMLPictureElement.res +693 -0
- package/src/DOMAPI/HTMLPreElement.res +686 -0
- package/src/DOMAPI/HTMLProgressElement.res +697 -0
- package/src/DOMAPI/HTMLQuoteElement.res +690 -0
- package/src/DOMAPI/HTMLScriptElement.res +699 -0
- package/src/DOMAPI/HTMLSelectElement.res +762 -0
- package/src/DOMAPI/HTMLSlotElement.res +713 -0
- package/src/DOMAPI/HTMLSourceElement.res +693 -0
- package/src/DOMAPI/HTMLSpanElement.res +687 -0
- package/src/DOMAPI/HTMLStyleElement.res +690 -0
- package/src/DOMAPI/HTMLTableCaptionElement.res +714 -0
- package/src/DOMAPI/HTMLTableCellElement.res +701 -0
- package/src/DOMAPI/HTMLTableElement.res +755 -0
- package/src/DOMAPI/HTMLTableRowElement.res +713 -0
- package/src/DOMAPI/HTMLTableSectionElement.res +730 -0
- package/src/DOMAPI/HTMLTemplateElement.res +697 -0
- package/src/DOMAPI/HTMLTextAreaElement.res +758 -0
- package/src/DOMAPI/HTMLTimeElement.res +687 -0
- package/src/DOMAPI/HTMLTitleElement.res +690 -0
- package/src/DOMAPI/HTMLTrackElement.res +690 -0
- package/src/DOMAPI/HTMLUListElement.res +690 -0
- package/src/DOMAPI/HTMLVideoElement.res +778 -0
- package/src/DOMAPI/IdleDeadline.res +7 -0
- package/src/DOMAPI/ImageData.res +18 -0
- package/src/DOMAPI/Location.res +22 -0
- package/src/DOMAPI/MediaList.res +19 -0
- package/src/DOMAPI/MediaQueryList.res +82 -0
- package/src/DOMAPI/NamedNodeMap.res +45 -0
- package/src/DOMAPI/Navigator.res +114 -0
- package/src/DOMAPI/Node.res +179 -0
- package/src/DOMAPI/NodeFilter.res +4 -0
- package/src/DOMAPI/NodeIterator.res +13 -0
- package/src/DOMAPI/NodeList.res +8 -0
- package/src/DOMAPI/NodeListOf.res +9 -0
- package/src/DOMAPI/Range.res +149 -0
- package/src/DOMAPI/SVGGraphicsElement.res +675 -0
- package/src/DOMAPI/SVGLength.res +11 -0
- package/src/DOMAPI/ScreenOrientation.res +88 -0
- package/src/DOMAPI/Selection.res +103 -0
- package/src/DOMAPI/ShadowRoot.res +274 -0
- package/src/DOMAPI/StylePropertyMap.res +50 -0
- package/src/DOMAPI/StylePropertyMapReadOnly.res +13 -0
- package/src/DOMAPI/StyleSheetList.res +7 -0
- package/src/DOMAPI/Text.res +285 -0
- package/src/DOMAPI/TextTrackList.res +89 -0
- package/src/DOMAPI/TimeRanges.res +19 -0
- package/src/DOMAPI/TreeWalker.res +43 -0
- package/src/DOMAPI/VideoColorSpace.res +13 -0
- package/src/DOMAPI/VideoFrame.res +111 -0
- package/src/DOMAPI/Window.res +582 -0
- package/src/DOMAPI/XPathExpression.res +12 -0
- package/src/DOMAPI/XPathResult.res +13 -0
- package/src/DOMAPI.res +9668 -0
- package/src/EncryptedMediaExtensionsAPI/MediaKeySession.res +132 -0
- package/src/EncryptedMediaExtensionsAPI/MediaKeyStatusMap.res +13 -0
- package/src/EncryptedMediaExtensionsAPI/MediaKeySystemAccess.res +13 -0
- package/src/EncryptedMediaExtensionsAPI/MediaKeys.res +28 -0
- package/src/EncryptedMediaExtensionsAPI.res +100 -0
- package/src/EventAPI/AbortController.res +15 -0
- package/src/EventAPI/AbortSignal.res +106 -0
- package/src/EventAPI/Event.res +35 -0
- package/src/EventAPI/EventTarget.res +86 -0
- package/src/EventAPI.res +215 -0
- package/src/FetchAPI/FormData.res +58 -0
- package/src/FetchAPI/Headers.res +50 -0
- package/src/FetchAPI/Request.res +57 -0
- package/src/FetchAPI/Response.res +105 -0
- package/src/FetchAPI/URLSearchParams.res +68 -0
- package/src/FetchAPI.res +287 -0
- package/src/FileAPI/Blob.res +37 -0
- package/src/FileAPI/File.res +42 -0
- package/src/FileAPI/FileSystemDirectoryHandle.res +46 -0
- package/src/FileAPI/FileSystemFileHandle.res +23 -0
- package/src/FileAPI/FileSystemHandle.res +7 -0
- package/src/FileAPI/FileSystemWritableFileStream.res +63 -0
- package/src/FileAPI/ReadableStream.res +61 -0
- package/src/FileAPI/WritableStream.res +29 -0
- package/src/FileAPI/WritableStreamDefaultController.res +8 -0
- package/src/FileAPI.res +218 -0
- package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res +42 -0
- package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryReader.res +12 -0
- package/src/FileAndDirectoryEntriesAPI/FileSystemEntry.res +11 -0
- package/src/FileAndDirectoryEntriesAPI.res +87 -0
- package/src/GamepadAPI/GamepadHapticActuator.res +17 -0
- package/src/GamepadAPI.res +85 -0
- package/src/GeolocationAPI/Geolocation.res +29 -0
- package/src/GeolocationAPI/GeolocationCoordinates.res +7 -0
- package/src/GeolocationAPI/GeolocationPosition.res +7 -0
- package/src/GeolocationAPI.res +78 -0
- package/src/Global.res +302 -0
- package/src/HistoryAPI/History.res +33 -0
- package/src/HistoryAPI.res +26 -0
- package/src/IndexedDBAPI/IDBDatabase.res +135 -0
- package/src/IndexedDBAPI/IDBFactory.res +31 -0
- package/src/IndexedDBAPI/IDBIndex.res +74 -0
- package/src/IndexedDBAPI/IDBObjectStore.res +167 -0
- package/src/IndexedDBAPI/IDBTransaction.res +102 -0
- package/src/IndexedDBAPI.res +205 -0
- package/src/MediaCapabilitiesAPI/MediaCapabilities.res +19 -0
- package/src/MediaCapabilitiesAPI.res +81 -0
- package/src/MediaCaptureAndStreamsAPI/MediaDeviceInfo.res +7 -0
- package/src/MediaCaptureAndStreamsAPI/MediaDevices.res +113 -0
- package/src/MediaCaptureAndStreamsAPI/MediaStream.res +142 -0
- package/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res +122 -0
- package/src/MediaCaptureAndStreamsAPI.res +194 -0
- package/src/MediaSessionAPI/MediaMetadata.res +7 -0
- package/src/MediaSessionAPI/MediaSession.res +17 -0
- package/src/MediaSessionAPI.res +83 -0
- package/src/NotificationAPI/Notification.res +102 -0
- package/src/NotificationAPI.res +82 -0
- package/src/PerformanceAPI/Performance.res +169 -0
- package/src/PerformanceAPI/PerformanceEntry.res +7 -0
- package/src/PerformanceAPI/PerformanceMark.res +15 -0
- package/src/PerformanceAPI.res +86 -0
- package/src/PermissionsAPI/Permissions.res +7 -0
- package/src/PermissionsAPI.res +39 -0
- package/src/PictureInPicture.res +18 -0
- package/src/PictureInPictureAPI.res +18 -0
- package/src/Prelude/DOMException.res +7 -0
- package/src/Prelude/DOMStringList.res +15 -0
- package/src/Prelude.res +39 -0
- package/src/PushManagerAPI/PushManager.res +25 -0
- package/src/PushManagerAPI/PushSubscription.res +19 -0
- package/src/PushManagerAPI.res +67 -0
- package/src/RemotePlaybackAPI/RemotePlayback.res +102 -0
- package/src/RemotePlaybackAPI.res +21 -0
- package/src/ResizeObserverAPI/ResizeObserver.res +27 -0
- package/src/ResizeObserverAPI.res +58 -0
- package/src/ScreenWakeLockAPI/WakeLock.res +7 -0
- package/src/ScreenWakeLockAPI/WakeLockSentinel.res +88 -0
- package/src/ScreenWakeLockAPI.res +26 -0
- package/src/ServiceWorkerAPI/Cache.res +100 -0
- package/src/ServiceWorkerAPI/CacheStorage.res +46 -0
- package/src/ServiceWorkerAPI/NavigationPreloadManager.res +25 -0
- package/src/ServiceWorkerAPI/ServiceWorker.res +101 -0
- package/src/ServiceWorkerAPI/ServiceWorkerContainer.res +114 -0
- package/src/ServiceWorkerAPI/ServiceWorkerRegistration.res +114 -0
- package/src/ServiceWorkerAPI.res +134 -0
- package/src/StorageAPI/StorageManager.res +26 -0
- package/src/StorageAPI.res +10 -0
- package/src/ViewTransitionsAPI/ViewTransition.res +7 -0
- package/src/ViewTransitionsAPI.res +23 -0
- package/src/VisualViewportAPI.res +38 -0
- package/src/WebAudioAPI/AnalyserNode.res +180 -0
- package/src/WebAudioAPI/AudioBuffer.res +35 -0
- package/src/WebAudioAPI/AudioBufferSourceNode.res +183 -0
- package/src/WebAudioAPI/AudioContext.res +266 -0
- package/src/WebAudioAPI/AudioListener.res +1 -0
- package/src/WebAudioAPI/AudioNode.res +143 -0
- package/src/WebAudioAPI/AudioParam.res +56 -0
- package/src/WebAudioAPI/AudioProcessingEvent.res +38 -0
- package/src/WebAudioAPI/AudioScheduledSourceNode.res +171 -0
- package/src/WebAudioAPI/AudioWorkletNode.res +160 -0
- package/src/WebAudioAPI/BaseAudioContext.res +212 -0
- package/src/WebAudioAPI/BiquadFilterNode.res +168 -0
- package/src/WebAudioAPI/ChannelMergerNode.res +157 -0
- package/src/WebAudioAPI/ChannelSplitterNode.res +159 -0
- package/src/WebAudioAPI/ConstantSourceNode.res +172 -0
- package/src/WebAudioAPI/ConvolverNode.res +157 -0
- package/src/WebAudioAPI/DelayNode.res +150 -0
- package/src/WebAudioAPI/DynamicsCompressorNode.res +162 -0
- package/src/WebAudioAPI/GainNode.res +149 -0
- package/src/WebAudioAPI/IIRFilterNode.res +168 -0
- package/src/WebAudioAPI/MediaElementAudioSourceNode.res +168 -0
- package/src/WebAudioAPI/MediaStreamAudioDestinationNode.res +168 -0
- package/src/WebAudioAPI/MediaStreamAudioSourceNode.res +168 -0
- package/src/WebAudioAPI/OfflineAudioCompletionEvent.res +40 -0
- package/src/WebAudioAPI/OfflineAudioContext.res +246 -0
- package/src/WebAudioAPI/OscillatorNode.res +176 -0
- package/src/WebAudioAPI/PannerNode.res +150 -0
- package/src/WebAudioAPI/PeriodicWave.res +8 -0
- package/src/WebAudioAPI/StereoPannerNode.res +157 -0
- package/src/WebAudioAPI/WaveShaperNode.res +157 -0
- package/src/WebAudioAPI/Worklet.res +13 -0
- package/src/WebAudioAPI.res +1271 -0
- package/src/WebCryptoAPI/Crypto.res +13 -0
- package/src/WebCryptoAPI/SubtleCrypto.res +173 -0
- package/src/WebCryptoAPI.res +71 -0
- package/src/WebLocksAPI/LockManager.res +29 -0
- package/src/WebLocksAPI.res +47 -0
- package/src/WebMIDIAPI.res +37 -0
- package/src/WebSocketsAPI/CloseEvent.res +37 -0
- package/src/WebSocketsAPI/MessageEvent.res +38 -0
- package/src/WebSocketsAPI/WebSocket.res +130 -0
- package/src/WebSocketsAPI.res +125 -0
- package/src/WebSpeechAPI/SpeechSynthesis.res +112 -0
- package/src/WebSpeechAPI/SpeechSynthesisUtterance.res +88 -0
- package/src/WebSpeechAPI.res +82 -0
- package/src/WebStorageAPI/Storage.res +44 -0
- package/src/WebStorageAPI/StorageEvent.res +37 -0
- package/src/WebStorageAPI.res +57 -0
- package/src/WebVTTAPI/TextTrack.res +96 -0
- package/src/WebVTTAPI/TextTrackCueList.res +10 -0
- package/src/WebVTTAPI.res +122 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
open EventAPI
|
|
2
|
+
open MediaCaptureAndStreamsAPI
|
|
3
|
+
|
|
4
|
+
external asEventTarget: mediaDevices => eventTarget = "%identity"
|
|
5
|
+
/**
|
|
6
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
7
|
+
|
|
8
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
9
|
+
|
|
10
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
11
|
+
|
|
12
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
13
|
+
|
|
14
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
15
|
+
|
|
16
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
17
|
+
|
|
18
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
19
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
20
|
+
*/
|
|
21
|
+
@send
|
|
22
|
+
external addEventListener: (
|
|
23
|
+
mediaDevices,
|
|
24
|
+
~type_: eventType,
|
|
25
|
+
~callback: eventListener<'event>,
|
|
26
|
+
~options: addEventListenerOptions=?,
|
|
27
|
+
) => unit = "addEventListener"
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
31
|
+
|
|
32
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
33
|
+
|
|
34
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
35
|
+
|
|
36
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
37
|
+
|
|
38
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
39
|
+
|
|
40
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
41
|
+
|
|
42
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
43
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
44
|
+
*/
|
|
45
|
+
@send
|
|
46
|
+
external addEventListener2: (
|
|
47
|
+
mediaDevices,
|
|
48
|
+
~type_: eventType,
|
|
49
|
+
~callback: eventListener<'event>,
|
|
50
|
+
~options: bool=?,
|
|
51
|
+
) => unit = "addEventListener"
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
55
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
56
|
+
*/
|
|
57
|
+
@send
|
|
58
|
+
external removeEventListener: (
|
|
59
|
+
mediaDevices,
|
|
60
|
+
~type_: eventType,
|
|
61
|
+
~callback: eventListener<'event>,
|
|
62
|
+
~options: eventListenerOptions=?,
|
|
63
|
+
) => unit = "removeEventListener"
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
67
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
68
|
+
*/
|
|
69
|
+
@send
|
|
70
|
+
external removeEventListener2: (
|
|
71
|
+
mediaDevices,
|
|
72
|
+
~type_: eventType,
|
|
73
|
+
~callback: eventListener<'event>,
|
|
74
|
+
~options: bool=?,
|
|
75
|
+
) => unit = "removeEventListener"
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
|
|
79
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
|
|
80
|
+
*/
|
|
81
|
+
@send
|
|
82
|
+
external dispatchEvent: (mediaDevices, event) => bool = "dispatchEvent"
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices)
|
|
86
|
+
*/
|
|
87
|
+
@send
|
|
88
|
+
external enumerateDevices: mediaDevices => Promise.t<array<mediaDeviceInfo>> = "enumerateDevices"
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints)
|
|
92
|
+
*/
|
|
93
|
+
@send
|
|
94
|
+
external getSupportedConstraints: mediaDevices => mediaTrackSupportedConstraints =
|
|
95
|
+
"getSupportedConstraints"
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia)
|
|
99
|
+
*/
|
|
100
|
+
@send
|
|
101
|
+
external getUserMedia: (
|
|
102
|
+
mediaDevices,
|
|
103
|
+
~constraints: mediaStreamConstraints=?,
|
|
104
|
+
) => Promise.t<mediaStream> = "getUserMedia"
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia)
|
|
108
|
+
*/
|
|
109
|
+
@send
|
|
110
|
+
external getDisplayMedia: (
|
|
111
|
+
mediaDevices,
|
|
112
|
+
~options: displayMediaStreamOptions=?,
|
|
113
|
+
) => Promise.t<mediaStream> = "getDisplayMedia"
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
open EventAPI
|
|
2
|
+
open MediaCaptureAndStreamsAPI
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
|
|
6
|
+
*/
|
|
7
|
+
@new
|
|
8
|
+
external make: unit => mediaStream = "MediaStream"
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
|
|
12
|
+
*/
|
|
13
|
+
@new
|
|
14
|
+
external make2: mediaStream => mediaStream = "MediaStream"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
|
|
18
|
+
*/
|
|
19
|
+
@new
|
|
20
|
+
external make3: array<mediaStreamTrack> => mediaStream = "MediaStream"
|
|
21
|
+
|
|
22
|
+
external asEventTarget: mediaStream => eventTarget = "%identity"
|
|
23
|
+
/**
|
|
24
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
25
|
+
|
|
26
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
27
|
+
|
|
28
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
29
|
+
|
|
30
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
31
|
+
|
|
32
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
33
|
+
|
|
34
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
35
|
+
|
|
36
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
37
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
38
|
+
*/
|
|
39
|
+
@send
|
|
40
|
+
external addEventListener: (
|
|
41
|
+
mediaStream,
|
|
42
|
+
~type_: eventType,
|
|
43
|
+
~callback: eventListener<'event>,
|
|
44
|
+
~options: addEventListenerOptions=?,
|
|
45
|
+
) => unit = "addEventListener"
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
49
|
+
|
|
50
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
51
|
+
|
|
52
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
53
|
+
|
|
54
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
55
|
+
|
|
56
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
57
|
+
|
|
58
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
59
|
+
|
|
60
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
61
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
62
|
+
*/
|
|
63
|
+
@send
|
|
64
|
+
external addEventListener2: (
|
|
65
|
+
mediaStream,
|
|
66
|
+
~type_: eventType,
|
|
67
|
+
~callback: eventListener<'event>,
|
|
68
|
+
~options: bool=?,
|
|
69
|
+
) => unit = "addEventListener"
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
73
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
74
|
+
*/
|
|
75
|
+
@send
|
|
76
|
+
external removeEventListener: (
|
|
77
|
+
mediaStream,
|
|
78
|
+
~type_: eventType,
|
|
79
|
+
~callback: eventListener<'event>,
|
|
80
|
+
~options: eventListenerOptions=?,
|
|
81
|
+
) => unit = "removeEventListener"
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
85
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
86
|
+
*/
|
|
87
|
+
@send
|
|
88
|
+
external removeEventListener2: (
|
|
89
|
+
mediaStream,
|
|
90
|
+
~type_: eventType,
|
|
91
|
+
~callback: eventListener<'event>,
|
|
92
|
+
~options: bool=?,
|
|
93
|
+
) => unit = "removeEventListener"
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
|
|
97
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
|
|
98
|
+
*/
|
|
99
|
+
@send
|
|
100
|
+
external dispatchEvent: (mediaStream, event) => bool = "dispatchEvent"
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getAudioTracks)
|
|
104
|
+
*/
|
|
105
|
+
@send
|
|
106
|
+
external getAudioTracks: mediaStream => array<mediaStreamTrack> = "getAudioTracks"
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getVideoTracks)
|
|
110
|
+
*/
|
|
111
|
+
@send
|
|
112
|
+
external getVideoTracks: mediaStream => array<mediaStreamTrack> = "getVideoTracks"
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getTracks)
|
|
116
|
+
*/
|
|
117
|
+
@send
|
|
118
|
+
external getTracks: mediaStream => array<mediaStreamTrack> = "getTracks"
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getTrackById)
|
|
122
|
+
*/
|
|
123
|
+
@send
|
|
124
|
+
external getTrackById: (mediaStream, string) => mediaStreamTrack = "getTrackById"
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/addTrack)
|
|
128
|
+
*/
|
|
129
|
+
@send
|
|
130
|
+
external addTrack: (mediaStream, mediaStreamTrack) => unit = "addTrack"
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/removeTrack)
|
|
134
|
+
*/
|
|
135
|
+
@send
|
|
136
|
+
external removeTrack: (mediaStream, mediaStreamTrack) => unit = "removeTrack"
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/clone)
|
|
140
|
+
*/
|
|
141
|
+
@send
|
|
142
|
+
external clone: mediaStream => mediaStream = "clone"
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
open EventAPI
|
|
2
|
+
open MediaCaptureAndStreamsAPI
|
|
3
|
+
open WebAudioAPI
|
|
4
|
+
|
|
5
|
+
external asEventTarget: mediaStreamTrack => eventTarget = "%identity"
|
|
6
|
+
/**
|
|
7
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
8
|
+
|
|
9
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
10
|
+
|
|
11
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
12
|
+
|
|
13
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
14
|
+
|
|
15
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
16
|
+
|
|
17
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
18
|
+
|
|
19
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
20
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
21
|
+
*/
|
|
22
|
+
@send
|
|
23
|
+
external addEventListener: (
|
|
24
|
+
mediaStreamTrack,
|
|
25
|
+
~type_: eventType,
|
|
26
|
+
~callback: eventListener<'event>,
|
|
27
|
+
~options: addEventListenerOptions=?,
|
|
28
|
+
) => unit = "addEventListener"
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
|
|
32
|
+
|
|
33
|
+
The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
|
|
34
|
+
|
|
35
|
+
When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
|
|
36
|
+
|
|
37
|
+
When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
|
|
38
|
+
|
|
39
|
+
When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
|
|
40
|
+
|
|
41
|
+
If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
|
|
42
|
+
|
|
43
|
+
The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
|
|
44
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
|
|
45
|
+
*/
|
|
46
|
+
@send
|
|
47
|
+
external addEventListener2: (
|
|
48
|
+
mediaStreamTrack,
|
|
49
|
+
~type_: eventType,
|
|
50
|
+
~callback: eventListener<'event>,
|
|
51
|
+
~options: bool=?,
|
|
52
|
+
) => unit = "addEventListener"
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
56
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
57
|
+
*/
|
|
58
|
+
@send
|
|
59
|
+
external removeEventListener: (
|
|
60
|
+
mediaStreamTrack,
|
|
61
|
+
~type_: eventType,
|
|
62
|
+
~callback: eventListener<'event>,
|
|
63
|
+
~options: eventListenerOptions=?,
|
|
64
|
+
) => unit = "removeEventListener"
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
Removes the event listener in target's event listener list with the same type, callback, and options.
|
|
68
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
|
|
69
|
+
*/
|
|
70
|
+
@send
|
|
71
|
+
external removeEventListener2: (
|
|
72
|
+
mediaStreamTrack,
|
|
73
|
+
~type_: eventType,
|
|
74
|
+
~callback: eventListener<'event>,
|
|
75
|
+
~options: bool=?,
|
|
76
|
+
) => unit = "removeEventListener"
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
|
|
80
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
|
|
81
|
+
*/
|
|
82
|
+
@send
|
|
83
|
+
external dispatchEvent: (mediaStreamTrack, event) => bool = "dispatchEvent"
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/clone)
|
|
87
|
+
*/
|
|
88
|
+
@send
|
|
89
|
+
external clone: mediaStreamTrack => mediaStreamTrack = "clone"
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/stop)
|
|
93
|
+
*/
|
|
94
|
+
@send
|
|
95
|
+
external stop: mediaStreamTrack => unit = "stop"
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getCapabilities)
|
|
99
|
+
*/
|
|
100
|
+
@send
|
|
101
|
+
external getCapabilities: mediaStreamTrack => mediaTrackCapabilities = "getCapabilities"
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getConstraints)
|
|
105
|
+
*/
|
|
106
|
+
@send
|
|
107
|
+
external getConstraints: mediaStreamTrack => mediaTrackConstraints = "getConstraints"
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getSettings)
|
|
111
|
+
*/
|
|
112
|
+
@send
|
|
113
|
+
external getSettings: mediaStreamTrack => mediaTrackSettings = "getSettings"
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/applyConstraints)
|
|
117
|
+
*/
|
|
118
|
+
@send
|
|
119
|
+
external applyConstraints: (
|
|
120
|
+
mediaStreamTrack,
|
|
121
|
+
~constraints: mediaTrackConstraints=?,
|
|
122
|
+
) => Promise.t<unit> = "applyConstraints"
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
@@warning("-30")
|
|
2
|
+
|
|
3
|
+
open EventAPI
|
|
4
|
+
|
|
5
|
+
type mediaDeviceKind =
|
|
6
|
+
| @as("audioinput") Audioinput
|
|
7
|
+
| @as("audiooutput") Audiooutput
|
|
8
|
+
| @as("videoinput") Videoinput
|
|
9
|
+
|
|
10
|
+
type mediaStreamTrackState =
|
|
11
|
+
| @as("ended") Ended
|
|
12
|
+
| @as("live") Live
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data.
|
|
16
|
+
[See MediaDevices on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices)
|
|
17
|
+
*/
|
|
18
|
+
type mediaDevices = {
|
|
19
|
+
...eventTarget,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
The MediaDevicesInfo interface contains information that describes a single media input or output device.
|
|
24
|
+
[See MediaDeviceInfo on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo)
|
|
25
|
+
*/
|
|
26
|
+
type mediaDeviceInfo = {
|
|
27
|
+
/**
|
|
28
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/deviceId)
|
|
29
|
+
*/
|
|
30
|
+
deviceId: string,
|
|
31
|
+
/**
|
|
32
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/kind)
|
|
33
|
+
*/
|
|
34
|
+
kind: mediaDeviceKind,
|
|
35
|
+
/**
|
|
36
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/label)
|
|
37
|
+
*/
|
|
38
|
+
label: string,
|
|
39
|
+
/**
|
|
40
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/groupId)
|
|
41
|
+
*/
|
|
42
|
+
groupId: string,
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack.
|
|
47
|
+
[See MediaStream on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
|
|
48
|
+
*/
|
|
49
|
+
type mediaStream = {
|
|
50
|
+
...eventTarget,
|
|
51
|
+
/**
|
|
52
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/id)
|
|
53
|
+
*/
|
|
54
|
+
id: string,
|
|
55
|
+
/**
|
|
56
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/active)
|
|
57
|
+
*/
|
|
58
|
+
active: bool,
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.
|
|
63
|
+
[See MediaStreamTrack on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack)
|
|
64
|
+
*/
|
|
65
|
+
type mediaStreamTrack = {
|
|
66
|
+
...eventTarget,
|
|
67
|
+
/**
|
|
68
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/kind)
|
|
69
|
+
*/
|
|
70
|
+
kind: string,
|
|
71
|
+
/**
|
|
72
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/id)
|
|
73
|
+
*/
|
|
74
|
+
id: string,
|
|
75
|
+
/**
|
|
76
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/label)
|
|
77
|
+
*/
|
|
78
|
+
label: string,
|
|
79
|
+
/**
|
|
80
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/enabled)
|
|
81
|
+
*/
|
|
82
|
+
mutable enabled: bool,
|
|
83
|
+
/**
|
|
84
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/muted)
|
|
85
|
+
*/
|
|
86
|
+
muted: bool,
|
|
87
|
+
/**
|
|
88
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/readyState)
|
|
89
|
+
*/
|
|
90
|
+
readyState: mediaStreamTrackState,
|
|
91
|
+
/**
|
|
92
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/contentHint)
|
|
93
|
+
*/
|
|
94
|
+
mutable contentHint: string,
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
type mediaTrackSupportedConstraints = {
|
|
98
|
+
mutable width?: bool,
|
|
99
|
+
mutable height?: bool,
|
|
100
|
+
mutable aspectRatio?: bool,
|
|
101
|
+
mutable frameRate?: bool,
|
|
102
|
+
mutable facingMode?: bool,
|
|
103
|
+
mutable sampleRate?: bool,
|
|
104
|
+
mutable sampleSize?: bool,
|
|
105
|
+
mutable echoCancellation?: bool,
|
|
106
|
+
mutable autoGainControl?: bool,
|
|
107
|
+
mutable noiseSuppression?: bool,
|
|
108
|
+
mutable channelCount?: bool,
|
|
109
|
+
mutable deviceId?: bool,
|
|
110
|
+
mutable groupId?: bool,
|
|
111
|
+
mutable backgroundBlur?: bool,
|
|
112
|
+
mutable displaySurface?: bool,
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
type mediaStreamConstraints = {
|
|
116
|
+
mutable video?: unknown,
|
|
117
|
+
mutable audio?: unknown,
|
|
118
|
+
mutable preferCurrentTab?: bool,
|
|
119
|
+
mutable peerIdentity?: string,
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
type displayMediaStreamOptions = {
|
|
123
|
+
mutable video?: unknown,
|
|
124
|
+
mutable audio?: unknown,
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
type uLongRange = {
|
|
128
|
+
mutable max?: int,
|
|
129
|
+
mutable min?: int,
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
type doubleRange = {
|
|
133
|
+
mutable max?: float,
|
|
134
|
+
mutable min?: float,
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
type mediaTrackCapabilities = {
|
|
138
|
+
mutable width?: uLongRange,
|
|
139
|
+
mutable height?: uLongRange,
|
|
140
|
+
mutable aspectRatio?: doubleRange,
|
|
141
|
+
mutable frameRate?: doubleRange,
|
|
142
|
+
mutable facingMode?: array<string>,
|
|
143
|
+
mutable sampleRate?: uLongRange,
|
|
144
|
+
mutable sampleSize?: uLongRange,
|
|
145
|
+
mutable echoCancellation?: array<bool>,
|
|
146
|
+
mutable autoGainControl?: array<bool>,
|
|
147
|
+
mutable noiseSuppression?: array<bool>,
|
|
148
|
+
mutable channelCount?: uLongRange,
|
|
149
|
+
mutable deviceId?: string,
|
|
150
|
+
mutable groupId?: string,
|
|
151
|
+
mutable backgroundBlur?: array<bool>,
|
|
152
|
+
mutable displaySurface?: string,
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
type mediaTrackConstraintSet = {
|
|
156
|
+
mutable width?: int,
|
|
157
|
+
mutable height?: int,
|
|
158
|
+
mutable aspectRatio?: float,
|
|
159
|
+
mutable frameRate?: float,
|
|
160
|
+
mutable facingMode?: string,
|
|
161
|
+
mutable sampleRate?: int,
|
|
162
|
+
mutable sampleSize?: int,
|
|
163
|
+
mutable echoCancellation?: bool,
|
|
164
|
+
mutable autoGainControl?: bool,
|
|
165
|
+
mutable noiseSuppression?: bool,
|
|
166
|
+
mutable channelCount?: int,
|
|
167
|
+
mutable deviceId?: string,
|
|
168
|
+
mutable groupId?: string,
|
|
169
|
+
mutable backgroundBlur?: bool,
|
|
170
|
+
mutable displaySurface?: string,
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
type mediaTrackConstraints = {
|
|
174
|
+
...mediaTrackConstraintSet,
|
|
175
|
+
mutable advanced?: array<mediaTrackConstraintSet>,
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
type mediaTrackSettings = {
|
|
179
|
+
mutable width?: int,
|
|
180
|
+
mutable height?: int,
|
|
181
|
+
mutable aspectRatio?: float,
|
|
182
|
+
mutable frameRate?: float,
|
|
183
|
+
mutable facingMode?: string,
|
|
184
|
+
mutable sampleRate?: int,
|
|
185
|
+
mutable sampleSize?: int,
|
|
186
|
+
mutable echoCancellation?: bool,
|
|
187
|
+
mutable autoGainControl?: bool,
|
|
188
|
+
mutable noiseSuppression?: bool,
|
|
189
|
+
mutable channelCount?: int,
|
|
190
|
+
mutable deviceId?: string,
|
|
191
|
+
mutable groupId?: string,
|
|
192
|
+
mutable backgroundBlur?: bool,
|
|
193
|
+
mutable displaySurface?: string,
|
|
194
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
open MediaSessionAPI
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/setActionHandler)
|
|
5
|
+
*/
|
|
6
|
+
@send
|
|
7
|
+
external setActionHandler: (
|
|
8
|
+
mediaSession,
|
|
9
|
+
~action: mediaSessionAction,
|
|
10
|
+
~handler: mediaSessionActionHandler,
|
|
11
|
+
) => unit = "setActionHandler"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/setPositionState)
|
|
15
|
+
*/
|
|
16
|
+
@send
|
|
17
|
+
external setPositionState: (mediaSession, ~state: mediaPositionState=?) => unit = "setPositionState"
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
@@warning("-30")
|
|
2
|
+
|
|
3
|
+
open Prelude
|
|
4
|
+
|
|
5
|
+
type mediaSessionPlaybackState =
|
|
6
|
+
| @as("none") None
|
|
7
|
+
| @as("paused") Paused
|
|
8
|
+
| @as("playing") Playing
|
|
9
|
+
|
|
10
|
+
type mediaSessionAction =
|
|
11
|
+
| @as("nexttrack") Nexttrack
|
|
12
|
+
| @as("pause") Pause
|
|
13
|
+
| @as("play") Play
|
|
14
|
+
| @as("previoustrack") Previoustrack
|
|
15
|
+
| @as("seekbackward") Seekbackward
|
|
16
|
+
| @as("seekforward") Seekforward
|
|
17
|
+
| @as("seekto") Seekto
|
|
18
|
+
| @as("skipad") Skipad
|
|
19
|
+
| @as("stop") Stop
|
|
20
|
+
|
|
21
|
+
type mediaImage = {
|
|
22
|
+
mutable src: string,
|
|
23
|
+
mutable sizes?: string,
|
|
24
|
+
@as("type") mutable type_?: string,
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
[See MediaMetadata on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata)
|
|
29
|
+
*/
|
|
30
|
+
type mediaMetadata = {
|
|
31
|
+
/**
|
|
32
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title)
|
|
33
|
+
*/
|
|
34
|
+
mutable title: string,
|
|
35
|
+
/**
|
|
36
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist)
|
|
37
|
+
*/
|
|
38
|
+
mutable artist: string,
|
|
39
|
+
/**
|
|
40
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album)
|
|
41
|
+
*/
|
|
42
|
+
mutable album: string,
|
|
43
|
+
/**
|
|
44
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork)
|
|
45
|
+
*/
|
|
46
|
+
mutable artwork: array<mediaImage>,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
[See MediaSession on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession)
|
|
51
|
+
*/
|
|
52
|
+
type mediaSession = {
|
|
53
|
+
/**
|
|
54
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata)
|
|
55
|
+
*/
|
|
56
|
+
mutable metadata: Null.t<mediaMetadata>,
|
|
57
|
+
/**
|
|
58
|
+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState)
|
|
59
|
+
*/
|
|
60
|
+
mutable playbackState: mediaSessionPlaybackState,
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
type mediaMetadataInit = {
|
|
64
|
+
mutable title?: string,
|
|
65
|
+
mutable artist?: string,
|
|
66
|
+
mutable album?: string,
|
|
67
|
+
mutable artwork?: array<mediaImage>,
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
type mediaSessionActionDetails = {
|
|
71
|
+
mutable action: mediaSessionAction,
|
|
72
|
+
mutable seekOffset?: float,
|
|
73
|
+
mutable seekTime?: float,
|
|
74
|
+
mutable fastSeek?: bool,
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
type mediaPositionState = {
|
|
78
|
+
mutable duration?: float,
|
|
79
|
+
mutable playbackRate?: float,
|
|
80
|
+
mutable position?: float,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
type mediaSessionActionHandler = mediaSessionActionDetails => unit
|