Adding some IDL files for <track>.
[WebKit-https.git] / Source / WebCore / html / HTMLMediaElement.idl
1 /*
2  * Copyright (C) 2007, 2010, 2011 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 module html {
27     interface [
28         Conditional=VIDEO,
29         GenerateNativeConverter
30     ] HTMLMediaElement : HTMLElement {
31
32     // error state
33     readonly attribute MediaError error;
34
35     // network state
36     attribute [Reflect, URL] DOMString src;
37     readonly attribute [URL] DOMString currentSrc;
38     
39     const unsigned short NETWORK_EMPTY = 0;
40     const unsigned short NETWORK_IDLE = 1;
41     const unsigned short NETWORK_LOADING = 2;
42     const unsigned short NETWORK_NO_SOURCE = 3;
43     readonly attribute unsigned short networkState;
44     attribute DOMString preload;
45
46     readonly attribute TimeRanges buffered;
47     void load() 
48         raises (DOMException);
49     DOMString canPlayType(in [Optional=CallWithDefaultValue] DOMString type);
50
51     // ready state
52     const unsigned short HAVE_NOTHING = 0;
53     const unsigned short HAVE_METADATA = 1;
54     const unsigned short HAVE_CURRENT_DATA = 2;
55     const unsigned short HAVE_FUTURE_DATA = 3;
56     const unsigned short HAVE_ENOUGH_DATA = 4;
57     readonly attribute unsigned short readyState;
58     readonly attribute boolean seeking;
59
60     // playback state
61     attribute float currentTime
62         setter raises (DOMException);
63     readonly attribute double initialTime;
64     readonly attribute float startTime;
65     readonly attribute float duration;
66     readonly attribute boolean paused;
67     attribute float defaultPlaybackRate;
68     attribute float playbackRate;
69     readonly attribute TimeRanges played;
70     readonly attribute TimeRanges seekable;
71     readonly attribute boolean ended;
72     attribute [Reflect] boolean autoplay;
73     attribute [Reflect] boolean loop;
74     void play();
75     void pause();
76
77     // controls
78     attribute boolean controls;
79     attribute float volume 
80         setter raises (DOMException);
81     attribute boolean muted;
82     attribute [Reflect=muted] boolean defaultMuted;
83
84     // WebKit extensions
85     attribute boolean webkitPreservesPitch;
86
87     readonly attribute boolean webkitHasClosedCaptions;
88     attribute boolean webkitClosedCaptionsVisible;
89
90     // The number of bytes consumed by the media decoder.
91     readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitAudioDecodedByteCount;
92     readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitVideoDecodedByteCount;
93
94 #if defined(ENABLE_MEDIA_SOURCE) && ENABLE_MEDIA_SOURCE
95     // URL passed to src attribute to enable the media source logic.
96     readonly attribute [EnabledAtRuntime=webkitMediaSource, URL] DOMString webkitMediaSourceURL;
97
98     // Appends media to to the source.
99     [EnabledAtRuntime=webkitMediaSource] void webkitSourceAppend(in Uint8Array data) raises (DOMException);
100
101     // Signals the end of stream.
102     const [EnabledAtRuntime=webkitMediaSource] unsigned short EOS_NO_ERROR = 0; // End of stream reached w/o error.
103     const [EnabledAtRuntime=webkitMediaSource] unsigned short EOS_NETWORK_ERR = 1; // A network error triggered end of stream.
104     const [EnabledAtRuntime=webkitMediaSource] unsigned short EOS_DECODE_ERR = 2; // A decode error triggered end of stream.
105     [EnabledAtRuntime=webkitMediaSource] void webkitSourceEndOfStream(in unsigned short status) raises (DOMException);
106
107     // Indicates the current state of the media source.
108     const [EnabledAtRuntime=webkitMediaSource] unsigned short SOURCE_CLOSED = 0;
109     const [EnabledAtRuntime=webkitMediaSource] unsigned short SOURCE_OPEN = 1;
110     const [EnabledAtRuntime=webkitMediaSource] unsigned short SOURCE_ENDED = 2;
111     readonly attribute [EnabledAtRuntime=webkitMediaSource] unsigned short webkitSourceState;
112 #endif
113
114 #if defined(ENABLE_VIDEO_TRACK) && ENABLE_VIDEO_TRACK
115     [EnabledAtRuntime=webkitVideoTrack] MutableTextTrack addTrack(in DOMString kind, in [Optional] DOMString label, in [Optional] DOMString language);
116 #endif
117 };
118 }