Commit a624aaeb authored by Jean-Paul Saman's avatar Jean-Paul Saman

mozilla: activex: update test.html

- use VLC MediaPlayer events
- use unix style EOL
parent 366cc4b9
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HTML>
<TITLE>VLC Plugin test page</TITLE> <TITLE>VLC Plugin test page</TITLE>
<STYLE>
<SCRIPT language="JavaScript"><!-- .inputTrackerInput {
function init() height:20;
{ width:30;
if( navigator.appName.indexOf("Microsoft Internet")==-1 ) font-family : Arial, Helvetica, sans-serif;
{ font-size : 12px;
onVLCPluginReady() }
} </STYLE>
else if( document.readyState == 'complete' )
{ <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>
onVLCPluginReady(); <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>
} <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>
else <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>
{
/* Explorer loads plugins asynchronously */ <SCRIPT language="JavaScript"><!--
document.onreadystatechange=function() function init()
{ {
if( document.readyState == 'complete' ) inputTracker = new Bs_Slider();
{ if (inputTracker)
onVLCPluginReady(); {
} inputTracker.attachOnChange(onInputTrackerChange);
} inputTracker.attachOnSlideStart(onInputTrackerScrollStart);
} inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);
} inputTracker.width = 530;
inputTracker.height = 15;
function getVLC(name) inputTracker.minVal = 0;
{ inputTracker.maxVal = 1.0;
if (window.document[name]) inputTracker.valueDefault = 0;
{ inputTracker.valueInterval = 1/530;
return window.document[name]; inputTracker.setDisabled(true);
} inputTracker.imgDir = 'blueshoes-4.5/javascript/components/slider/img/';
if (navigator.appName.indexOf("Microsoft Internet")==-1) inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');
{ inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);
if (document.embeds && document.embeds[name]) inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);
return document.embeds[name]; inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);
} inputTracker.useInputField = 0;
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) inputTracker.draw('inputTrackerDiv');
{ }
return document.getElementById(name);
} if( navigator.appName.indexOf("Microsoft Internet")==-1 )
} {
onVLCPluginReady()
function onVLCPluginReady() }
{ else if( document.readyState == 'complete' )
updateVolume(0); {
} onVLCPluginReady();
}
//--></SCRIPT> else
{
<BODY onLoad="init();"> /* Explorer loads plugins asynchronously */
<TABLE> document.onreadystatechange=function()
<TR><TD colspan="2"> {
MRL: if( document.readyState == 'complete' )
<INPUT size="90" id="targetTextField" value=""> {
<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);"> onVLCPluginReady();
<INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);"> }
</TD></TR> }
<TR><TD align="center" colspan="2"> }
<!-- }
Insert VideoLAN.VLCPlugin.2
--> function getVLC(name)
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" {
width="640" if (window.document[name])
height="480" {
id="vlc" return window.document[name];
events="True"> }
<param name="MRL" value="" /> if (navigator.appName.indexOf("Microsoft Internet")==-1)
<param name="ShowDisplay" value="True" /> {
<param name="AutoLoop" value="False" /> if (document.embeds && document.embeds[name])
<param name="AutoPlay" value="False" /> return document.embeds[name];
<param name="Volume" value="50" /> }
<param name="toolbar" value="true" /> else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
<param name="StartTime" value="0" /> {
<EMBED pluginspage="http://www.videolan.org" return document.getElementById(name);
type="application/x-vlc-plugin" }
version="VideoLAN.VLCPlugin.2" }
width="640"
height="480" function registerVLCEvent(event, handler)
toolbar="true" {
text="Waiting for video" var vlc = getVLC("vlc");
name="vlc">
</EMBED> if (vlc) {
</OBJECT> if (vlc.attachEvent) {
</TD></TR> // Microsoft
<TR><TD colspan="2"> vlc.attachEvent (event, handler);
<TABLE><TR> } else if (vlc.addEventListener) {
<TD valign="top" width="550"> // Mozilla: DOM level 2
<!-- vlc.addEventListener (event, handler, true);
Insert Slider widget } else {
--> // DOM level 0
</TD><TD width="15%"> eval("vlc.on" + event + " = handler");
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV> }
<DIV id="state" style="text-align:center">Stopped...</DIV> }
</TD></TR></TABLE> }
</TD></TR>
<TR><TD> function unregisterVLCEvent(event, handler)
<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'> {
<INPUT type=button value="Stop" onClick='doStop();'> var vlc = getVLC("vlc");
&nbsp;
<INPUT type=button value=" << " onClick='doPlaySlower();'> if (vlc) {
<INPUT type=button value="Reverse" onClick='doReverse();'> if (vlc.detachEvent) {
<INPUT type=button value=" >> " onClick='doPlayFaster();'> // Microsoft
&nbsp; vlc.detachEvent (event, handler);
<INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'> } else if (vlc.removeEventListener) {
<INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'> // Mozilla: DOM level 2
<INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'> vlc.removeEventListener (event, handler, true);
</TD><TD align="right"> } else {
<SPAN style="text-align:center">Volume:</SPAN> // DOM level 0
<INPUT type=button value=" - " onClick='updateVolume(-10)'> eval("vlc.on" + event + " = null");
<SPAN id="volumeTextField" style="text-align:center">--</SPAN> }
<INPUT type=button value=" + " onClick='updateVolume(+10)'> }
<INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'> }
</TD>
</TR> // JS VLC API callbacks
<TR><TD>Playlist: function handleMediaPlayerMediaChanged()
<INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'> {
<INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'> document.getElementById("info").innerHTML = "Media Changed";
<INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'> }
Aspect Ratio:
<SELECT readonly onChange='doAspectRatio(this.value)'> function handle_MediaPlayerNothingSpecial()
<OPTION value="default">Default</OPTION> {
<OPTION value="1:1">1:1</OPTION> document.getElementById("state").innerHTML = "Idle...";
<OPTION value="4:3">4:3</OPTION> }
<OPTION value="16:9">16:9</OPTION>
<OPTION value="221:100">221:100</OPTION> function handle_MediaPlayerOpening()
<OPTION value="5:4">5:4</OPTION> {
</SELECT> onOpen();
</TD><TD align="right"> }
<INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>
<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);"> function handle_MediaPlayerBuffering(val)
</TD> {
</TR> document.getElementById("info").innerHTML = val + "%";
<TR><TD>Audio Channel: }
<SELECT readonly onClick='doAudioChannel(this.value);'>
<OPTION value=1>Stereo</OPTION> function handle_MediaPlayerPlaying()
<OPTION value=2>Reverse Stereo</OPTION> {
<OPTION value=3>Left</OPTION> onPlay();
<OPTION value=4>Right</OPTION> }
<OPTION value=5>Dolby</OPTION>
</SELECT> function handle_MediaPlayerPaused()
</TD> {
<TD> onPause();
<INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'> }
</TD>
</TR> function handle_MediaPlayerStopped()
<TR><TD> Audio Track: {
<INPUT type=button value=" + " onClick='doAudioTrack(1);'> onStop();
<SPAN id="trackTextField" style="text-align:center">--</SPAN> }
<INPUT type=button value=" - " onClick='doAudioTrack(-1);'>
<INPUT type=button value="current track" onClick='alert(getVLC("vlc").audio.description(vlc.audio.track));'> function handle_MediaPlayerForward()
<INPUT type=button value="number of track" onClick='alert(getVLC("vlc").audio.count);'> {
</TD> document.getElementById("state").innerHTML = "Forward...";
<TD> }
<INPUT type=button value="set slider" onClick='doSetSlider();'>
<INPUT type=button value="get position" onClick='doGetPosition();'> function handle_MediaPlayerBackward()
</TD> {
</TR> document.getElementById("state").innerHTML = "Backward...";
<TR> }
<TD>Video Subtitle:
<INPUT type=button value=" + " onClick='doSubtitle(1);'> function handle_MediaPlayerEndReached()
<SPAN id="spuTextField" style="text-align:center">--</SPAN> {
<INPUT type=button value=" - " onClick='doSubtitle(-1);'> onEnd();
<INPUT type=button value="current subtitle" onClick='alert(getVLC("vlc").subtitle.description(vlc.subtitle.track));'> }
<INPUT type=button value="number of subtitle" onClick='alert(getVLC("vlc").subtitle.count);'>
</TD> function handle_MediaPlayerEncounteredError()
</TR> {
<TR> onError();
<TD>Deinterlacing: }
<INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>
<INPUT type=button value=" X " onClick='getVLC("vlc").video.deinterlace.enable("x");'> function handle_MediaPlayerTimeChanged(time)
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'> {
</TD> var vlc = getVLC("vlc");
</TR> var info = document.getElementById("info");
<TR> if( vlc )
<TD>Marquee video filter: {
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'> var mediaLen = vlc.input.length;
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'> if( mediaLen > 0 )
<INPUT size=4 value="" id="marqueeIntValue"> {
<SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);"> // seekable media
<OPTION value=1>Color</OPTION> info.innerHTML = formatTime(time)+"/"+formatTime(mediaLen);
<OPTION value=2>Opacity</OPTION> }
<OPTION value=3>Position</OPTION> }
<OPTION value=4>Refresh</OPTION> }
<OPTION value=5>Size</OPTION>
<OPTION value=6>Text</OPTION> function handle_MediaPlayerPositionChanged(val)
<OPTION value=7>Timeout</OPTION> {
<OPTION value=8>X</OPTION> // set javascript slider to correct position
<OPTION value=9>Y</OPTION> }
</SELECT>
</TD> function handle_MediaPlayerSeekableChanged(val)
{
setSeekable(val);
}
function handle_MediaPlayerPausableChanged(val)
{
setPauseable(val);
}
function handle_MediaPlayerTitleChanged(val)
{
//setTitle(val);
document.getElementById("info").innerHTML = "Title: " + val;
}
function handle_MediaPlayerLengthChanged(val)
{
//setMediaLength(val);
}
// VLC Plugin
function onVLCPluginReady()
{
registerVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
registerVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
registerVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
registerVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
registerVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
registerVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
registerVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
registerVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
registerVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
registerVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
registerVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
registerVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
registerVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
registerVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
registerVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
registerVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
registerVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
}
function close()
{
unregisterVLCEvent('MediaPlayerMouseGrab', handleMouseGrab);
unregisterVLCEvent('MediaPlayerMouseRelease', handleMouseRelease);
unregisterVLCEvent('MediaPlayerMouseClick', handleMouseClick);
unregisterVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
unregisterVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
unregisterVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
unregisterVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
unregisterVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
unregisterVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
unregisterVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
unregisterVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
unregisterVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
unregisterVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
unregisterVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
unregisterVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
unregisterVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
unregisterVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
unregisterVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
unregisterVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
unregisterVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
}
//--></SCRIPT>
<BODY onLoad="init();" onClose="close();>
<TABLE>
<TR><TD colspan="2">
MRL:
<INPUT size="90" id="targetTextField" value="">
<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">
<INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);">
</TD></TR>
<TR><TD align="center" colspan="2">
<!--
Insert VideoLAN.VLCPlugin.2
-->
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
width="640"
height="480"
id="vlc"
events="True">
<param name="MRL" value="" />
<param name="ShowDisplay" value="True" />
<param name="AutoLoop" value="False" />
<param name="AutoPlay" value="False" />
<param name="Volume" value="50" />
<param name="toolbar" value="true" />
<param name="StartTime" value="0" />
<EMBED pluginspage="http://www.videolan.org"
type="application/x-vlc-plugin"
version="VideoLAN.VLCPlugin.2"
width="640"
height="480"
toolbar="true"
text="Waiting for video"
name="vlc">
</EMBED>
</OBJECT>
</TD></TR>
<TR><TD colspan="2">
<TABLE><TR>
<TD valign="top" width="550">
<!--
Insert Slider widget
-->
<DIV id="inputTrackerDiv"</DIV>
</TD><TD width="15%">
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
<DIV id="state" style="text-align:center">Stopped...</DIV>
</TD></TR></TABLE>
</TD></TR>
<TR><TD>
<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>
<INPUT type=button value="Stop" onClick='doStop();'>
&nbsp;
<INPUT type=button value=" << " onClick='doPlaySlower();'>
<INPUT type=button value="Reverse" onClick='doReverse();'>
<INPUT type=button value=" >> " onClick='doPlayFaster();'>
&nbsp;
<INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'>
<INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'>
<INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'>
</TD><TD align="right">
<SPAN style="text-align:center">Volume:</SPAN>
<INPUT type=button value=" - " onClick='updateVolume(-10)'>
<SPAN id="volumeTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" + " onClick='updateVolume(+10)'>
<INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'>
</TD>
</TR>
<TR><TD>Playlist:
<INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'>
<INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'>
<INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'>
Aspect Ratio:
<SELECT readonly onChange='doAspectRatio(this.value)'>
<OPTION value="default">Default</OPTION>
<OPTION value="1:1">1:1</OPTION>
<OPTION value="4:3">4:3</OPTION>
<OPTION value="16:9">16:9</OPTION>
<OPTION value="221:100">221:100</OPTION>
<OPTION value="5:4">5:4</OPTION>
</SELECT>
</TD><TD align="right">
<INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>
<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">
</TD>
</TR>
<TR><TD>Audio Channel:
<SELECT readonly onClick='doAudioChannel(this.value);'>
<OPTION value=1>Stereo</OPTION>
<OPTION value=2>Reverse Stereo</OPTION>
<OPTION value=3>Left</OPTION>
<OPTION value=4>Right</OPTION>
<OPTION value=5>Dolby</OPTION>
</SELECT>
</TD>
<TD>
<INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'>
</TD>
</TR>
<TR><TD> Audio Track:
<INPUT type=button value=" + " onClick='doAudioTrack(1);'>
<SPAN id="trackTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" - " onClick='doAudioTrack(-1);'>
<INPUT type=button value="current track" onClick='alert(getVLC("vlc").audio.description(vlc.audio.track));'>
<INPUT type=button value="number of track" onClick='alert(getVLC("vlc").audio.count);'>
</TD>
<TD>
<INPUT type=button value="set slider" onClick='doSetSlider();'>
<INPUT type=button value="get position" onClick='doGetPosition();'>
</TD>
</TR>
<TR>
<TD>Video Subtitle:
<INPUT type=button value=" + " onClick='doSubtitle(1);'>
<SPAN id="spuTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" - " onClick='doSubtitle(-1);'>
<INPUT type=button value="current subtitle" onClick='alert(getVLC("vlc").subtitle.description(vlc.subtitle.track));'>
<INPUT type=button value="number of subtitle" onClick='alert(getVLC("vlc").subtitle.count);'>
</TD>
</TR>
<TR>
<TD>Deinterlacing:
<INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>
<INPUT type=button value=" X " onClick='getVLC("vlc").video.deinterlace.enable("x");'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'>
</TD>
</TR>
<TR>
<TD>Marquee video filter:
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'>
<INPUT size=4 value="" id="marqueeIntValue">
<SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);">
<OPTION value=1>Color</OPTION>
<OPTION value=2>Opacity</OPTION>
<OPTION value=3>Position</OPTION>
<OPTION value=4>Refresh</OPTION>
<OPTION value=5>Size</OPTION>
<OPTION value=6>Text</OPTION>
<OPTION value=7>Timeout</OPTION>
<OPTION value=8>X</OPTION>
<OPTION value=9>Y</OPTION>
</SELECT>
</TD>
</TR> </TR>
<TR> <TR>
<TD>Logo video filter: <TD>Logo video filter:
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'> <INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'> <INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'>
<INPUT size=4 value="" id="logoIntValue"> <INPUT size=4 value="" id="logoIntValue">
<SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);"> <SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);">
<OPTION value=1>File</OPTION> <OPTION value=1>File</OPTION>
<OPTION value=2>Position</OPTION> <OPTION value=2>Position</OPTION>
<OPTION value=3>Opacity</OPTION> <OPTION value=3>Opacity</OPTION>
<OPTION value=4>Repeat</OPTION> <OPTION value=4>Repeat</OPTION>
<OPTION value=5>Delay</OPTION> <OPTION value=5>Delay</OPTION>
<OPTION value=6>X</OPTION> <OPTION value=6>X</OPTION>
<OPTION value=7>Y</OPTION> <OPTION value=7>Y</OPTION>
</SELECT> </SELECT>
</TD> </TD>
</TR> </TR>
<TR> <TR>
<TD> <TD>
<INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'> <INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'>
Teletext page: Teletext page:
<INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'> <INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<SCRIPT language="javascript"> <SCRIPT language="javascript">
<!-- <!--
var rate = 0; var rate = 0;
var prevState = 0; var prevState = 0;
var telxState = false; var monitorTimerId = 0;
var inputTracker;
function doSetSlider() var inputTrackerScrolling = false;
{ var inputTrackerIgnoreChange = false;
var vlc = getVLC("vlc"); var telxState = false;
var canPause = true;
// set slider to new position var canSeek = true;
if( vlc )
vlc.input.time = (vlc.input.length/2); function setPauseable(val)
} {
canPause = val;
function doGetPosition() }
{
var vlc = getVLC("vlc"); function setSeekable(val)
{
// set slider to new position canSeek = val;
if (vlc) }
alert( "position is " + vlc.input.time);
} function doSetSlider()
{
function doReverse(rate) var vlc = getVLC("vlc");
{
var vlc = getVLC("vlc"); // set slider to new position
if( vlc ) if( vlc )
vlc.input.rate = -1.0 * vlc.input.rate; vlc.input.time = (vlc.input.length/2);
} }
function doAudioChannel(value) function doGetPosition()
{ {
var vlc = getVLC("vlc"); var vlc = getVLC("vlc");
if( vlc )
vlc.audio.channel = parseInt(value); // set slider to new position
} if (vlc)
alert( "position is " + vlc.input.time);
function doAudioTrack(value) }
{
var vlc = getVLC("vlc"); function doReverse(rate)
if( vlc ) {
{ var vlc = getVLC("vlc");
vlc.audio.track = vlc.audio.track + value; if( vlc )
document.getElementById("trackTextField").innerHTML = vlc.audio.track; vlc.input.rate = -1.0 * vlc.input.rate;
} }
}
function doAudioChannel(value)
function doAspectRatio(value) {
{ var vlc = getVLC("vlc");
var vlc = getVLC("vlc"); if( vlc )
if( vlc ) vlc.audio.channel = parseInt(value);
vlc.video.aspectRatio = value; }
}
function doAudioTrack(value)
function doSubtitle(value) {
{ var vlc = getVLC("vlc");
var vlc = getVLC("vlc"); if( vlc )
if( vlc ) {
{ vlc.audio.track = vlc.audio.track + value;
vlc.subtitle.track = vlc.subtitle.track + value; document.getElementById("trackTextField").innerHTML = vlc.audio.track;
document.getElementById("spuTextField").innerHTML = vlc.subtitle.track; }
} }
}
function doAspectRatio(value)
function doTelxPage(value) {
{ var vlc = getVLC("vlc");
var vlc = getVLC("vlc"); if( vlc )
if( vlc ) vlc.video.aspectRatio = value;
vlc.video.teletext = parseInt(value); }
}
function doSubtitle(value)
function doToggleTeletext() {
{ var vlc = getVLC("vlc");
var vlc = getVLC("vlc"); if( vlc )
{
if( vlc ) vlc.subtitle.track = vlc.subtitle.track + value;
{ document.getElementById("spuTextField").innerHTML = vlc.subtitle.track;
vlc.video.toggleTeletext(); }
if (telxState) }
{
document.getElementById("telx").innerHTML = "Teletext on"; function doTelxPage(value)
telxState = true; {
} var vlc = getVLC("vlc");
else if( vlc )
{ vlc.video.teletext = parseInt(value);
document.getElementById("telx").innerHTML = "Teletext off"; }
telxState = false;
} function doToggleTeletext()
} {
} var vlc = getVLC("vlc");
function doItemCount() if( vlc )
{ {
var vlc = getVLC("vlc"); vlc.video.toggleTeletext();
if( vlc ) if (telxState)
{ {
var count = vlc.playlist.items.count; document.getElementById("telx").innerHTML = "Teletext on";
document.getElementById("itemCount").value = " Items " + count + " "; telxState = true;
} }
} else
{
function doRemoveItem(item) document.getElementById("telx").innerHTML = "Teletext off";
{ telxState = false;
var vlc = getVLC("vlc"); }
if( vlc ) }
vlc.playlist.items.remove(item); }
}
function doItemCount()
function doPlaylistClearAll() {
{ var vlc = getVLC("vlc");
var vlc = getVLC("vlc"); if( vlc )
if( vlc ) {
{ var count = vlc.playlist.items.count;
vlc.playlist.items.clear(); document.getElementById("itemCount").value = " Items " + count + " ";
while( vlc.playlist.items.count > 0) }
{ }
// wait till playlist empties.
} function doRemoveItem(item)
doItemCount(); {
} var vlc = getVLC("vlc");
} if( vlc )
vlc.playlist.items.remove(item);
function updateVolume(deltaVol) }
{
var vlc = getVLC("vlc"); function doPlaylistClearAll()
if( vlc ) {
{ var vlc = getVLC("vlc");
vlc.audio.volume += deltaVol; if( vlc )
document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%"; {
} vlc.playlist.items.clear();
} while( vlc.playlist.items.count > 0)
{
function formatTime(timeVal) // wait till playlist empties.
{ }
if( typeof timeVal != 'number' ) doItemCount();
return "-:--:--"; }
}
var timeHour = Math.round(timeVal / 1000);
var timeSec = timeHour % 60; function updateVolume(deltaVol)
if( timeSec < 10 ) {
timeSec = '0'+timeSec; var vlc = getVLC("vlc");
timeHour = (timeHour - timeSec)/60; if( vlc )
var timeMin = timeHour % 60; {
if( timeMin < 10 ) vlc.audio.volume += deltaVol;
timeMin = '0'+timeMin; document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";
timeHour = (timeHour - timeMin)/60; }
if( timeHour > 0 ) }
return timeHour+":"+timeMin+":"+timeSec;
else function formatTime(timeVal)
return timeMin+":"+timeSec; {
} if( typeof timeVal != 'number' )
return "-:--:--";
function doState()
{ var timeHour = Math.round(timeVal / 1000);
var vlc = getVLC("vlc"); var timeSec = timeHour % 60;
var newState = 0; if( timeSec < 10 )
timeSec = '0'+timeSec;
if( vlc ) timeHour = (timeHour - timeSec)/60;
newState = vlc.input.state; var timeMin = timeHour % 60;
if( timeMin < 10 )
if( newState == 0 ) timeMin = '0'+timeMin;
{ timeHour = (timeHour - timeMin)/60;
// current media has stopped if( timeHour > 0 )
onEnd(); return timeHour+":"+timeMin+":"+timeSec;
} else
else if( newState == 1 ) return timeMin+":"+timeSec;
{ }
// current media is openning/connecting
onOpen(); function doState()
} {
else if( newState == 2 ) var vlc = getVLC("vlc");
{ var newState = 0;
// current media is buffering data
onBuffer(); if( vlc )
} newState = vlc.input.state;
else if( newState == 3 )
{ if( newState == 0 )
// current media is now playing {
onPlay(); // current media has stopped
} onEnd();
else if( newState == 4 ) }
{ else if( newState == 1 )
// current media is now paused {
onPause(); // current media is openning/connecting
} onOpen();
else if( newState == 5 ) }
{ else if( newState == 2 )
// current media has stopped {
onStop(); // current media is buffering data
} onBuffer();
else if( newState == 6 ) }
{ else if( newState == 3 )
// current media has ended {
onEnd(); // current media is now playing
} onPlay();
else if( newState == 7 ) }
{ else if( newState == 4 )
// current media encountered error {
onError(); // current media is now paused
} onPause();
} }
else if( newState == 5 )
function monitor() {
{ // current media has stopped
var vlc = getVLC("vlc"); onStop();
var newState = 0; }
else if( newState == 6 )
if( vlc ) {
{ // current media has ended
newState = vlc.input.state; onEnd();
} }
else if( newState == 7 )
if( prevState != newState ) {
{ // current media encountered error
if( newState == 0 ) onError();
{ }
// current media has stopped }
onEnd();
} function monitor()
else if( newState == 1 ) {
{ var vlc = getVLC("vlc");
// current media is openning/connecting var newState = 0;
onOpen();
} if( vlc )
else if( newState == 2 ) {
{ newState = vlc.input.state;
// current media is buffering data }
onBuffer();
} if( prevState != newState )
else if( newState == 3 ) {
{ if( newState == 0 )
// current media is now playing {
onPlay(); // current media has stopped
} onEnd();
else if( newState == 4 ) }
{ else if( newState == 1 )
// current media is now paused {
onPause(); // current media is openning/connecting
} onOpen();
else if( newState == 5 ) }
{ else if( newState == 2 )
// current media has stopped {
onStop(); // current media is buffering data
} onBuffer();
else if( newState == 6 ) }
{ else if( newState == 3 )
// current media has ended {
onEnd(); // current media is now playing
} onPlay();
else if( newState == 7 ) }
{ else if( newState == 4 )
// current media encountered error {
onError(); // current media is now paused
} onPause();
prevState = newState; }
} else if( newState == 5 )
else if( newState == 3 ) {
{ // current media has stopped
// current media is playing onStop();
onPlaying(); }
} else if( newState == 6 )
}; {
// current media has ended
/* actions */ onEnd();
}
function doGo(targetURL) else if( newState == 7 )
{ {
var vlc = getVLC("vlc"); // current media encountered error
onError();
if( vlc ) }
{ prevState = newState;
vlc.playlist.items.clear(); }
while( vlc.playlist.items.count > 0 ) else if( newState == 3 )
{ {
// clear() may return before the playlist has actually been cleared // current media is playing
// just wait for it to finish its job onPlaying();
} }
var options = [":rtsp-tcp"]; if( monitorTimerId == 0 )
var itemId = vlc.playlist.add(targetURL,"",options); {
options = []; monitorTimerId = setInterval("monitor()", 1000);
if( itemId != -1 ) }
{ };
// play MRL
vlc.playlist.playItem(itemId); /* actions */
monitor();
} function doGo(targetURL)
else {
{ var vlc = getVLC("vlc");
alert("cannot play at the moment !");
} if( vlc )
doItemCount(); {
} vlc.playlist.items.clear();
} while( vlc.playlist.items.count > 0 )
{
function doAdd(targetURL) // clear() may return before the playlist has actually been cleared
{ // just wait for it to finish its job
var vlc = getVLC("vlc"); }
var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"]; var options = [":rtsp-tcp"];
if( vlc ) var itemId = vlc.playlist.add(targetURL,"",options);
{ options = [];
vlc.playlist.add(targetURL, "", options); if( itemId != -1 )
options = []; {
doItemCount(); // play MRL
} vlc.playlist.playItem(itemId);
} if( monitorTimerId == 0 )
{
function doPlayOrPause() monitor();
{ }
var vlc = getVLC("vlc"); }
if( vlc ) else
{ {
if( vlc.playlist.isPlaying ) alert("cannot play at the moment !");
{ }
vlc.playlist.togglePause(); doItemCount();
monitor(); }
} }
else if( vlc.playlist.items.count > 0 )
{ function doAdd(targetURL)
vlc.playlist.play(); {
monitor(); var vlc = getVLC("vlc");
} var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"];
else if( vlc )
{ {
alert('nothing to play !'); vlc.playlist.add(targetURL, "", options);
} options = [];
} doItemCount();
} }
}
function doStop()
{ function doPlayOrPause()
var vlc = getVLC("vlc"); {
var vlc = getVLC("vlc");
if( vlc ) if( vlc )
vlc.playlist.stop(); {
if( vlc.playlist.isPlaying && canPause )
onStop(); {
} vlc.playlist.togglePause();
//monitor();
function doPlaySlower() }
{ else if( vlc.playlist.items.count > 0 )
var vlc = getVLC("vlc"); {
if( vlc ) vlc.playlist.play();
vlc.input.rate = vlc.input.rate / 2; //monitor();
} }
else
function doPlayFaster() {
{ alert('nothing to play !');
var vlc = getVLC("vlc"); }
if( vlc ) }
vlc.input.rate = vlc.input.rate * 2; }
}
function doStop()
/* events */ {
var vlc = getVLC("vlc");
function onOpen()
{ if( vlc )
document.getElementById("state").innerHTML = "Opening..."; vlc.playlist.stop();
document.getElementById("PlayOrPause").value = "Pause";
} if( monitorTimerId != 0 )
{
function onBuffer() clearInterval(monitorTimerId);
{ monitorTimerId = 0;
document.getElementById("state").innerHTML = "Buffering..."; }
document.getElementById("PlayOrPause").value = "Pause"; onStop();
} }
function onPlay() function doPlaySlower()
{ {
document.getElementById("state").innerHTML = "Playing..."; var vlc = getVLC("vlc");
document.getElementById("PlayOrPause").value = "Pause"; if( vlc )
onPlaying(); vlc.input.rate = vlc.input.rate / 2;
} }
function onEnd() function doPlayFaster()
{ {
document.getElementById("state").innerHTML = "End..."; var vlc = getVLC("vlc");
doStop(); if( vlc )
} vlc.input.rate = vlc.input.rate * 2;
}
var liveFeedText = ["Live", "((Live))", "(( Live ))", "(( Live ))"];
var liveFeedRoll = 0; function doMarqueeOption(option, value)
{
function onPlaying() var vlc = getVLC("vlc");
{ val = parseInt(value);
var vlc = getVLC("vlc"); if( vlc )
var info = document.getElementById("info"); {
if( vlc ) if (option == 1)
{ vlc.video.marquee.color = val;
var mediaLen = vlc.input.length; if (option == 2)
if( mediaLen > 0 ) vlc.video.marquee.opacity = val;
{ if (option == 3)
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen); vlc.video.marquee.position = value;
} if (option == 4)
else vlc.video.marquee.refresh = val;
{ if (option == 5)
// non-seekable "live" media vlc.video.marquee.size = val;
liveFeedRoll = liveFeedRoll & 3; if (option == 6)
info.innerHTML = liveFeedText[liveFeedRoll++]; vlc.video.marquee.text = value;
} if (option == 7)
} vlc.video.marquee.timeout = val;
} if (option == 8)
} vlc.video.marquee.x = val;
if (option == 9)
function onPause() vlc.video.marquee.y = val;
{ }
document.getElementById("state").innerHTML = "Paused..."; }
document.getElementById("PlayOrPause").value = " Play ";
} function doLogoOption(option, value)
{
function onStop() var vlc = getVLC("vlc");
{ if( vlc )
document.getElementById("info").innerHTML = "-:--:--/-:--:--"; {
document.getElementById("state").innerHTML = "Stopped..."; if (option == 1)
document.getElementById("PlayOrPause").value = " Play "; vlc.video.logo.file(value);
} if (option == 2)
vlc.video.logo.position = value;
function onError() val = parseInt(value);
{ if (option == 3)
document.getElementById("state").innerHTML = "Error..."; vlc.video.logo.opacity = val;
} if (option == 4)
vlc.video.logo.repeat = val;
function doMarqueeOption(option, value) if (option == 5)
{ vlc.video.logo.delay = val;
var vlc = getVLC("vlc"); if (option == 6)
val = parseInt(value); vlc.video.logo.x = val;
if( vlc ) if (option == 7)
{ vlc.video.logo.y = val;
if (option == 1) }
vlc.video.marquee.color = val; }
if (option == 2)
vlc.video.marquee.opacity = val; /* events */
if (option == 3)
vlc.video.marquee.position = value; function onOpen()
if (option == 4) {
vlc.video.marquee.refresh = val; document.getElementById("state").innerHTML = "Opening...";
if (option == 5) document.getElementById("PlayOrPause").value = "Pause";
vlc.video.marquee.size = val; }
if (option == 6)
vlc.video.marquee.text = value; function onBuffer()
if (option == 7) {
vlc.video.marquee.timeout = val; document.getElementById("state").innerHTML = "Buffering...";
if (option == 8) document.getElementById("PlayOrPause").value = "Pause";
vlc.video.marquee.x = val; }
if (option == 9)
vlc.video.marquee.y = val; function onPlay()
} {
} document.getElementById("state").innerHTML = "Playing...";
document.getElementById("PlayOrPause").value = "Pause";
function doLogoOption(option, value) onPlaying();
{ }
var vlc = getVLC("vlc");
if( vlc ) function onEnd()
{ {
if (option == 1) document.getElementById("state").innerHTML = "End...";
vlc.video.logo.file(value); }
if (option == 2)
vlc.video.logo.position = value; var liveFeedText = ["Live", "((Live))", "(( Live ))", "(( Live ))"];
val = parseInt(value); var liveFeedRoll = 0;
if (option == 3)
vlc.video.logo.opacity = val; function onPlaying()
if (option == 4) {
vlc.video.logo.repeat = val; if( !inputTrackerScrolling )
if (option == 5) {
vlc.video.logo.delay = val; var vlc = getVLC("vlc");
if (option == 6) var info = document.getElementById("info");
vlc.video.logo.x = val; if( vlc )
if (option == 7) {
vlc.video.logo.y = val; var mediaLen = vlc.input.length;
} inputTrackerIgnoreChange = true;
} if( mediaLen > 0 )
{
//--> // seekable media
</SCRIPT> if( inputTracker )
</BODY> {
</HTML> if( inputTracker.maxVal == 1.0 )
{
inputTracker.setDisabled(false);
inputTracker.maxVal = 1.0;
}
inputTracker.setValue(vlc.input.position);
}
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);
}
else
{
// non-seekable "live" media
if( inputTracker )
{
if( inputTracker.maxVal != 0.0 )
{
inputTracker.maxVal = 0.0;
inputTracker.setValue(0.0);
inputTracker.setDisabled(true);
}
}
liveFeedRoll = liveFeedRoll & 3;
info.innerHTML = liveFeedText[liveFeedRoll++];
}
inputTrackerIgnoreChange = false;
}
}
}
function onPause()
{
document.getElementById("state").innerHTML = "Paused...";
document.getElementById("PlayOrPause").value = " Play ";
}
function onStop()
{
var vlc = getVLC("vlc");
if( inputTracker )
{
if( !inputTracker.disabled )
{
inputTracker.setValue(inputTracker.minVal);
inputTracker.setDisabled(true);
}
}
document.getElementById("info").innerHTML = "-:--:--/-:--:--";
document.getElementById("state").innerHTML = "Stopped...";
document.getElementById("PlayOrPause").value = " Play ";
}
function onError()
{
var vlc = getVLC("vlc");
document.getElementById("state").innerHTML = "Error...";
}
function onInputTrackerScrollStart()
{
inputTrackerScrolling = true;
}
function onInputTrackerScrollEnd(inputTracker, value, pos)
{
inputTrackerScrolling = false;
}
function onInputTrackerChange(inputTracker, value, pos)
{
if( !inputTrackerIgnoreChange )
{
var vlc = getVLC("vlc");
if( vlc )
{
if( (vlc.input.state == 3) && (vlc.input.position != value) )
{
var info = document.getElementById("info");
vlc.input.position = value;
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
}
}
}
}
//-->
</SCRIPT>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HTML>
<TITLE>VLC Plugin test page</TITLE> <TITLE>VLC Plugin test page</TITLE>
<STYLE> <STYLE>
.inputTrackerInput { .inputTrackerInput {
height:20; height:20;
width:30; width:30;
font-family : Arial, Helvetica, sans-serif; font-family : Arial, Helvetica, sans-serif;
font-size : 12px; font-size : 12px;
} }
</STYLE> </STYLE>
<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT> <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>
<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT> <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>
<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT> <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>
<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT> <SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>
<SCRIPT language="JavaScript"><!-- <SCRIPT language="JavaScript"><!--
function init() function init()
{ {
inputTracker = new Bs_Slider(); inputTracker = new Bs_Slider();
if (inputTracker) if (inputTracker)
{ {
inputTracker.attachOnChange(onInputTrackerChange); inputTracker.attachOnChange(onInputTrackerChange);
inputTracker.attachOnSlideStart(onInputTrackerScrollStart); inputTracker.attachOnSlideStart(onInputTrackerScrollStart);
inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd); inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);
inputTracker.width = 530 ; inputTracker.width = 530;
inputTracker.height = 15; inputTracker.height = 15;
inputTracker.minVal = 0; inputTracker.minVal = 0;
inputTracker.maxVal = 1.0; inputTracker.maxVal = 1.0;
inputTracker.valueDefault = 0; inputTracker.valueDefault = 0;
inputTracker.valueInterval = 1/530; inputTracker.valueInterval = 1/530;
inputTracker.setDisabled(true); inputTracker.setDisabled(true);
inputTracker.imgDir = 'blueshoes-4.5/javascript/components/slider/img/'; inputTracker.imgDir = 'blueshoes-4.5/javascript/components/slider/img/';
inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat'); inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');
inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19); inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);
inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19); inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);
inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19); inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);
inputTracker.useInputField = 0; inputTracker.useInputField = 0;
inputTracker.draw('inputTrackerDiv'); inputTracker.draw('inputTrackerDiv');
} }
if( navigator.appName.indexOf("Microsoft Internet")==-1 ) if( navigator.appName.indexOf("Microsoft Internet")==-1 )
{ {
onVLCPluginReady() onVLCPluginReady()
} }
else if( document.readyState == 'complete' ) else if( document.readyState == 'complete' )
{ {
onVLCPluginReady(); onVLCPluginReady();
} }
else else
{ {
/* Explorer loads plugins asynchronously */ /* Explorer loads plugins asynchronously */
document.onreadystatechange=function() document.onreadystatechange=function()
{ {
if( document.readyState == 'complete' ) if( document.readyState == 'complete' )
{ {
onVLCPluginReady(); onVLCPluginReady();
} }
} }
} }
} }
function getVLC(name) function getVLC(name)
{ {
if (window.document[name]) if (window.document[name])
{ {
return window.document[name]; return window.document[name];
} }
if (navigator.appName.indexOf("Microsoft Internet")==-1) if (navigator.appName.indexOf("Microsoft Internet")==-1)
{ {
if (document.embeds && document.embeds[name]) if (document.embeds && document.embeds[name])
return document.embeds[name]; return document.embeds[name];
} }
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{ {
return document.getElementById(name); return document.getElementById(name);
} }
} }
function onVLCPluginReady() function registerVLCEvent(event, handler)
{ {
updateVolume(0); var vlc = getVLC("vlc");
}
if (vlc) {
//--></SCRIPT> if (vlc.attachEvent) {
// Microsoft
<BODY onLoad="init();"> vlc.attachEvent (event, handler);
<TABLE> } else if (vlc.addEventListener) {
<TR><TD colspan="2"> // Mozilla: DOM level 2
MRL: vlc.addEventListener (event, handler, true);
<INPUT size="90" id="targetTextField" value=""> } else {
<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);"> // DOM level 0
<INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);"> eval("vlc.on" + event + " = handler");
</TD></TR> }
<TR><TD align="center" colspan="2"> }
<!-- }
Insert VideoLAN.VLCPlugin.2
--> function unregisterVLCEvent(event, handler)
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" {
width="640" var vlc = getVLC("vlc");
height="480"
id="vlc" if (vlc) {
events="True"> if (vlc.detachEvent) {
<param name="MRL" value="" /> // Microsoft
<param name="ShowDisplay" value="True" /> vlc.detachEvent (event, handler);
<param name="AutoLoop" value="False" /> } else if (vlc.removeEventListener) {
<param name="AutoPlay" value="False" /> // Mozilla: DOM level 2
<param name="Volume" value="50" /> vlc.removeEventListener (event, handler, true);
<param name="toolbar" value="true" /> } else {
<param name="StartTime" value="0" /> // DOM level 0
<EMBED pluginspage="http://www.videolan.org" eval("vlc.on" + event + " = null");
type="application/x-vlc-plugin" }
version="VideoLAN.VLCPlugin.2" }
width="640" }
height="480"
toolbar="true" // JS VLC API callbacks
text="Waiting for video" function handleMediaPlayerMediaChanged()
name="vlc"> {
</EMBED> document.getElementById("info").innerHTML = "Media Changed";
</OBJECT> }
</TD></TR>
<TR><TD colspan="2"> function handle_MediaPlayerNothingSpecial()
<TABLE><TR> {
<TD valign="top" width="550"> document.getElementById("state").innerHTML = "Idle...";
<!-- }
Insert Slider widget
--> function handle_MediaPlayerOpening()
<DIV id="inputTrackerDiv"</DIV> {
</TD><TD width="15%"> onOpen();
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV> }
<DIV id="state" style="text-align:center">Stopped...</DIV>
</TD></TR></TABLE> function handle_MediaPlayerBuffering(val)
</TD></TR> {
<TR><TD> document.getElementById("info").innerHTML = val + "%";
<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'> }
<INPUT type=button value="Stop" onClick='doStop();'>
&nbsp; function handle_MediaPlayerPlaying()
<INPUT type=button value=" << " onClick='doPlaySlower();'> {
<INPUT type=button value="Reverse" onClick='doReverse();'> onPlay();
<INPUT type=button value=" >> " onClick='doPlayFaster();'> }
&nbsp;
<INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'> function handle_MediaPlayerPaused()
<INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'> {
<INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'> onPause();
</TD><TD align="right"> }
<SPAN style="text-align:center">Volume:</SPAN>
<INPUT type=button value=" - " onClick='updateVolume(-10)'> function handle_MediaPlayerStopped()
<SPAN id="volumeTextField" style="text-align:center">--</SPAN> {
<INPUT type=button value=" + " onClick='updateVolume(+10)'> onStop();
<INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'> }
</TD>
</TR> function handle_MediaPlayerForward()
<TR><TD>Playlist: {
<INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'> document.getElementById("state").innerHTML = "Forward...";
<INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'> }
<INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'>
Aspect Ratio: function handle_MediaPlayerBackward()
<SELECT readonly onChange='doAspectRatio(this.value)'> {
<OPTION value="default">Default</OPTION> document.getElementById("state").innerHTML = "Backward...";
<OPTION value="1:1">1:1</OPTION> }
<OPTION value="4:3">4:3</OPTION>
<OPTION value="16:9">16:9</OPTION> function handle_MediaPlayerEndReached()
<OPTION value="221:100">221:100</OPTION> {
<OPTION value="5:4">5:4</OPTION> onEnd();
</SELECT> }
</TD><TD align="right">
<INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'> function handle_MediaPlayerEncounteredError()
<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);"> {
</TD> onError();
</TR> }
<TR><TD>Audio Channel:
<SELECT readonly onClick='doAudioChannel(this.value);'> function handle_MediaPlayerTimeChanged(time)
<OPTION value=1>Stereo</OPTION> {
<OPTION value=2>Reverse Stereo</OPTION> var vlc = getVLC("vlc");
<OPTION value=3>Left</OPTION> var info = document.getElementById("info");
<OPTION value=4>Right</OPTION> if( vlc )
<OPTION value=5>Dolby</OPTION> {
</SELECT> var mediaLen = vlc.input.length;
</TD> if( mediaLen > 0 )
<TD> {
<INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'> // seekable media
</TD> info.innerHTML = formatTime(time)+"/"+formatTime(mediaLen);
</TR> }
<TR><TD> Audio Track: }
<INPUT type=button value=" + " onClick='doAudioTrack(1);'> }
<SPAN id="trackTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" - " onClick='doAudioTrack(-1);'> function handle_MediaPlayerPositionChanged(val)
<INPUT type=button value="current track" onClick='alert(getVLC("vlc").audio.description(vlc.audio.track));'> {
<INPUT type=button value="number of track" onClick='alert(getVLC("vlc").audio.count);'> // set javascript slider to correct position
</TD> }
<TD>
<INPUT type=button value="set slider" onClick='doSetSlider();'> function handle_MediaPlayerSeekableChanged(val)
<INPUT type=button value="get position" onClick='doGetPosition();'> {
</TD> setSeekable(val);
</TR> }
<TR>
<TD>Video Subtitle: function handle_MediaPlayerPausableChanged(val)
<INPUT type=button value=" + " onClick='doSubtitle(1);'> {
<SPAN id="spuTextField" style="text-align:center">--</SPAN> setPauseable(val);
<INPUT type=button value=" - " onClick='doSubtitle(-1);'> }
<INPUT type=button value="current subtitle" onClick='alert(getVLC("vlc").subtitle.description(vlc.subtitle.track));'>
<INPUT type=button value="number of subtitle" onClick='alert(getVLC("vlc").subtitle.count);'> function handle_MediaPlayerTitleChanged(val)
</TD> {
</TR> //setTitle(val);
<TR> document.getElementById("info").innerHTML = "Title: " + val;
<TD>Deinterlacing: }
<INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>
<INPUT type=button value=" X " onClick='getVLC("vlc").video.deinterlace.enable("x");'> function handle_MediaPlayerLengthChanged(val)
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'> {
</TD> //setMediaLength(val);
</TR> }
<TR>
<TD>Marquee video filter: // VLC Plugin
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'> function onVLCPluginReady()
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'> {
<INPUT size=4 value="" id="marqueeIntValue"> registerVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
<SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);"> registerVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
<OPTION value=1>Color</OPTION> registerVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
<OPTION value=2>Opacity</OPTION> registerVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
<OPTION value=3>Position</OPTION> registerVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
<OPTION value=4>Refresh</OPTION> registerVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
<OPTION value=5>Size</OPTION> registerVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
<OPTION value=6>Text</OPTION> registerVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
<OPTION value=7>Timeout</OPTION> registerVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
<OPTION value=8>X</OPTION> registerVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
<OPTION value=9>Y</OPTION> registerVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
</SELECT> registerVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
</TD> registerVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
registerVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
registerVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
registerVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
registerVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
}
function close()
{
unregisterVLCEvent('MediaPlayerMouseGrab', handleMouseGrab);
unregisterVLCEvent('MediaPlayerMouseRelease', handleMouseRelease);
unregisterVLCEvent('MediaPlayerMouseClick', handleMouseClick);
unregisterVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
unregisterVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
unregisterVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
unregisterVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
unregisterVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
unregisterVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
unregisterVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
unregisterVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
unregisterVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
unregisterVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
unregisterVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
unregisterVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
unregisterVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
unregisterVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
unregisterVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
unregisterVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
unregisterVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
}
//--></SCRIPT>
<BODY onLoad="init();" onClose="close();">
<TABLE>
<TR><TD colspan="2">
MRL:
<INPUT size="90" id="targetTextField" value="">
<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">
<INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);">
</TD></TR>
<TR><TD align="center" colspan="2">
<!--
Insert VideoLAN.VLCPlugin.2
-->
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
width="640"
height="480"
id="vlc"
events="True">
<param name="MRL" value="" />
<param name="ShowDisplay" value="True" />
<param name="AutoLoop" value="False" />
<param name="AutoPlay" value="False" />
<param name="Volume" value="50" />
<param name="toolbar" value="true" />
<param name="StartTime" value="0" />
<EMBED pluginspage="http://www.videolan.org"
type="application/x-vlc-plugin"
version="VideoLAN.VLCPlugin.2"
width="640"
height="480"
toolbar="true"
text="Waiting for video"
name="vlc">
</EMBED>
</OBJECT>
</TD></TR>
<TR><TD colspan="2">
<TABLE><TR>
<TD valign="top" width="550">
<!--
Insert Slider widget
-->
<DIV id="inputTrackerDiv"</DIV>
</TD><TD width="15%">
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
<DIV id="state" style="text-align:center">Stopped...</DIV>
</TD></TR></TABLE>
</TD></TR>
<TR><TD>
<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>
<INPUT type=button value="Stop" onClick='doStop();'>
&nbsp;
<INPUT type=button value=" << " onClick='doPlaySlower();'>
<INPUT type=button value="Reverse" onClick='doReverse();'>
<INPUT type=button value=" >> " onClick='doPlayFaster();'>
&nbsp;
<INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'>
<INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'>
<INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'>
</TD><TD align="right">
<SPAN style="text-align:center">Volume:</SPAN>
<INPUT type=button value=" - " onClick='updateVolume(-10)'>
<SPAN id="volumeTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" + " onClick='updateVolume(+10)'>
<INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'>
</TD>
</TR>
<TR><TD>Playlist:
<INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'>
<INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'>
<INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'>
Aspect Ratio:
<SELECT readonly onChange='doAspectRatio(this.value)'>
<OPTION value="default">Default</OPTION>
<OPTION value="1:1">1:1</OPTION>
<OPTION value="4:3">4:3</OPTION>
<OPTION value="16:9">16:9</OPTION>
<OPTION value="221:100">221:100</OPTION>
<OPTION value="5:4">5:4</OPTION>
</SELECT>
</TD><TD align="right">
<INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>
<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">
</TD>
</TR>
<TR><TD>Audio Channel:
<SELECT readonly onClick='doAudioChannel(this.value);'>
<OPTION value=1>Stereo</OPTION>
<OPTION value=2>Reverse Stereo</OPTION>
<OPTION value=3>Left</OPTION>
<OPTION value=4>Right</OPTION>
<OPTION value=5>Dolby</OPTION>
</SELECT>
</TD>
<TD>
<INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'>
</TD>
</TR>
<TR><TD> Audio Track:
<INPUT type=button value=" + " onClick='doAudioTrack(1);'>
<SPAN id="trackTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" - " onClick='doAudioTrack(-1);'>
<INPUT type=button value="current track" onClick='alert(getVLC("vlc").audio.description(vlc.audio.track));'>
<INPUT type=button value="number of track" onClick='alert(getVLC("vlc").audio.count);'>
</TD>
<TD>
<INPUT type=button value="set slider" onClick='doSetSlider();'>
<INPUT type=button value="get position" onClick='doGetPosition();'>
</TD>
</TR>
<TR>
<TD>Video Subtitle:
<INPUT type=button value=" + " onClick='doSubtitle(1);'>
<SPAN id="spuTextField" style="text-align:center">--</SPAN>
<INPUT type=button value=" - " onClick='doSubtitle(-1);'>
<INPUT type=button value="current subtitle" onClick='alert(getVLC("vlc").subtitle.description(vlc.subtitle.track));'>
<INPUT type=button value="number of subtitle" onClick='alert(getVLC("vlc").subtitle.count);'>
</TD>
</TR>
<TR>
<TD>Deinterlacing:
<INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>
<INPUT type=button value=" X " onClick='getVLC("vlc").video.deinterlace.enable("x");'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'>
</TD>
</TR>
<TR>
<TD>Marquee video filter:
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'>
<INPUT size=4 value="" id="marqueeIntValue">
<SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);">
<OPTION value=1>Color</OPTION>
<OPTION value=2>Opacity</OPTION>
<OPTION value=3>Position</OPTION>
<OPTION value=4>Refresh</OPTION>
<OPTION value=5>Size</OPTION>
<OPTION value=6>Text</OPTION>
<OPTION value=7>Timeout</OPTION>
<OPTION value=8>X</OPTION>
<OPTION value=9>Y</OPTION>
</SELECT>
</TD>
</TR> </TR>
<TR> <TR>
<TD>Logo video filter: <TD>Logo video filter:
<INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'> <INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'>
<INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'> <INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'>
<INPUT size=4 value="" id="logoIntValue"> <INPUT size=4 value="" id="logoIntValue">
<SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);"> <SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);">
<OPTION value=1>File</OPTION> <OPTION value=1>File</OPTION>
<OPTION value=2>Position</OPTION> <OPTION value=2>Position</OPTION>
<OPTION value=3>Opacity</OPTION> <OPTION value=3>Opacity</OPTION>
<OPTION value=4>Repeat</OPTION> <OPTION value=4>Repeat</OPTION>
<OPTION value=5>Delay</OPTION> <OPTION value=5>Delay</OPTION>
<OPTION value=6>X</OPTION> <OPTION value=6>X</OPTION>
<OPTION value=7>Y</OPTION> <OPTION value=7>Y</OPTION>
</SELECT> </SELECT>
</TD> </TD>
</TR> </TR>
<TR> <TR>
<TD> <TD>
<INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'> <INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'>
Teletext page: Teletext page:
<INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'> <INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<SCRIPT language="javascript"> <SCRIPT language="javascript">
<!-- <!--
var rate = 0; var rate = 0;
var prevState = 0; var prevState = 0;
var monitorTimerId = 0; var monitorTimerId = 0;
var inputTracker; var inputTracker;
var inputTrackerScrolling = false; var inputTrackerScrolling = false;
var inputTrackerIgnoreChange = false; var inputTrackerIgnoreChange = false;
var telxState = false; var telxState = false;
var canPause = true;
function doSetSlider() var canSeek = true;
{
var vlc = getVLC("vlc"); function setPauseable(val)
{
// set slider to new position canPause = val;
if( vlc ) }
vlc.input.time = (vlc.input.length/2);
} function setSeekable(val)
{
function doGetPosition() canSeek = val;
{ }
var vlc = getVLC("vlc");
function doSetSlider()
// set slider to new position {
if (vlc) var vlc = getVLC("vlc");
alert( "position is " + vlc.input.time);
} // set slider to new position
if( vlc )
function doReverse(rate) vlc.input.time = (vlc.input.length/2);
{ }
var vlc = getVLC("vlc");
if( vlc ) function doGetPosition()
vlc.input.rate = -1.0 * vlc.input.rate; {
} var vlc = getVLC("vlc");
function doAudioChannel(value) // set slider to new position
{ if (vlc)
var vlc = getVLC("vlc"); alert( "position is " + vlc.input.time);
if( vlc ) }
vlc.audio.channel = parseInt(value);
} function doReverse(rate)
{
function doAudioTrack(value) var vlc = getVLC("vlc");
{ if( vlc )
var vlc = getVLC("vlc"); vlc.input.rate = -1.0 * vlc.input.rate;
if( vlc ) }
{
vlc.audio.track = vlc.audio.track + value; function doAudioChannel(value)
document.getElementById("trackTextField").innerHTML = vlc.audio.track; {
} var vlc = getVLC("vlc");
} if( vlc )
vlc.audio.channel = parseInt(value);
function doAspectRatio(value) }
{
var vlc = getVLC("vlc"); function doAudioTrack(value)
if( vlc ) {
vlc.video.aspectRatio = value; var vlc = getVLC("vlc");
} if( vlc )
{
function doSubtitle(value) vlc.audio.track = vlc.audio.track + value;
{ document.getElementById("trackTextField").innerHTML = vlc.audio.track;
var vlc = getVLC("vlc"); }
if( vlc ) }
{
vlc.subtitle.track = vlc.subtitle.track + value; function doAspectRatio(value)
document.getElementById("spuTextField").innerHTML = vlc.subtitle.track; {
} var vlc = getVLC("vlc");
} if( vlc )
vlc.video.aspectRatio = value;
function doTelxPage(value) }
{
var vlc = getVLC("vlc"); function doSubtitle(value)
if( vlc ) {
vlc.video.teletext = parseInt(value); var vlc = getVLC("vlc");
} if( vlc )
{
function doToggleTeletext() vlc.subtitle.track = vlc.subtitle.track + value;
{ document.getElementById("spuTextField").innerHTML = vlc.subtitle.track;
var vlc = getVLC("vlc"); }
}
if( vlc )
{ function doTelxPage(value)
vlc.video.toggleTeletext(); {
if (telxState) var vlc = getVLC("vlc");
{ if( vlc )
document.getElementById("telx").innerHTML = "Teletext on"; vlc.video.teletext = parseInt(value);
telxState = true; }
}
else function doToggleTeletext()
{ {
document.getElementById("telx").innerHTML = "Teletext off"; var vlc = getVLC("vlc");
telxState = false;
} if( vlc )
} {
} vlc.video.toggleTeletext();
if (telxState)
function doItemCount() {
{ document.getElementById("telx").innerHTML = "Teletext on";
var vlc = getVLC("vlc"); telxState = true;
if( vlc ) }
{ else
var count = vlc.playlist.items.count; {
document.getElementById("itemCount").value = " Items " + count + " "; document.getElementById("telx").innerHTML = "Teletext off";
} telxState = false;
} }
}
function doRemoveItem(item) }
{
var vlc = getVLC("vlc"); function doItemCount()
if( vlc ) {
vlc.playlist.items.remove(item); var vlc = getVLC("vlc");
} if( vlc )
{
function doPlaylistClearAll() var count = vlc.playlist.items.count;
{ document.getElementById("itemCount").value = " Items " + count + " ";
var vlc = getVLC("vlc"); }
if( vlc ) }
{
vlc.playlist.items.clear(); function doRemoveItem(item)
while( vlc.playlist.items.count > 0) {
{ var vlc = getVLC("vlc");
// wait till playlist empties. if( vlc )
} vlc.playlist.items.remove(item);
doItemCount(); }
}
} function doPlaylistClearAll()
{
function updateVolume(deltaVol) var vlc = getVLC("vlc");
{ if( vlc )
var vlc = getVLC("vlc"); {
if( vlc ) vlc.playlist.items.clear();
{ while( vlc.playlist.items.count > 0)
vlc.audio.volume += deltaVol; {
document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%"; // wait till playlist empties.
} }
} doItemCount();
}
function formatTime(timeVal) }
{
if( typeof timeVal != 'number' ) function updateVolume(deltaVol)
return "-:--:--"; {
var vlc = getVLC("vlc");
var timeHour = Math.round(timeVal / 1000); if( vlc )
var timeSec = timeHour % 60; {
if( timeSec < 10 ) vlc.audio.volume += deltaVol;
timeSec = '0'+timeSec; document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";
timeHour = (timeHour - timeSec)/60; }
var timeMin = timeHour % 60; }
if( timeMin < 10 )
timeMin = '0'+timeMin; function formatTime(timeVal)
timeHour = (timeHour - timeMin)/60; {
if( timeHour > 0 ) if( typeof timeVal != 'number' )
return timeHour+":"+timeMin+":"+timeSec; return "-:--:--";
else
return timeMin+":"+timeSec; var timeHour = Math.round(timeVal / 1000);
} var timeSec = timeHour % 60;
if( timeSec < 10 )
function doState() timeSec = '0'+timeSec;
{ timeHour = (timeHour - timeSec)/60;
var vlc = getVLC("vlc"); var timeMin = timeHour % 60;
var newState = 0; if( timeMin < 10 )
timeMin = '0'+timeMin;
if( vlc ) timeHour = (timeHour - timeMin)/60;
newState = vlc.input.state; if( timeHour > 0 )
return timeHour+":"+timeMin+":"+timeSec;
if( newState == 0 ) else
{ return timeMin+":"+timeSec;
// current media has stopped }
onEnd();
} function doState()
else if( newState == 1 ) {
{ var vlc = getVLC("vlc");
// current media is openning/connecting var newState = 0;
onOpen();
} if( vlc )
else if( newState == 2 ) newState = vlc.input.state;
{
// current media is buffering data if( newState == 0 )
onBuffer(); {
} // current media has stopped
else if( newState == 3 ) onEnd();
{ }
// current media is now playing else if( newState == 1 )
onPlay(); {
} // current media is openning/connecting
else if( newState == 4 ) onOpen();
{ }
// current media is now paused else if( newState == 2 )
onPause(); {
} // current media is buffering data
else if( newState == 5 ) onBuffer();
{ }
// current media has stopped else if( newState == 3 )
onStop(); {
} // current media is now playing
else if( newState == 6 ) onPlay();
{ }
// current media has ended else if( newState == 4 )
onEnd(); {
} // current media is now paused
else if( newState == 7 ) onPause();
{ }
// current media encountered error else if( newState == 5 )
onError(); {
} // current media has stopped
} onStop();
}
function monitor() else if( newState == 6 )
{ {
var vlc = getVLC("vlc"); // current media has ended
var newState = 0; onEnd();
}
if( vlc ) else if( newState == 7 )
{ {
newState = vlc.input.state; // current media encountered error
} onError();
}
if( prevState != newState ) }
{
if( newState == 0 ) function monitor()
{ {
// current media has stopped var vlc = getVLC("vlc");
onEnd(); var newState = 0;
}
else if( newState == 1 ) if( vlc )
{ {
// current media is openning/connecting newState = vlc.input.state;
onOpen(); }
}
else if( newState == 2 ) if( prevState != newState )
{ {
// current media is buffering data if( newState == 0 )
onBuffer(); {
} // current media has stopped
else if( newState == 3 ) onEnd();
{ }
// current media is now playing else if( newState == 1 )
onPlay(); {
} // current media is openning/connecting
else if( newState == 4 ) onOpen();
{ }
// current media is now paused else if( newState == 2 )
onPause(); {
} // current media is buffering data
else if( newState == 5 ) onBuffer();
{ }
// current media has stopped else if( newState == 3 )
onStop(); {
} // current media is now playing
else if( newState == 6 ) onPlay();
{ }
// current media has ended else if( newState == 4 )
onEnd(); {
} // current media is now paused
else if( newState == 7 ) onPause();
{ }
// current media encountered error else if( newState == 5 )
onError(); {
} // current media has stopped
prevState = newState; onStop();
} }
else if( newState == 3 ) else if( newState == 6 )
{ {
// current media is playing // current media has ended
onPlaying(); onEnd();
} }
if( monitorTimerId == 0 ) else if( newState == 7 )
{ {
monitorTimerId = setInterval("monitor()", 1000); // current media encountered error
} onError();
}; }
prevState = newState;
/* actions */ }
else if( newState == 3 )
function doGo(targetURL) {
{ // current media is playing
var vlc = getVLC("vlc"); onPlaying();
}
if( vlc ) if( monitorTimerId == 0 )
{ {
vlc.playlist.items.clear(); monitorTimerId = setInterval("monitor()", 1000);
while( vlc.playlist.items.count > 0 ) }
{ };
// clear() may return before the playlist has actually been cleared
// just wait for it to finish its job /* actions */
}
var options = [":rtsp-tcp"]; function doGo(targetURL)
var itemId = vlc.playlist.add(targetURL,"",options); {
options = []; var vlc = getVLC("vlc");
if( itemId != -1 )
{ if( vlc )
// play MRL {
vlc.playlist.playItem(itemId); vlc.playlist.items.clear();
if( monitorTimerId == 0 ) while( vlc.playlist.items.count > 0 )
{ {
monitor(); // clear() may return before the playlist has actually been cleared
} // just wait for it to finish its job
} }
else var options = [":rtsp-tcp"];
{ var itemId = vlc.playlist.add(targetURL,"",options);
alert("cannot play at the moment !"); options = [];
} if( itemId != -1 )
doItemCount(); {
} // play MRL
} vlc.playlist.playItem(itemId);
if( monitorTimerId == 0 )
function doAdd(targetURL) {
{ monitor();
var vlc = getVLC("vlc"); }
var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"]; }
if( vlc ) else
{ {
vlc.playlist.add(targetURL, "", options); alert("cannot play at the moment !");
options = []; }
doItemCount(); doItemCount();
} }
} }
function doPlayOrPause() function doAdd(targetURL)
{ {
var vlc = getVLC("vlc"); var vlc = getVLC("vlc");
if( vlc ) var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"];
{ if( vlc )
if( vlc.playlist.isPlaying ) {
{ vlc.playlist.add(targetURL, "", options);
vlc.playlist.togglePause(); options = [];
monitor(); doItemCount();
} }
else if( vlc.playlist.items.count > 0 ) }
{
vlc.playlist.play(); function doPlayOrPause()
monitor(); {
} var vlc = getVLC("vlc");
else if( vlc )
{ {
alert('nothing to play !'); if( vlc.playlist.isPlaying && canPause )
} {
} vlc.playlist.togglePause();
} //monitor();
}
function doStop() else if( vlc.playlist.items.count > 0 )
{ {
var vlc = getVLC("vlc"); vlc.playlist.play();
//monitor();
if( vlc ) }
vlc.playlist.stop(); else
{
if( monitorTimerId != 0 ) alert('nothing to play !');
{ }
clearInterval(monitorTimerId); }
monitorTimerId = 0; }
}
onStop(); function doStop()
} {
var vlc = getVLC("vlc");
function doPlaySlower()
{ if( vlc )
var vlc = getVLC("vlc"); vlc.playlist.stop();
if( vlc )
vlc.input.rate = vlc.input.rate / 2; if( monitorTimerId != 0 )
} {
clearInterval(monitorTimerId);
function doPlayFaster() monitorTimerId = 0;
{ }
var vlc = getVLC("vlc"); onStop();
if( vlc ) }
vlc.input.rate = vlc.input.rate * 2;
} function doPlaySlower()
{
/* events */ var vlc = getVLC("vlc");
if( vlc )
function onOpen() vlc.input.rate = vlc.input.rate / 2;
{ }
document.getElementById("state").innerHTML = "Opening...";
document.getElementById("PlayOrPause").value = "Pause"; function doPlayFaster()
} {
var vlc = getVLC("vlc");
function onBuffer() if( vlc )
{ vlc.input.rate = vlc.input.rate * 2;
document.getElementById("state").innerHTML = "Buffering..."; }
document.getElementById("PlayOrPause").value = "Pause";
} function doMarqueeOption(option, value)
{
function onPlay() var vlc = getVLC("vlc");
{ val = parseInt(value);
document.getElementById("state").innerHTML = "Playing..."; if( vlc )
document.getElementById("PlayOrPause").value = "Pause"; {
onPlaying(); if (option == 1)
} vlc.video.marquee.color = val;
if (option == 2)
function onEnd() vlc.video.marquee.opacity = val;
{ if (option == 3)
document.getElementById("state").innerHTML = "End..."; vlc.video.marquee.position = value;
doStop(); if (option == 4)
} vlc.video.marquee.refresh = val;
if (option == 5)
var liveFeedText = ["Live", "((Live))", "(( Live ))", "(( Live ))"]; vlc.video.marquee.size = val;
var liveFeedRoll = 0; if (option == 6)
vlc.video.marquee.text = value;
function onPlaying() if (option == 7)
{ vlc.video.marquee.timeout = val;
if( !inputTrackerScrolling ) if (option == 8)
{ vlc.video.marquee.x = val;
var vlc = getVLC("vlc"); if (option == 9)
var info = document.getElementById("info"); vlc.video.marquee.y = val;
if( vlc ) }
{ }
var mediaLen = vlc.input.length;
inputTrackerIgnoreChange = true; function doLogoOption(option, value)
if( mediaLen > 0 ) {
{ var vlc = getVLC("vlc");
// seekable media if( vlc )
if( inputTracker ) {
{ if (option == 1)
if( inputTracker.maxVal == 1.0 ) vlc.video.logo.file(value);
{ if (option == 2)
inputTracker.setDisabled(false); vlc.video.logo.position = value;
inputTracker.maxVal = 1.0; val = parseInt(value);
} if (option == 3)
inputTracker.setValue(vlc.input.position); vlc.video.logo.opacity = val;
} if (option == 4)
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen); vlc.video.logo.repeat = val;
} if (option == 5)
else vlc.video.logo.delay = val;
{ if (option == 6)
// non-seekable "live" media vlc.video.logo.x = val;
if( inputTracker ) if (option == 7)
{ vlc.video.logo.y = val;
if( inputTracker.maxVal != 0.0 ) }
{ }
inputTracker.maxVal = 0.0;
inputTracker.setValue(0.0); /* events */
inputTracker.setDisabled(true);
} function onOpen()
} {
liveFeedRoll = liveFeedRoll & 3; document.getElementById("state").innerHTML = "Opening...";
info.innerHTML = liveFeedText[liveFeedRoll++]; document.getElementById("PlayOrPause").value = "Pause";
} }
inputTrackerIgnoreChange = false;
} function onBuffer()
} {
} document.getElementById("state").innerHTML = "Buffering...";
document.getElementById("PlayOrPause").value = "Pause";
function onPause() }
{
document.getElementById("state").innerHTML = "Paused..."; function onPlay()
document.getElementById("PlayOrPause").value = " Play "; {
} document.getElementById("state").innerHTML = "Playing...";
document.getElementById("PlayOrPause").value = "Pause";
function onStop() onPlaying();
{ }
var vlc = getVLC("vlc");
function onEnd()
if( inputTracker ) {
{ document.getElementById("state").innerHTML = "End...";
if( !inputTracker.disabled ) }
{
inputTracker.setValue(inputTracker.minVal); var liveFeedText = ["Live", "((Live))", "(( Live ))", "(( Live ))"];
inputTracker.setDisabled(true); var liveFeedRoll = 0;
}
} function onPlaying()
{
document.getElementById("info").innerHTML = "-:--:--/-:--:--"; if( !inputTrackerScrolling )
document.getElementById("state").innerHTML = "Stopped..."; {
document.getElementById("PlayOrPause").value = " Play "; var vlc = getVLC("vlc");
} var info = document.getElementById("info");
if( vlc )
function onError() {
{ var mediaLen = vlc.input.length;
var vlc = getVLC("vlc"); inputTrackerIgnoreChange = true;
if( mediaLen > 0 )
document.getElementById("state").innerHTML = "Error..."; {
} // seekable media
if( inputTracker )
function onInputTrackerScrollStart() {
{ if( inputTracker.maxVal == 1.0 )
inputTrackerScrolling = true; {
} inputTracker.setDisabled(false);
inputTracker.maxVal = 1.0;
function onInputTrackerScrollEnd(inputTracker, value, pos) }
{ inputTracker.setValue(vlc.input.position);
inputTrackerScrolling = false; }
} info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);
}
function onInputTrackerChange(inputTracker, value, pos) else
{ {
if( !inputTrackerIgnoreChange ) // non-seekable "live" media
{ if( inputTracker )
var vlc = getVLC("vlc"); {
if( vlc ) if( inputTracker.maxVal != 0.0 )
{ {
if( (vlc.input.state == 3) && (vlc.input.position != value) ) inputTracker.maxVal = 0.0;
{ inputTracker.setValue(0.0);
var info = document.getElementById("info"); inputTracker.setDisabled(true);
vlc.input.position = value; }
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length); }
} liveFeedRoll = liveFeedRoll & 3;
} info.innerHTML = liveFeedText[liveFeedRoll++];
} }
} inputTrackerIgnoreChange = false;
}
function doMarqueeOption(option, value) }
{ }
var vlc = getVLC("vlc");
val = parseInt(value); function onPause()
if( vlc ) {
{ document.getElementById("state").innerHTML = "Paused...";
if (option == 1) document.getElementById("PlayOrPause").value = " Play ";
vlc.video.marquee.color = val; }
if (option == 2)
vlc.video.marquee.opacity = val; function onStop()
if (option == 3) {
vlc.video.marquee.position = value; var vlc = getVLC("vlc");
if (option == 4)
vlc.video.marquee.refresh = val; if( inputTracker )
if (option == 5) {
vlc.video.marquee.size = val; if( !inputTracker.disabled )
if (option == 6) {
vlc.video.marquee.text = value; inputTracker.setValue(inputTracker.minVal);
if (option == 7) inputTracker.setDisabled(true);
vlc.video.marquee.timeout = val; }
if (option == 8) }
vlc.video.marquee.x = val;
if (option == 9) document.getElementById("info").innerHTML = "-:--:--/-:--:--";
vlc.video.marquee.y = val; document.getElementById("state").innerHTML = "Stopped...";
} document.getElementById("PlayOrPause").value = " Play ";
} }
function doLogoOption(option, value) function onError()
{ {
var vlc = getVLC("vlc"); var vlc = getVLC("vlc");
if( vlc )
{ document.getElementById("state").innerHTML = "Error...";
if (option == 1) }
vlc.video.logo.file(value);
if (option == 2) function onInputTrackerScrollStart()
vlc.video.logo.position = value; {
val = parseInt(value); inputTrackerScrolling = true;
if (option == 3) }
vlc.video.logo.opacity = val;
if (option == 4) function onInputTrackerScrollEnd(inputTracker, value, pos)
vlc.video.logo.repeat = val; {
if (option == 5) inputTrackerScrolling = false;
vlc.video.logo.delay = val; }
if (option == 6)
vlc.video.logo.x = val; function onInputTrackerChange(inputTracker, value, pos)
if (option == 7) {
vlc.video.logo.y = val; if( !inputTrackerIgnoreChange )
} {
} var vlc = getVLC("vlc");
if( vlc )
//--> {
</SCRIPT> if( (vlc.input.state == 3) && (vlc.input.position != value) )
</BODY> {
</HTML> var info = document.getElementById("info");
vlc.input.position = value;
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
}
}
}
}
//-->
</SCRIPT>
</BODY>
</HTML>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment