| 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"><!-- |
|---|
| | 19 | function 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 | |
|---|
| | 59 | function 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 | |
|---|
| | 76 | function onVLCPluginReady() |
|---|
| | 77 | { |
|---|
| | 78 | updateVolume(0); |
|---|
| | 79 | }; |
|---|
| | 80 | |
|---|
| | 81 | //--></SCRIPT> |
|---|
| | 82 | |
|---|
| | 83 | <BODY onLoad="init();"> |
|---|
| | 89 | <INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);"> |
|---|
| | 90 | </TD></TR> |
|---|
| | 91 | <TR><TD align="center" colspan="2"> |
|---|
| | 92 | <!-- |
|---|
| | 93 | Insert 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> |
|---|
| 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();'> |
|---|
| | 160 | Verbosity: |
|---|
| | 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> |
|---|
| 36 | | var timerId = 0; |
|---|
| | 195 | |
|---|
| | 196 | var rate = 0; |
|---|
| | 197 | var prevState = 0; |
|---|
| | 198 | var monitorTimerId = 0; |
|---|
| | 199 | var rateTimerId = 0; |
|---|
| | 200 | var inputTrackerScrolling = false; |
|---|
| | 201 | var inputTrackerIgnoreChange = false; |
|---|
| | 202 | |
|---|
| | 203 | function 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 | |
|---|
| | 214 | function 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 | |
|---|
| | 225 | function doForwardPlay(speed) |
|---|
| | 226 | { |
|---|
| | 227 | if (rateTimerId == 0) |
|---|
| | 228 | { |
|---|
| | 229 | rateTimerId = setInterval("ratechange()", speed); |
|---|
| | 230 | rate = speed; |
|---|
| | 231 | } |
|---|
| | 232 | else rate = rate + speed; |
|---|
| | 233 | }; |
|---|
| | 234 | |
|---|
| | 235 | function doBackwardPlay(speed) |
|---|
| | 236 | { |
|---|
| | 237 | if (rateTimerId == 0) |
|---|
| | 238 | { |
|---|
| | 239 | rateTimerId = setInterval("ratechange()", speed); |
|---|
| | 240 | rate = -speed; |
|---|
| | 241 | } |
|---|
| | 242 | else rate = rate - speed; |
|---|
| | 243 | }; |
|---|
| | 244 | |
|---|
| | 245 | function ratechange() |
|---|
| | 246 | { |
|---|
| | 247 | if (rateTimerId != 0) |
|---|
| | 248 | { |
|---|
| | 249 | var vlc = getVLC("vlc"); |
|---|
| | 250 | vlc.input.time = vlc.input.time + rate; |
|---|
| | 251 | } |
|---|
| | 252 | }; |
|---|
| | 253 | |
|---|
| | 254 | function 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 | |
|---|
| | 261 | function doAudioChannel(value) |
|---|
| | 262 | { |
|---|
| | 263 | var vlc = getVLC("vlc"); |
|---|
| | 264 | vlc.audio.channel = parseInt(value); |
|---|
| | 265 | }; |
|---|
| | 266 | |
|---|
| | 267 | function 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 | |
|---|
| | 274 | function doAspectRatio(value) |
|---|
| | 275 | { |
|---|
| | 276 | var vlc = getVLC("vlc"); |
|---|
| | 277 | vlc.video.aspectRatio = value; |
|---|
| | 278 | document.getElementById("aspect").value = vlc.video.aspectRatio; |
|---|
| | 279 | } |
|---|
| | 280 | |
|---|
| | 281 | function doItemCount() |
|---|
| | 282 | { |
|---|
| | 283 | var vlc = getVLC("vlc"); |
|---|
| | 284 | var count = vlc.playlist.itemCount; |
|---|
| | 285 | document.getElementById("itemCount").value = " Items " + count + " "; |
|---|
| | 286 | }; |
|---|
| | 287 | |
|---|
| | 288 | function doRemoveItem(item) |
|---|
| | 289 | { |
|---|
| | 290 | var vlc = getVLC("vlc"); |
|---|
| | 291 | vlc.playlist.removeItem(item); |
|---|
| | 292 | }; |
|---|
| | 293 | |
|---|
| | 294 | function 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 | }; |
|---|
| 58 | | return timeMin+":"+timeSec; |
|---|
| 59 | | }; |
|---|
| | 336 | return timeMin+":"+timeSec; |
|---|
| | 337 | }; |
|---|
| | 338 | |
|---|
| | 339 | function 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 | |
|---|
| | 396 | function 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 | |
|---|
| | 485 | function 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 | |
|---|
| | 526 | function 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 | |
|---|
| | 534 | function 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 | |
|---|
| | 563 | function doStop() |
|---|
| | 564 | { |
|---|
| | 565 | getVLC("vlc").playlist.stop(); |
|---|
| | 566 | if( monitorTimerId != 0 ) |
|---|
| | 567 | { |
|---|
| | 568 | clearInterval(monitorTimerId); |
|---|
| | 569 | monitorTimerId = 0; |
|---|
| | 570 | } |
|---|
| | 571 | onStop(); |
|---|
| | 572 | }; |
|---|
| | 573 | |
|---|
| | 574 | function doPlaySlower() |
|---|
| | 575 | { |
|---|
| | 576 | var vlc = getVLC("vlc"); |
|---|
| | 577 | vlc.input.rate = vlc.input.rate / 2; |
|---|
| | 578 | }; |
|---|
| | 579 | |
|---|
| | 580 | function doPlayFaster() |
|---|
| | 581 | { |
|---|
| | 582 | var vlc = getVLC("vlc"); |
|---|
| | 583 | vlc.input.rate = vlc.input.rate * 2; |
|---|
| | 584 | }; |
|---|
| | 585 | |
|---|
| | 586 | /* events */ |
|---|
| | 587 | |
|---|
| | 588 | function onOpen() |
|---|
| | 589 | { |
|---|
| | 590 | document.getElementById("state").innerHTML = "Opening..."; |
|---|
| | 591 | document.getElementById("PlayOrPause").value = "Pause"; |
|---|
| | 592 | }; |
|---|
| | 593 | |
|---|
| | 594 | function onBuffer() |
|---|
| | 595 | { |
|---|
| | 596 | document.getElementById("state").innerHTML = "Buffering..."; |
|---|
| | 597 | document.getElementById("PlayOrPause").value = "Pause"; |
|---|
| | 598 | }; |
|---|
| | 599 | |
|---|
| 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 { |
|---|
| | 626 | function 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 | } |
|---|
| 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 | |
|---|
| | 661 | function onPause() |
|---|
| | 662 | { |
|---|
| | 663 | document.getElementById("state").innerHTML = "Paused..."; |
|---|
| | 664 | document.getElementById("PlayOrPause").value = " Play "; |
|---|
| | 665 | }; |
|---|
| | 666 | |
|---|
| | 667 | function 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 | |
|---|
| | 682 | function 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 | |
|---|
| | 705 | function onInputTrackerScrollStart() |
|---|
| | 706 | { |
|---|
| | 707 | inputTrackerScrolling = true; |
|---|
| | 708 | }; |
|---|
| | 709 | |
|---|
| | 710 | function onInputTrackerScrollEnd(inputTracker, value, pos) |
|---|
| | 711 | { |
|---|
| | 712 | inputTrackerScrolling = false; |
|---|
| | 713 | }; |
|---|
| | 714 | |
|---|
| | 715 | function 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 | } |
|---|