Skip to content

Commit 385bdfc

Browse files
authored
Merge pull request #410 from RoelofRuis/imageCapture
Added ImageCapture
2 parents 30d0e6b + 92ca790 commit 385bdfc

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

Diff for: api-reports/2_12.txt

+4
Original file line numberDiff line numberDiff line change
@@ -13250,6 +13250,7 @@ IDBVersionChangeEventInit[JT] var composed: js.UndefOr[Boolean]
1325013250
IDBVersionChangeEventInit[JT] var newVersion: js.UndefOr[Integer]
1325113251
IDBVersionChangeEventInit[JT] var oldVersion: js.UndefOr[Int]
1325213252
IDBVersionChangeEventInit[JT] var scoped: js.UndefOr[Boolean]
13253+
ImageBitmap[JT] def close(): Unit
1325313254
ImageBitmap[JT] def height: Double
1325413255
ImageBitmap[JT] def width: Double
1325513256
ImageData[JC] def data: js.Array[Int]
@@ -23627,6 +23628,9 @@ experimental/mediastream/AudioTrackList[JT] var onchange: js.Function1[Event, An
2362723628
experimental/mediastream/AudioTrackList[JT] var onremovetrack: js.Function1[Event, Any]
2362823629
experimental/mediastream/AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
2362923630
experimental/mediastream/AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
23631+
experimental/mediastream/ImageCapture[JC] def grabFrame(): js.Promise[ImageBitmap]
23632+
experimental/mediastream/ImageCapture[JC] def takePhoto(): js.Promise[Blob]
23633+
experimental/mediastream/ImageCapture[JC] val track: MediaStreamTrack
2363023634
experimental/mediastream/MediaDeviceInfo[JT] val deviceId: String
2363123635
experimental/mediastream/MediaDeviceInfo[JT] val groupId: String
2363223636
experimental/mediastream/MediaDeviceInfo[JT] val kind: MediaDeviceKind

Diff for: api-reports/2_13.txt

+4
Original file line numberDiff line numberDiff line change
@@ -13250,6 +13250,7 @@ IDBVersionChangeEventInit[JT] var composed: js.UndefOr[Boolean]
1325013250
IDBVersionChangeEventInit[JT] var newVersion: js.UndefOr[Integer]
1325113251
IDBVersionChangeEventInit[JT] var oldVersion: js.UndefOr[Int]
1325213252
IDBVersionChangeEventInit[JT] var scoped: js.UndefOr[Boolean]
13253+
ImageBitmap[JT] def close(): Unit
1325313254
ImageBitmap[JT] def height: Double
1325413255
ImageBitmap[JT] def width: Double
1325513256
ImageData[JC] def data: js.Array[Int]
@@ -23627,6 +23628,9 @@ experimental/mediastream/AudioTrackList[JT] var onchange: js.Function1[Event, An
2362723628
experimental/mediastream/AudioTrackList[JT] var onremovetrack: js.Function1[Event, Any]
2362823629
experimental/mediastream/AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
2362923630
experimental/mediastream/AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
23631+
experimental/mediastream/ImageCapture[JC] def grabFrame(): js.Promise[ImageBitmap]
23632+
experimental/mediastream/ImageCapture[JC] def takePhoto(): js.Promise[Blob]
23633+
experimental/mediastream/ImageCapture[JC] val track: MediaStreamTrack
2363023634
experimental/mediastream/MediaDeviceInfo[JT] val deviceId: String
2363123635
experimental/mediastream/MediaDeviceInfo[JT] val groupId: String
2363223636
experimental/mediastream/MediaDeviceInfo[JT] val kind: MediaDeviceKind

Diff for: src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala

+6
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ trait ImageBitmap extends js.Object {
9696
/** An unsigned long representing the width, in CSS pixels, of the ImageData.
9797
*/
9898
def width: Double = js.native
99+
100+
/** Dispose of all graphical resources associated with an ImageBitmap.
101+
*
102+
* MDN
103+
*/
104+
def close(): Unit = js.native
99105
}
100106

101107
trait CreateImageBitmapOptions extends js.Object {

Diff for: src/main/scala/org/scalajs/dom/experimental/mediastream/MediaStream.scala

+32-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
*/
33
package org.scalajs.dom.experimental.mediastream
44

5-
import org.scalajs.dom.{Event, EventInit, EventTarget, TimeRanges}
5+
import org.scalajs.dom._
66
import scala.scalajs.js
77
import scala.scalajs.js.annotation._
88
import scala.scalajs.js.|
@@ -525,6 +525,37 @@ trait MediaTrackSupportedConstraints extends js.Object {
525525
var groupId: js.UndefOr[Boolean] = js.undefined
526526
}
527527

528+
/** The ImageCapture interface of the MediaStream Image Capture API provides methods to enable the capture of images or
529+
* photos from a camera or other photographic device referenced through a valid MediaStreamTrack.
530+
*
531+
* MDN
532+
*/
533+
@js.native
534+
@JSGlobal
535+
class ImageCapture(
536+
init: MediaStreamTrack
537+
) extends js.Object {
538+
539+
/** Returns a reference to the MediaStreamTrack passed to the constructor.
540+
*
541+
* MDN
542+
*/
543+
val track: MediaStreamTrack = js.native
544+
545+
/** Takes a single exposure using the video capture device sourcing a MediaStreamTrack and returns a Promise that
546+
* resolves with a Blob containing the data.
547+
*
548+
* MDN
549+
*/
550+
def takePhoto(): js.Promise[Blob] = js.native
551+
552+
/** Takes a snapshot of the live video in a MediaStreamTrack, returning an ImageBitmap, if successful.
553+
*
554+
* MDN
555+
*/
556+
def grabFrame(): js.Promise[ImageBitmap] = js.native
557+
}
558+
528559
/** Represents a source of media data for an HTMLMediaElement object.
529560
*
530561
* A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.

0 commit comments

Comments
 (0)