Skip to content

Commit 3090815

Browse files
author
exoego
committed
Follow the standardized IDL type.
1 parent 59869db commit 3090815

File tree

3 files changed

+192
-2
lines changed

3 files changed

+192
-2
lines changed

src/main/scala/org/scalajs/dom/experimental/mediastream/MediaStream.scala

+176-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ package org.scalajs.dom.experimental.mediastream
66
import scala.scalajs.js
77
import scala.scalajs.js.|
88
import scala.scalajs.js.annotation._
9-
import org.scalajs.dom.raw.{DOMException, Event, EventInit, EventTarget}
9+
import org.scalajs.dom.raw.{Event, EventInit, EventTarget, TimeRanges}
1010

1111
/**
1212
* The MediaStream
@@ -626,3 +626,178 @@ trait MediaTrackSupportedConstraints extends js.Object {
626626
var deviceId: js.UndefOr[Boolean] = js.undefined
627627
var groupId: js.UndefOr[Boolean] = js.undefined
628628
}
629+
630+
/**
631+
* Represents a source of media data for an HTMLMediaElement object.
632+
*
633+
* A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.
634+
*/
635+
@js.native
636+
@JSGlobal
637+
class MediaSource extends EventTarget {
638+
def sourceBueffers: SourceBufferList = js.native
639+
def activeSourceBuffers: SourceBufferList = js.native
640+
def readyState: ReadyState = js.native
641+
642+
/**
643+
* Allows the web application to set the presentation duration.
644+
*
645+
* The duration is initially set to NaN when the MediaSource object is created.
646+
*/
647+
var duration: Double = js.native
648+
649+
var onsourceopen: js.Function1[Event, Any] = js.native
650+
var onsourceended: js.Function1[Event, Any] = js.native
651+
var onsourceclose: js.Function1[Event, Any] = js.native
652+
653+
def addSourceBuffer(bufferType: String): SourceBuffer = js.native
654+
def removeSourceBuffer(sourceBuffer: SourceBuffer): Unit = js.native
655+
def endOfStream(error: js.UndefOr[EndOfStreamError] = ???): Unit = js.native
656+
def setLiveSeekableRange(start: Double, end: Double): Unit = js.native
657+
def clearLiveSeekableRange(): Unit = js.native
658+
}
659+
660+
@js.native
661+
@JSGlobalScope
662+
object MediaSource extends js.Object {
663+
def isTypeSupported(mediaType: String): Boolean = js.native
664+
}
665+
666+
@js.native
667+
trait SourceBufferList extends EventTarget {
668+
def length: Double = js.native
669+
670+
@JSBracketAccess
671+
def apply(index: Double): SourceBuffer = js.native
672+
673+
var onaddsourcebuffer: js.Function1[Event, Any] = js.native
674+
var onremovesourcebuffer: js.Function1[Event, Any] = js.native
675+
}
676+
677+
@js.native
678+
trait SourceBuffer extends EventTarget {
679+
var mode: AppendMode = js.native
680+
var timestampOffset: Double = js.native
681+
682+
def updating: Boolean = js.native
683+
def buffered: TimeRanges = js.native
684+
685+
def audioTracks: AudioTrackList = js.native
686+
def videoTracks: VideoTrackList = js.native
687+
def textTracks: TextTrackList = js.native
688+
689+
var appendWindowStart: Double = js.native
690+
var appendWindowEnd: Double = js.native
691+
692+
var onupdatestart: js.Function1[Event, Any] = js.native
693+
var onupdate: js.Function1[Event, Any] = js.native
694+
var onupdateend: js.Function1[Event, Any] = js.native
695+
var onerror: js.Function1[Event, Any] = js.native
696+
var onabort: js.Function1[Event, Any] = js.native
697+
698+
def appendBuffer(data: BufferSource): Unit = js.native
699+
def abort(): Unit = js.native
700+
def remove(start: Double, end: Double): Unit = js.native
701+
}
702+
703+
@js.native
704+
trait AudioTrackList extends EventTarget {
705+
def length: Double = js.native
706+
707+
@JSBracketAccess
708+
def apply(index: Double): AudioTrack = js.native
709+
710+
def getTrackById(id: String): js.UndefOr[AudioTrack] = js.native
711+
712+
var onchange: js.Function1[Event, Any] = js.native
713+
var onaddtrack: js.Function1[Event, Any] = js.native
714+
var onremovetrack: js.Function1[Event, Any] = js.native
715+
}
716+
717+
@js.native
718+
trait AudioTrack extends js.Object {
719+
val id: String = js.native
720+
val kind: String = js.native
721+
val label: String = js.native
722+
val language: String = js.native
723+
var enabled: Boolean = js.native
724+
}
725+
726+
@js.native
727+
trait VideoTrackList extends EventTarget {
728+
def length: Double = js.native
729+
730+
@JSBracketAccess
731+
def apply(index: Double): VideoTrack = js.native
732+
733+
def getTrackById(id: String): js.UndefOr[VideoTrack] = js.native
734+
735+
def selectedIndex: Double = js.native
736+
737+
var onchange: js.Function1[Event, Any] = js.native
738+
var onaddtrack: js.Function1[Event, Any] = js.native
739+
var onremovetrack: js.Function1[Event, Any] = js.native
740+
}
741+
@js.native
742+
trait VideoTrack extends js.Object {
743+
val id: String = js.native
744+
val kind: String = js.native
745+
val label: String = js.native
746+
val language: String = js.native
747+
var selected: Boolean = js.native
748+
}
749+
@js.native
750+
trait TextTrackList extends EventTarget {
751+
752+
def length: Double = js.native
753+
754+
@JSBracketAccess
755+
def apply(index: Double): VideoTrack = js.native
756+
757+
def getTrackById(id: String): js.UndefOr[TextTrack] = js.native;
758+
759+
var onchange: js.Function1[Event, Any] = js.native
760+
var onaddtrack: js.Function1[Event, Any] = js.native
761+
var onremovetrack: js.Function1[Event, Any] = js.native
762+
}
763+
@js.native
764+
trait TextTrack extends EventTarget {
765+
val id: String = js.native
766+
val kind: String = js.native
767+
val label: String = js.native
768+
val language: String = js.native
769+
val inBandMetadataTrackDispatchType: String = js.native
770+
771+
var mode: TextTrackMode = js.native
772+
773+
def cues: js.UndefOr[TextTrackCueList] = js.native
774+
def activeCues: js.UndefOr[TextTrackCueList] = js.native
775+
776+
def addCue(cue: TextTrackCue): Unit = js.native
777+
def removeCue(cue: TextTrackCue): Unit = js.native
778+
779+
var oncuechange: js.Function1[Event, Any] = js.native
780+
}
781+
782+
@js.native
783+
trait TextTrackCueList extends js.Object {
784+
def length: Double = js.native
785+
786+
@JSBracketAccess
787+
def apply(index: Double): TextTrackCue = js.native
788+
789+
def getCueById(id: String): js.UndefOr[TextTrackCue] = js.native;
790+
}
791+
792+
@js.native
793+
trait TextTrackCue extends EventTarget {
794+
def track: js.UndefOr[TextTrack] = js.native
795+
796+
var id: String = js.native
797+
var startTime: Double = js.native
798+
var endTime: Double = js.native
799+
var pauseOnExit: Boolean = js.native
800+
801+
var onenter: js.Function1[Event, Any] = js.native
802+
var onexit: js.Function1[Event, Any] = js.native
803+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.scalajs.dom.experimental
2+
3+
import scala.scalajs.js
4+
import scala.scalajs.js.|
5+
6+
package object mediastream {
7+
type BufferSource = js.typedarray.ArrayBufferView | js.typedarray.ArrayBuffer
8+
type AppendMode = String
9+
type TextTrackMode = String
10+
type EndOfStreamError = String
11+
type ReadyState = String
12+
}

src/main/scala/org/scalajs/dom/raw/Html.scala

+4-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ package org.scalajs.dom.raw
1111

1212
import scala.scalajs.js
1313
import scala.scalajs.js.annotation._
14+
import scala.scalajs.js.|
15+
import org.scalajs.dom
1416

1517
@js.native
1618
@JSGlobal
@@ -3192,7 +3194,8 @@ abstract class HTMLMediaElement extends HTMLElement {
31923194
/**
31933195
* Sets or returns the object which serves as the source of the media associated with the HTMLMediaElement.
31943196
*/
3195-
var srcObject: org.scalajs.dom.experimental.mediastream.MediaStream
3197+
var srcObject: js.UndefOr[
3198+
dom.experimental.mediastream.MediaStream | dom.experimental.mediastream.MediaSource | Blob]
31963199
}
31973200

31983201
@js.native

0 commit comments

Comments
 (0)