Changeset ae00feec507d9cd4784f89bb7b2459f773baa510

Show
Ignore:
Timestamp:
18/06/08 11:39:23 (6 months ago)
Author:
Jean-Paul Saman <jpsaman@videolan.org>
git-committer:
Jean-Paul Saman <jpsaman@videolan.org> 1213781963 +0200
git-parent:

[227de1f76923c66c00711b6adb6721a5a325e28d]

git-author:
Jean-Paul Saman <jpsaman@videolan.org> 1213738379 +0200
Message:

Update mozilla test page.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • projects/mozilla/test.html

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