ladybird/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl
stelar7 d767f14df8 LibWeb: Introduce the concept of "Enumerated" values
This does _NOT_ correspond to anything in the IDL or ECMAScript spec,
but is a custom extended attribute.
We use it to define the "enumerated" values of an attribute
2023-11-07 11:34:21 +01:00

75 lines
2.6 KiB
Plaintext

#import <HTML/AudioTrackList.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/MediaError.idl>
#import <HTML/TimeRanges.idl>
#import <HTML/VideoTrackList.idl>
#import <HTML/Scripting/Fetching.idl>
enum CanPlayTypeResult {
"",
"maybe",
"probably"
};
// https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
[Exposed=Window]
interface HTMLMediaElement : HTMLElement {
// error state
readonly attribute MediaError? error;
// network state
[Reflect, CEReactions] attribute DOMString src;
// FIXME: attribute MediaProvider? srcObject;
readonly attribute USVString currentSrc;
[Reflect=crossorigin, CEReactions, Enumerated=CORSSettingsAttribute] attribute DOMString? crossOrigin;
const unsigned short NETWORK_EMPTY = 0;
const unsigned short NETWORK_IDLE = 1;
const unsigned short NETWORK_LOADING = 2;
const unsigned short NETWORK_NO_SOURCE = 3;
readonly attribute unsigned short networkState;
// FIXME: [CEReactions] attribute DOMString preload;
readonly attribute TimeRanges buffered;
undefined load();
CanPlayTypeResult canPlayType(DOMString type);
// ready state
const unsigned short HAVE_NOTHING = 0;
const unsigned short HAVE_METADATA = 1;
const unsigned short HAVE_CURRENT_DATA = 2;
const unsigned short HAVE_FUTURE_DATA = 3;
const unsigned short HAVE_ENOUGH_DATA = 4;
readonly attribute unsigned short readyState;
readonly attribute boolean seeking;
// playback state
attribute double currentTime;
undefined fastSeek(double time);
readonly attribute unrestricted double duration;
// FIXME: object getStartDate();
readonly attribute boolean paused;
// FIXME: attribute double defaultPlaybackRate;
// FIXME: attribute double playbackRate;
// FIXME: attribute boolean preservesPitch;
// FIXME: readonly attribute TimeRanges played;
// FIXME: readonly attribute TimeRanges seekable;
readonly attribute boolean ended;
[Reflect, CEReactions] attribute boolean autoplay;
[Reflect, CEReactions] attribute boolean loop;
Promise<undefined> play();
undefined pause();
// controls
[Reflect, CEReactions] attribute boolean controls;
attribute double volume;
attribute boolean muted;
[Reflect=muted, CEReactions] attribute boolean defaultMuted;
// tracks
[SameObject] readonly attribute AudioTrackList audioTracks;
[SameObject] readonly attribute VideoTrackList videoTracks;
// FIXME: [SameObject] readonly attribute TextTrackList textTracks;
// FIXME: TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
};