Skip to content

Commit b43af8d

Browse files
author
exoego
committed
Follow the standardized IDL type.
1 parent 8adbb82 commit b43af8d

File tree

3 files changed

+192
-3
lines changed

3 files changed

+192
-3
lines changed

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

+176-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +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-
10-
import org.scalajs.dom.raw.{DOMError, Event, EventTarget}
9+
import org.scalajs.dom.raw.{DOMError, Event, EventTarget, TimeRanges}
1110

1211
/**
1312
* The MediaStream
@@ -647,3 +646,178 @@ trait MediaTrackSupportedConstraints extends js.Object {
647646
var deviceId: js.UndefOr[Boolean] = js.undefined
648647
var groupId: js.UndefOr[Boolean] = js.undefined
649648
}
649+
650+
/**
651+
* Represents a source of media data for an HTMLMediaElement object.
652+
*
653+
* A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.
654+
*/
655+
@js.native
656+
@JSGlobal
657+
class MediaSource extends EventTarget {
658+
def sourceBueffers: SourceBufferList = js.native
659+
def activeSourceBuffers: SourceBufferList = js.native
660+
def readyState: ReadyState = js.native
661+
662+
/**
663+
* Allows the web application to set the presentation duration.
664+
*
665+
* The duration is initially set to NaN when the MediaSource object is created.
666+
*/
667+
var duration: Double = js.native
668+
669+
var onsourceopen: js.Function1[Event, Any] = js.native
670+
var onsourceended: js.Function1[Event, Any] = js.native
671+
var onsourceclose: js.Function1[Event, Any] = js.native
672+
673+
def addSourceBuffer(bufferType: String): SourceBuffer = js.native
674+
def removeSourceBuffer(sourceBuffer: SourceBuffer): Unit = js.native
675+
def endOfStream(error: js.UndefOr[EndOfStreamError] = ???): Unit = js.native
676+
def setLiveSeekableRange(start: Double, end: Double): Unit = js.native
677+
def clearLiveSeekableRange(): Unit = js.native
678+
}
679+
680+
@js.native
681+
@JSGlobalScope
682+
object MediaSource extends js.Object {
683+
def isTypeSupported(mediaType: String): Boolean = js.native
684+
}
685+
686+
@js.native
687+
trait SourceBufferList extends EventTarget {
688+
def length: Double = js.native
689+
690+
@JSBracketAccess
691+
def apply(index: Double): SourceBuffer = js.native
692+
693+
var onaddsourcebuffer: js.Function1[Event, Any] = js.native
694+
var onremovesourcebuffer: js.Function1[Event, Any] = js.native
695+
}
696+
697+
@js.native
698+
trait SourceBuffer extends EventTarget {
699+
var mode: AppendMode = js.native
700+
var timestampOffset: Double = js.native
701+
702+
def updating: Boolean = js.native
703+
def buffered: TimeRanges = js.native
704+
705+
def audioTracks: AudioTrackList = js.native
706+
def videoTracks: VideoTrackList = js.native
707+
def textTracks: TextTrackList = js.native
708+
709+
var appendWindowStart: Double = js.native
710+
var appendWindowEnd: Double = js.native
711+
712+
var onupdatestart: js.Function1[Event, Any] = js.native
713+
var onupdate: js.Function1[Event, Any] = js.native
714+
var onupdateend: js.Function1[Event, Any] = js.native
715+
var onerror: js.Function1[Event, Any] = js.native
716+
var onabort: js.Function1[Event, Any] = js.native
717+
718+
def appendBuffer(data: BufferSource): Unit = js.native
719+
def abort(): Unit = js.native
720+
def remove(start: Double, end: Double): Unit = js.native
721+
}
722+
723+
@js.native
724+
trait AudioTrackList extends EventTarget {
725+
def length: Double = js.native
726+
727+
@JSBracketAccess
728+
def apply(index: Double): AudioTrack = js.native
729+
730+
def getTrackById(id: String): js.UndefOr[AudioTrack] = js.native
731+
732+
var onchange: js.Function1[Event, Any] = js.native
733+
var onaddtrack: js.Function1[Event, Any] = js.native
734+
var onremovetrack: js.Function1[Event, Any] = js.native
735+
}
736+
737+
@js.native
738+
trait AudioTrack extends js.Object {
739+
val id: String = js.native
740+
val kind: String = js.native
741+
val label: String = js.native
742+
val language: String = js.native
743+
var enabled: Boolean = js.native
744+
}
745+
746+
@js.native
747+
trait VideoTrackList extends EventTarget {
748+
def length: Double = js.native
749+
750+
@JSBracketAccess
751+
def apply(index: Double): VideoTrack = js.native
752+
753+
def getTrackById(id: String): js.UndefOr[VideoTrack] = js.native
754+
755+
def selectedIndex: Double = js.native
756+
757+
var onchange: js.Function1[Event, Any] = js.native
758+
var onaddtrack: js.Function1[Event, Any] = js.native
759+
var onremovetrack: js.Function1[Event, Any] = js.native
760+
}
761+
@js.native
762+
trait VideoTrack extends js.Object {
763+
val id: String = js.native
764+
val kind: String = js.native
765+
val label: String = js.native
766+
val language: String = js.native
767+
var selected: Boolean = js.native
768+
}
769+
@js.native
770+
trait TextTrackList extends EventTarget {
771+
772+
def length: Double = js.native
773+
774+
@JSBracketAccess
775+
def apply(index: Double): VideoTrack = js.native
776+
777+
def getTrackById(id: String): js.UndefOr[TextTrack] = js.native;
778+
779+
var onchange: js.Function1[Event, Any] = js.native
780+
var onaddtrack: js.Function1[Event, Any] = js.native
781+
var onremovetrack: js.Function1[Event, Any] = js.native
782+
}
783+
@js.native
784+
trait TextTrack extends EventTarget {
785+
val id: String = js.native
786+
val kind: String = js.native
787+
val label: String = js.native
788+
val language: String = js.native
789+
val inBandMetadataTrackDispatchType: String = js.native
790+
791+
var mode: TextTrackMode = js.native
792+
793+
def cues: js.UndefOr[TextTrackCueList] = js.native
794+
def activeCues: js.UndefOr[TextTrackCueList] = js.native
795+
796+
def addCue(cue: TextTrackCue): Unit = js.native
797+
def removeCue(cue: TextTrackCue): Unit = js.native
798+
799+
var oncuechange: js.Function1[Event, Any] = js.native
800+
}
801+
802+
@js.native
803+
trait TextTrackCueList extends js.Object {
804+
def length: Double = js.native
805+
806+
@JSBracketAccess
807+
def apply(index: Double): TextTrackCue = js.native
808+
809+
def getCueById(id: String): js.UndefOr[TextTrackCue] = js.native;
810+
}
811+
812+
@js.native
813+
trait TextTrackCue extends EventTarget {
814+
def track: js.UndefOr[TextTrack] = js.native
815+
816+
var id: String = js.native
817+
var startTime: Double = js.native
818+
var endTime: Double = js.native
819+
var pauseOnExit: Boolean = js.native
820+
821+
var onenter: js.Function1[Event, Any] = js.native
822+
var onexit: js.Function1[Event, Any] = js.native
823+
}
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
@@ -3804,7 +3806,8 @@ abstract class HTMLMediaElement extends HTMLElement {
38043806
/**
38053807
* Sets or returns the object which serves as the source of the media associated with the HTMLMediaElement.
38063808
*/
3807-
var srcObject: org.scalajs.dom.experimental.mediastream.MediaStream
3809+
var srcObject: js.UndefOr[
3810+
dom.experimental.mediastream.MediaStream | dom.experimental.mediastream.MediaSource | Blob]
38083811
}
38093812

38103813
@js.native

0 commit comments

Comments
 (0)