]> git.sesse.net Git - vlc/blob - projects/mozilla/test.html
input: Expose input_ItemHasErrorWhenReading.
[vlc] / projects / mozilla / test.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
2 <HTML>\r
3 <TITLE>VLC Plugin test page</TITLE>\r
4 <STYLE>\r
5   .inputTrackerInput {\r
6         height:20;\r
7         width:30;\r
8         font-family : Arial, Helvetica, sans-serif;\r
9         font-size : 12px;\r
10   }\r
11 </STYLE>\r
12 \r
13 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>\r
14 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>\r
15 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>\r
16 <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>\r
17 \r
18 <SCRIPT language="JavaScript"><!--\r
19 function init(){\r
20     inputTracker = new Bs_Slider();\r
21     inputTracker.attachOnChange(onInputTrackerChange);\r
22     inputTracker.attachOnSlideStart(onInputTrackerScrollStart);\r
23     inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);\r
24     inputTracker.width         = 530 ;\r
25     inputTracker.height        = 15;\r
26     inputTracker.minVal        = 0;\r
27     inputTracker.maxVal        = 1.0;\r
28     inputTracker.valueDefault  = 0;\r
29     inputTracker.valueInterval = 1/530;\r
30     inputTracker.setDisabled(true);\r
31     inputTracker.imgDir   = 'blueshoes-4.5/javascript/components/slider/img/';\r
32     inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');\r
33     inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);\r
34     inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);\r
35     inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);\r
36     inputTracker.useInputField = 0;\r
37     inputTracker.draw('inputTrackerDiv');\r
38 \r
39     if( navigator.appName.indexOf("Microsoft Internet")==-1 )\r
40     {\r
41         onVLCPluginReady()\r
42     }\r
43     else if( document.readyState == 'complete' )\r
44     {\r
45         onVLCPluginReady();\r
46     }\r
47     else\r
48     {\r
49         /* Explorer loads plugins asynchronously */\r
50         document.onreadystatechange=function() {\r
51             if( document.readyState == 'complete' )\r
52             {\r
53                 onVLCPluginReady();\r
54             }\r
55         }\r
56     }\r
57 };\r
58 \r
59 function getVLC(name)\r
60 {\r
61     if (window.document[name]) \r
62     {\r
63         return window.document[name];\r
64     }\r
65     if (navigator.appName.indexOf("Microsoft Internet")==-1)\r
66     {\r
67         if (document.embeds && document.embeds[name])\r
68             return document.embeds[name]; \r
69     }\r
70     else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)\r
71     {\r
72         return document.getElementById(name);\r
73     }\r
74 };\r
75 \r
76 function onVLCPluginReady()\r
77 {\r
78     updateVolume(0);\r
79 };\r
80 \r
81 //--></SCRIPT>\r
82 \r
83 <BODY onLoad="init();">\r
84 <TABLE>\r
85 <TR><TD colspan="2">\r
86 MRL:\r
87 <INPUT size="90" id="targetTextField" value="">\r
88 <INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">\r
89 <INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);">\r
90 </TD></TR>\r
91 <TR><TD align="center" colspan="2">\r
92 <!--\r
93 Insert VideoLAN.VLCPlugin.2 \r
94 -->\r
95 <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"\r
96         width="640"\r
97         height="480"\r
98         id="vlc"\r
99         events="True">\r
100 <param name="MRL" value="" />\r
101 <param name="ShowDisplay" value="True" />\r
102 <param name="AutoLoop" value="False" />\r
103 <param name="AutoPlay" value="False" />\r
104 <param name="Volume" value="50" />\r
105 <param name="toolbar" value="true" />\r
106 <param name="StartTime" value="0" />\r
107 <EMBED pluginspage="http://www.videolan.org"\r
108        type="application/x-vlc-plugin"\r
109        version="VideoLAN.VLCPlugin.2"\r
110        width="640"\r
111        height="480"\r
112        toolbar="true"\r
113        name="vlc">\r
114 </EMBED>\r
115 </OBJECT>\r
116 </TD></TR>\r
117 <TR><TD colspan="2">\r
118 <TABLE><TR>\r
119 <TD valign="top" width="550">\r
120 <!--\r
121 Insert Slider widget\r
122 -->\r
123 <DIV id="inputTrackerDiv"</DIV>\r
124 </TD><TD width="15%">\r
125 <DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>\r
126 <DIV id="state" style="text-align:center">Stopped...</DIV>\r
127 </TD></TR></TABLE>\r
128 </TD></TR>\r
129 <TR><TD>\r
130 <INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>\r
131 <INPUT type=button value="Stop" onClick='doStop();'>\r
132 &nbsp;\r
133 <INPUT type=button value=" << " onClick='doPlaySlower();'>\r
134 <INPUT type=button value=" >> " onClick='doPlayFaster();'>\r
135 <INPUT type=button value="Backward" onClick='doBackwardPlay(500);'>\r
136 <INPUT type=button value="Forward" onClick='doForwardPlay(500);'>\r
137 <INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'>\r
138 <INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'>\r
139 <INPUT type=button value=" State " onClick='doState();'>\r
140 </TD><TD align="right"> \r
141 <SPAN style="text-align:center">Volume:</SPAN>\r
142 <INPUT type=button value=" - " onClick='updateVolume(-10)'>\r
143 <SPAN id="volumeTextField" style="text-align:center">--</SPAN>\r
144 <INPUT type=button value=" + " onClick='updateVolume(+10)'>\r
145 <INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'>\r
146 </TD>\r
147 </TR>\r
148 <TR><TD>Playlist: \r
149 <INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'>\r
150 <INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'>\r
151 <INPUT type=button value="Clear All" onClick='getVLC("vlc").playlist.clear(); doItemCount();'>\r
152 <INPUT size=4 value="1:1" id="aspect"><INPUT type=submit value="AspectRatio" onClick="doAspectRatio(document.getElementById('aspect').value);">\r
153 </TD><TD align="right">\r
154 <INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>\r
155 <INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">\r
156 </TD>\r
157 </TR>\r
158 <TR><TD>Messages:\r
159 <INPUT type=button value="Messages" onClick='doMessages();'>\r
160 Verbosity:\r
161 <INPUT size=2 value="1" id="verbosity" onClick="doVerbosity(document.getElementById('verbosity').value);">\r
162 <INPUT type=button value=" + " onClick='doVerbosity(1);'>\r
163 <INPUT type=button value=" - " onClick='doVerbosity(-1);'>\r
164 </TD>\r
165 <TD>\r
166 <DIV id="message" style="text-align:center">no message</DIV>\r
167 </TD>\r
168 </TR>\r
169 <TR><TD>Audio Channel:\r
170   <SELECT readonly onClick='doAudioChannel(this.value);'>\r
171     <OPTION value=1>Stereo</OPTION>\r
172     <OPTION value=2>Reverse Stereo</OPTION>\r
173     <OPTION value=3>Left</OPTION>\r
174     <OPTION value=4>Right</OPTION>\r
175     <OPTION value=5>Dolby</OPTION>\r
176   </SELECT>\r
177 </TD>\r
178 <TD>\r
179 <INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'>\r
180 </TD>\r
181 </TR>\r
182 <TR><TD> Audio Track:\r
183 <INPUT type=button value=" + " onClick='doAudioTrack(1);'>\r
184 <SPAN id="trackTextField" style="text-align:center">--</SPAN>\r
185 <INPUT type=button value=" - " onClick='doAudioTrack(-1);'>\r
186 </TD>\r
187 <TD>\r
188 <INPUT type=button value="set slider" onClick='doSetSlider();'>\r
189 <INPUT type=button value="get position" onClick='doGetPosition();'>\r
190 </TD>\r
191 </TR>\r
192 </TABLE>\r
193 <SCRIPT language="javascript">\r
194 <!--\r
195 \r
196 var rate = 0;\r
197 var prevState = 0;\r
198 var monitorTimerId = 0;\r
199 var rateTimerId = 0;\r
200 var inputTrackerScrolling = false;\r
201 var inputTrackerIgnoreChange = false;\r
202 \r
203 function doSetSlider()\r
204 {\r
205    var vlc = getVLC("vlc");\r
206 \r
207    if (vlc.input)\r
208    {\r
209      // set slider to new position\r
210      vlc.input.time = (vlc.input.length/2);\r
211    }\r
212 };\r
213 \r
214 function doGetPosition()\r
215 {\r
216    var vlc = getVLC("vlc");\r
217 \r
218    if (vlc.input)\r
219    {\r
220      // set slider to new position\r
221      alert( "position is " + vlc.input.time);\r
222    }\r
223 };\r
224 \r
225 function doForwardPlay(speed)\r
226 {\r
227    if (rateTimerId == 0)\r
228    {\r
229        rateTimerId = setInterval("ratechange()", speed);\r
230        rate = speed;\r
231    }\r
232    else rate = rate + speed;\r
233 };\r
234 \r
235 function doBackwardPlay(speed)\r
236 {\r
237    if (rateTimerId == 0)\r
238    {\r
239        rateTimerId = setInterval("ratechange()", speed);\r
240        rate = -speed;\r
241    }\r
242    else rate = rate - speed;\r
243 };\r
244 \r
245 function ratechange()\r
246 {\r
247     if (rateTimerId != 0)\r
248     {\r
249         var vlc = getVLC("vlc");\r
250         vlc.input.time = vlc.input.time + rate;\r
251     }\r
252 };\r
253 \r
254 function doVerbosity(value)\r
255 {\r
256     var vlc = getVLC("vlc");\r
257     vlc.log.verbosity = vlc.log.verbosity + value;\r
258     document.getElementById("verbosity").value = vlc.log.verbosity;\r
259 };\r
260 \r
261 function doAudioChannel(value)\r
262 {\r
263     var vlc = getVLC("vlc");\r
264     vlc.audio.channel = parseInt(value);\r
265 };\r
266 \r
267 function doAudioTrack(value)\r
268 {\r
269     var vlc = getVLC("vlc");\r
270     vlc.audio.track = vlc.audio.track + value;\r
271     document.getElementById("trackTextField").innerHTML = vlc.audio.track;\r
272 };\r
273 \r
274 function doAspectRatio(value)\r
275 {\r
276    var vlc = getVLC("vlc");\r
277    vlc.video.aspectRatio = value;\r
278    document.getElementById("aspect").value = vlc.video.aspectRatio;\r
279 }\r
280 \r
281 function doItemCount()\r
282 {\r
283    var vlc = getVLC("vlc");\r
284    var count = vlc.playlist.itemCount;\r
285    document.getElementById("itemCount").value = " Items " + count + " ";\r
286 };\r
287 \r
288 function doRemoveItem(item)\r
289 {\r
290    var vlc = getVLC("vlc");\r
291    vlc.playlist.removeItem(item);\r
292 };\r
293 \r
294 function doMessages()\r
295 {\r
296     var vlc = getVLC("vlc");\r
297 \r
298     if( vlc.log.messages.count > 0 )\r
299     {\r
300         // there is one or more messages in the log\r
301         var iter = vlc.log.messages.iterator();\r
302         while( iter.hasNext )\r
303         {\r
304             var msg = iter.next();\r
305             if( msg.severity <= 1 )\r
306             {\r
307                 document.getElementById("message").innerHTML = msg.message;\r
308             }\r
309         }\r
310         // clear the log once finished to avoid clogging\r
311         vlc.log.messages.clear();\r
312     }\r
313 };\r
314 \r
315 function updateVolume(deltaVol)\r
316 {\r
317     var vlc = getVLC("vlc");\r
318     vlc.audio.volume += deltaVol;\r
319     document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";\r
320 };\r
321 \r
322 function formatTime(timeVal)\r
323 {\r
324     var timeHour = Math.round(timeVal / 1000);\r
325     var timeSec = timeHour % 60;\r
326     if( timeSec < 10 )\r
327         timeSec = '0'+timeSec;\r
328     timeHour = (timeHour - timeSec)/60;\r
329     var timeMin = timeHour % 60;\r
330     if( timeMin < 10 )\r
331         timeMin = '0'+timeMin;\r
332     timeHour = (timeHour - timeMin)/60;\r
333     if( timeHour > 0 )\r
334         return timeHour+":"+timeMin+":"+timeSec;\r
335     else\r
336         return timeMin+":"+timeSec;\r
337 };\r
338 \r
339 function doState()\r
340 {\r
341     var vlc = getVLC("vlc");\r
342     var newState = vlc.input.state;\r
343 \r
344     if( newState == 0 )\r
345     {\r
346         // current media has stopped \r
347         onEnd();\r
348     }\r
349     else if( newState == 1 )\r
350     {\r
351         // current media is openning/connecting\r
352         onOpen();\r
353     }\r
354     else if( newState == 2 )\r
355     {\r
356         // current media is buffering data\r
357         onBuffer();\r
358     }\r
359     else if( newState == 3 )\r
360     {\r
361         // current media is now playing\r
362         onPlay();\r
363     }\r
364     else if( newState == 4 )\r
365     {\r
366         // current media is now paused\r
367         onPause();\r
368     }\r
369     else if( newState == 5 )\r
370     {\r
371         // current media has stopped\r
372         onStop();\r
373     }\r
374     else if( newState == 6 )\r
375     {\r
376         // current media is playing forward\r
377         onForward();\r
378     }\r
379     else if( newState == 7 )\r
380     {\r
381         // current media is playing backward\r
382         onBackward();\r
383     }\r
384     else if( newState == 8 )\r
385     {\r
386         // current media has ended\r
387         onEnd();\r
388     }\r
389     else if( newState == 9 )\r
390     {\r
391         // current media encountered error\r
392         onError();\r
393     }\r
394 };\r
395 \r
396 function monitor()\r
397 {\r
398     var vlc = getVLC("vlc");\r
399     var newState = vlc.input.state;\r
400 \r
401     if( vlc.log.messages.count > 0 )\r
402     {\r
403         // there is one or more messages in the log\r
404         var iter = vlc.log.messages.iterator();\r
405         while( iter.hasNext )\r
406         {\r
407             var msg = iter.next();\r
408             if( msg.severity == 1 )\r
409             {\r
410                 alert( msg.message );\r
411             }\r
412             document.getElementById("message").innerHTML = msg.message;\r
413         }\r
414         // clear the log once finished to avoid clogging\r
415         vlc.log.messages.clear();\r
416     }\r
417 \r
418     if( prevState != newState )\r
419     {\r
420         if( newState == 0 )\r
421         {\r
422             // current media has stopped \r
423             onEnd();\r
424         }\r
425         else if( newState == 1 )\r
426         {\r
427             // current media is openning/connecting\r
428             onOpen();\r
429         }\r
430         else if( newState == 2 )\r
431         {\r
432             // current media is buffering data\r
433             onBuffer();\r
434         }\r
435         else if( newState == 3 )\r
436         {\r
437             // current media is now playing\r
438             onPlay();\r
439         }\r
440         else if( newState == 4 )\r
441         {\r
442             // current media is now paused\r
443             onPause();\r
444         }\r
445         else if( newState == 5 )\r
446         {\r
447             // current media has stopped\r
448             onStop();\r
449         }\r
450         else if( newState == 6 )\r
451         {\r
452             // current media is playing forward\r
453             onForward();\r
454         }\r
455         else if( newState == 7 )\r
456         {\r
457             // current media is playing backward\r
458             onBackward();\r
459         }\r
460         else if( newState == 8 )\r
461         {\r
462             // current media has ended\r
463             onEnd();\r
464         }\r
465         else if( newState == 9 )\r
466         {\r
467             // current media encountered error\r
468             onError();\r
469         }\r
470         prevState = newState;\r
471     }\r
472     else if( newState == 3 )\r
473     {\r
474         // current media is playing\r
475         onPlaying();\r
476     }\r
477     if( monitorTimerId == 0 )\r
478     {\r
479         monitorTimerId = setInterval("monitor()", 1000);\r
480     }\r
481 };\r
482 \r
483 /* actions */\r
484 \r
485 function doGo(targetURL)\r
486 {\r
487     var vlc = getVLC("vlc");\r
488 \r
489     vlc.playlist.clear();\r
490     while( vlc.playlist.itemCount > 0 )\r
491     {\r
492         // clear() may return before the playlist has actually been cleared\r
493         // just wait for it to finish its job\r
494     }\r
495     //vlc.playlist.add(targetURL);\r
496     //vlc.playlist.play();\r
497 \r
498     var itemId = vlc.playlist.add(targetURL);\r
499     if( itemId != -1 )\r
500     {\r
501         // clear the message log and enable error logging\r
502         vlc.log.verbosity = 1;\r
503         vlc.log.messages.clear();\r
504         // play MRL\r
505         vlc.playlist.play();\r
506         if( monitorTimerId == 0 )\r
507         {\r
508             monitor();\r
509         }\r
510     }\r
511     else\r
512     {\r
513         // disable log\r
514         vlc.log.verbosity = -1;\r
515         alert("cannot play at the moment !");\r
516     }\r
517     doItemCount();\r
518 \r
519     if (rateTimerId != 0)\r
520     {\r
521         clearInterval("ratechange()");\r
522     }\r
523     rateTimerId = 0;\r
524 };\r
525 \r
526 function doAdd(targetURL)\r
527 {\r
528     var vlc = getVLC("vlc");\r
529     var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");\r
530     vlc.playlist.add(targetURL);\r
531     doItemCount();\r
532 };\r
533 \r
534 function doPlayOrPause()\r
535 {\r
536     var vlc = getVLC("vlc");\r
537     if( vlc.playlist.isPlaying )\r
538     {\r
539         vlc.playlist.togglePause();\r
540         monitor();\r
541     }\r
542     else if( vlc.playlist.itemCount > 0 )\r
543     {\r
544         // clear the message log and enable error logging\r
545         vlc.log.verbosity = 1;\r
546         vlc.log.messages.clear();\r
547         vlc.playlist.play();\r
548         monitor();\r
549     }\r
550     else\r
551     {\r
552         // disable log\r
553         vlc.log.verbosity = -1;\r
554         alert('nothing to play !');\r
555     }\r
556     if (rateTimerId != 0)\r
557     {\r
558         clearInterval("ratechange()");\r
559     }\r
560     rateTimerId = 0;\r
561 };\r
562 \r
563 function doStop()\r
564 {\r
565     getVLC("vlc").playlist.stop();\r
566     if( monitorTimerId != 0 )\r
567     {\r
568         clearInterval(monitorTimerId);\r
569         monitorTimerId = 0;\r
570     }\r
571     onStop();\r
572 };\r
573 \r
574 function doPlaySlower()\r
575 {\r
576     var vlc = getVLC("vlc");\r
577     vlc.input.rate = vlc.input.rate / 2;\r
578 };\r
579 \r
580 function doPlayFaster()\r
581 {\r
582     var vlc = getVLC("vlc");\r
583     vlc.input.rate = vlc.input.rate * 2;\r
584 };\r
585 \r
586 /* events */\r
587 \r
588 function onOpen()\r
589 {\r
590     document.getElementById("state").innerHTML = "Opening...";\r
591     document.getElementById("PlayOrPause").value = "Pause";\r
592 };\r
593 \r
594 function onBuffer()\r
595 {\r
596     document.getElementById("state").innerHTML = "Buffering...";\r
597     document.getElementById("PlayOrPause").value = "Pause";\r
598 };\r
599 \r
600 function onPlay()\r
601 {\r
602     document.getElementById("state").innerHTML = "Playing...";\r
603     document.getElementById("PlayOrPause").value = "Pause";\r
604     onPlaying();\r
605 };\r
606 \r
607 function onForward()\r
608 {   // Event is reserved for future enhancements\r
609     document.getElementById("state").innerHTML = "Forward playing...";\r
610 };\r
611 \r
612 function onBackward()\r
613 {   // Event is reserved for future enhancements\r
614     document.getElementById("state").innerHTML = "Backward playing...";\r
615 };\r
616 \r
617 function onEnd()\r
618 {\r
619     document.getElementById("state").innerHTML = "End...";\r
620 };\r
621 \r
622 \r
623 var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "((  Live  ))");\r
624 var liveFeedRoll = 0;\r
625 \r
626 function onPlaying()\r
627 {\r
628     if( ! inputTrackerScrolling )\r
629     {\r
630         var vlc = getVLC("vlc");\r
631         var info = document.getElementById("info");\r
632         var mediaLen = vlc.input.length;\r
633         inputTrackerIgnoreChange  = true;\r
634         if( mediaLen > 0 )\r
635         {\r
636             // seekable media\r
637             if( inputTracker.maxVal == 1.0 )\r
638             {\r
639                 inputTracker.setDisabled(false);\r
640                 inputTracker.maxVal = 1.0;\r
641             }\r
642             inputTracker.setValue(vlc.input.position);\r
643             info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);\r
644         }\r
645         else\r
646         {\r
647             // non-seekable "live" media\r
648             if( inputTracker.maxVal != 0.0 )\r
649             {\r
650                 inputTracker.maxVal = 0.0;\r
651                 inputTracker.setValue(0.0);\r
652                 inputTracker.setDisabled(true);\r
653             }\r
654             liveFeedRoll = liveFeedRoll & 3;\r
655             info.innerHTML = liveFeedText[liveFeedRoll++];\r
656         }\r
657         inputTrackerIgnoreChange  = false;\r
658     }\r
659 };\r
660 \r
661 function onPause()\r
662 {\r
663     document.getElementById("state").innerHTML = "Paused...";\r
664     document.getElementById("PlayOrPause").value = " Play ";\r
665 };\r
666 \r
667 function onStop()\r
668 {\r
669     // disable logging\r
670     vlc.log.verbosity = -1;\r
671 \r
672     if( ! inputTracker.disabled )\r
673     {\r
674         inputTracker.setValue(inputTracker.minVal);\r
675         inputTracker.setDisabled(true);\r
676     }\r
677     document.getElementById("info").innerHTML = "-:--:--/-:--:--";\r
678     document.getElementById("state").innerHTML = "Stopped...";\r
679     document.getElementById("PlayOrPause").value = " Play ";\r
680 };\r
681 \r
682 function onError()\r
683 {\r
684     var vlc = getVLC("vlc");\r
685 \r
686     document.getElementById("state").innerHTML = "Error...";\r
687     if( vlc.log.messages.count > 0 )\r
688     {\r
689         // there is one or more messages in the log\r
690         var iter = vlc.log.messages.iterator();\r
691         while( iter.hasNext )\r
692         {\r
693             var msg = iter.next();\r
694             if( msg.severity <= 1 )\r
695             {\r
696                 alert( msg.message );\r
697             }\r
698             document.getElementById("message").innerHTML = msg.message;\r
699         }\r
700         // clear the log once finished to avoid clogging\r
701         vlc.log.messages.clear();\r
702     }\r
703 };\r
704 \r
705 function onInputTrackerScrollStart()\r
706 {\r
707     inputTrackerScrolling = true;\r
708 };\r
709 \r
710 function onInputTrackerScrollEnd(inputTracker, value, pos)\r
711 {\r
712     inputTrackerScrolling = false;\r
713 };\r
714 \r
715 function onInputTrackerChange(inputTracker, value, pos)\r
716 {\r
717     if( ! inputTrackerIgnoreChange )\r
718     {\r
719         var vlc = getVLC("vlc");\r
720         if( (vlc.input.state == 3) && (vlc.input.position != value) )\r
721         {\r
722             var info = document.getElementById("info");\r
723             vlc.input.position = value;\r
724             info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);\r
725         }\r
726     }\r
727 };\r
728 //-->\r
729 </SCRIPT>\r
730 </BODY>\r
731 </HTML>\r