]> git.sesse.net Git - vlc/blob - activex/test.html
- revert 16847, this breaks the activex and mozilla plugins, and passing a argv[0...
[vlc] / activex / test.html
1 <HTML>\r
2 <TITLE>VLC ActiveX plugin test page</TITLE>\r
3 <BODY>\r
4 <TABLE>\r
5 <TR><TD colspan="2">\r
6 MRL:\r
7 <INPUT size="90" id="targetTextField" value="">\r
8 <INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">\r
9 </TD></TR>\r
10 <TR><TD colspan="2">\r
11 <!--\r
12 Insert VideoLAN.VLCPlugin.2 activex control\r
13 -->\r
14 <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"\r
15         codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab#Version=0,8,6,0"\r
16         width="640"\r
17         height="480"\r
18         id="vlc"\r
19         events="True">\r
20 <param name="MRL" value="" />\r
21 <param name="ShowDisplay" value="True" />\r
22 <param name="AutoLoop" value="False" />\r
23 <param name="AutoPlay" value="False" />\r
24 <param name="Volume" value="50" />\r
25 <param name="StartTime" value="0" />\r
26 </OBJECT>\r
27 </TD></TR>\r
28 <TR><TD>\r
29 <!--\r
30 Insert MSComctlLib.Slider.2 activex control\r
31 -->\r
32 <OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"\r
33         width="540"\r
34         height="20"\r
35         id="slider"\r
36         events="True">\r
37 <param name="TickStyle" value="3" />\r
38 <param name="Min" value="0" />\r
39 <param name="Max" value="0" />\r
40 <param name="Value" value="0" />\r
41 <param name="Enabled" value="False" />\r
42 </OBJECT>\r
43 </TD><TD width="15%">\r
44 <DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>\r
45 </TD></TR>\r
46 <TR><TD colspan="2">\r
47 <INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>\r
48 <INPUT type=button value="Stop" onClick='doStop();'>\r
49 &nbsp;\r
50 <INPUT type=button value=" << " onClick='doPlaySlower();'>\r
51 <INPUT type=button value=" >> " onClick='doPlayFaster();'>\r
52 &nbsp;\r
53 <INPUT type=button value="Show" onClick='document.getElementById("vlc").Visible = true;'>\r
54 <INPUT type=button value="Hide" onClick='document.getElementById("vlc").Visible = false;'>\r
55 &nbsp;\r
56 <INPUT type=button id="VersionBut" value="Version" onClick='alert(document.getElementById("vlc").VersionInfo);'>\r
57 <SPAN style="text-align:center">Volume:</SPAN>\r
58 <INPUT type=button value=" - " onClick='updateVolume(-10)'>\r
59 <SPAN id="volumeTextField" style="text-align: center">--</SPAN>\r
60 <INPUT type=button value=" + " onClick='updateVolume(+10)'>\r
61 <INPUT type=button value="Mute" onClick='document.getElementById("vlc").audio.toggleMute();'>\r
62 </TD>\r
63 </TR>\r
64 </TABLE>\r
65 <SCRIPT language="javascript">\r
66 <!--\r
67 \r
68 var prevState = 0;\r
69 var monitorTimerId = 0;\r
70 var sliderScrolling = false;\r
71 \r
72 function updateVolume(deltaVol)\r
73 {\r
74     var vlc = document.getElementById("vlc");\r
75     vlc.audio.volume += deltaVol;\r
76     document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";\r
77 };\r
78 function formatTime(timeVal)\r
79 {\r
80     var timeHour = Math.round(timeVal / 1000);\r
81     var timeSec = timeHour % 60;\r
82     if( timeSec < 10 )\r
83         timeSec = '0'+timeSec;\r
84     timeHour = (timeHour - timeSec)/60;\r
85     var timeMin = timeHour % 60;\r
86     if( timeMin < 10 )\r
87         timeMin = '0'+timeMin;\r
88     timeHour = (timeHour - timeMin)/60;\r
89     if( timeHour > 0 )\r
90         return timeHour+":"+timeMin+":"+timeSec;\r
91     else\r
92         return timeMin+":"+timeSec;\r
93 };\r
94 function monitor()\r
95 {\r
96     var vlc = document.getElementById("vlc");\r
97     var newState = vlc.input.state;\r
98     if( prevState != newState )\r
99     {\r
100         if( newState == 0 )\r
101         {\r
102             // current media has stopped \r
103             onStop();\r
104         }\r
105         else if( newState == 1 )\r
106         {\r
107             // current media is openning/connecting\r
108             onOpen();\r
109         }\r
110         else if( newState == 2 )\r
111         {\r
112             // current media is buffering data\r
113             onBuffer();\r
114         }\r
115         else if( newState == 3 )\r
116         {\r
117             // current media is now playing\r
118             onPlay();\r
119         }\r
120         else if( vlc.input.state == 4 )\r
121         {\r
122             // current media is now paused\r
123             onPause();\r
124         }\r
125         prevState = newState;\r
126     }\r
127     else if( newState == 3 )\r
128     {\r
129         // current media is playing\r
130         onPlaying();\r
131     }\r
132     monitorTimerId = setTimeout("monitor()", 1000);\r
133 };\r
134 \r
135 /* actions */\r
136 \r
137 function doGo(targetURL)\r
138 {\r
139     var vlc = document.getElementById("vlc");\r
140     var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");\r
141     vlc.playlist.clear();\r
142     vlc.playlist.add(targetURL, null, options);\r
143     vlc.playlist.play();\r
144     if( monitorTimerId == 0 )\r
145     {\r
146         monitor();\r
147     }\r
148 };\r
149 function doPlayOrPause()\r
150 {\r
151     var vlc = document.getElementById("vlc");\r
152     if( vlc.playlist.isPlaying )\r
153     {\r
154         vlc.playlist.togglePause();\r
155     }\r
156     else\r
157     {\r
158         vlc.playlist.play();\r
159         if( monitorTimerId == 0 )\r
160         {\r
161             monitor();\r
162         }\r
163     }\r
164 };\r
165 function doStop()\r
166 {\r
167     document.getElementById("vlc").playlist.stop();\r
168     if( monitorTimerId != 0 )\r
169     {\r
170         clearTimeout(monitorTimerId);\r
171         monitorTimerId = 0;\r
172     }\r
173     onStop();\r
174 };\r
175 function doPlaySlower()\r
176 {\r
177     var vlc = document.getElementById("vlc");\r
178     vlc.input.rate = vlc.input.rate / 2;\r
179 };\r
180 function doPlayFaster()\r
181 {\r
182     var vlc = document.getElementById("vlc");\r
183     vlc.input.rate = vlc.input.rate * 2;\r
184 };\r
185 \r
186 /* events */\r
187 \r
188 function onOpen()\r
189 {\r
190     document.getElementById("info").innerHTML = "Opening...";\r
191     document.getElementById("PlayOrPause").value = "Pause";\r
192 };\r
193 function onBuffer()\r
194 {\r
195     document.getElementById("info").innerHTML = "Buffering...";\r
196     document.getElementById("PlayOrPause").value = "Pause";\r
197 };\r
198 function onPlay()\r
199 {\r
200     onPlaying();\r
201     document.getElementById("PlayOrPause").value = "Pause";\r
202 };\r
203 var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "((  Live  ))");\r
204 var liveFeedRoll = 0;\r
205 function onPlaying()\r
206 {\r
207     if( ! sliderScrolling )\r
208     {\r
209         var slider = document.getElementById("slider");\r
210         if( vlc.input.length > 0 )\r
211         {\r
212             // seekable media\r
213             slider.Enabled = true;\r
214             slider.Max = vlc.input.length/1000;\r
215             slider.Value = vlc.input.time/1000;\r
216             info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);\r
217         }\r
218         else\r
219         {\r
220             // non-seekable "live" media\r
221             if( slider.Enabled )\r
222             {\r
223                 slider.Value = slider.Min;\r
224                 slider.Enabled = false;\r
225             }\r
226             liveFeedRoll = liveFeedRoll & 3;\r
227             info.innerHTML = liveFeedText[liveFeedRoll++];\r
228         }\r
229     }\r
230 };\r
231 function onPause()\r
232 {\r
233     document.getElementById("PlayOrPause").value = " Play ";\r
234 };\r
235 function onStop()\r
236 {\r
237     if( slider.Enabled )\r
238     {\r
239         slider.Value = slider.Min;\r
240         slider.Enabled = false;\r
241     }\r
242     document.getElementById("info").innerHTML = "-:--:--/-:--:--";\r
243     document.getElementById("PlayOrPause").value = " Play ";\r
244 };\r
245 //-->\r
246 </SCRIPT>\r
247 <SCRIPT language="JScript">\r
248 <!--\r
249 \r
250 document.onreadystatechange=onVLCStateChange;\r
251 function onVLCStateChange()\r
252 {\r
253     if( document.readyState == 'complete' )\r
254     {\r
255         updateVolume(0);\r
256     }\r
257 };\r
258 function slider::Scroll()\r
259 {\r
260     var newPos = slider.Value * 1000;\r
261     var vlc = document.getElementById("vlc");\r
262     slider.Text = formatTime(newPos);\r
263     info.innerHTML = slider.Text+"/"+formatTime(vlc.input.length);\r
264     if( (vlc.input.state == 3) && (vlc.input.time != newPos) )\r
265     {\r
266         vlc.input.time = newPos;\r
267     }\r
268     sliderScrolling = true;\r
269 };\r
270 function slider::Change()\r
271 {\r
272     var newPos = slider.Value * 1000;\r
273     if( sliderScrolling )\r
274     {\r
275         sliderScrolling = false;\r
276     }\r
277     else if( (vlc.input.state == 3) && (vlc.input.time != newPos) )\r
278     {\r
279         vlc.input.time = newPos;\r
280     }\r
281 };\r
282 //-->\r
283 </SCRIPT>\r
284 </BODY>\r
285 </HTML>\r