<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
<HTML>\r
<TITLE>VLC Plugin test page</TITLE>\r
-<STYLE>\r
- .inputTrackerInput {\r
- height:20;\r
- width:30;\r
- font-family : Arial, Helvetica, sans-serif;\r
- font-size : 12px;\r
- }\r
-</STYLE>\r
-\r
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>\r
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>\r
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>\r
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>\r
\r
<SCRIPT language="JavaScript"><!--\r
function init()\r
{\r
- inputTracker = new Bs_Slider();\r
- if (inputTracker)\r
- {\r
- inputTracker.attachOnChange(onInputTrackerChange);\r
- inputTracker.attachOnSlideStart(onInputTrackerScrollStart);\r
- inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);\r
- inputTracker.width = 530 ;\r
- inputTracker.height = 15;\r
- inputTracker.minVal = 0;\r
- inputTracker.maxVal = 1.0;\r
- inputTracker.valueDefault = 0;\r
- inputTracker.valueInterval = 1/530;\r
- inputTracker.setDisabled(true);\r
- inputTracker.imgDir = 'blueshoes-4.5/javascript/components/slider/img/';\r
- inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');\r
- inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);\r
- inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);\r
- inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);\r
- inputTracker.useInputField = 0;\r
- inputTracker.draw('inputTrackerDiv');\r
- }\r
-\r
if( navigator.appName.indexOf("Microsoft Internet")==-1 )\r
{\r
onVLCPluginReady()\r
width="640"\r
height="480"\r
toolbar="true"\r
+ text="Waiting for video"\r
name="vlc">\r
</EMBED>\r
</OBJECT>\r
<!--\r
Insert Slider widget\r
-->\r
-<DIV id="inputTrackerDiv"</DIV>\r
</TD><TD width="15%">\r
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>\r
<DIV id="state" style="text-align:center">Stopped...</DIV>\r
<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">\r
</TD>\r
</TR>\r
-<TR><TD>Messages:\r
-<INPUT type=button value="Messages" onClick='doMessages();'>\r
-Verbosity:\r
-<INPUT size=2 value="1" id="verbosity" onClick="doVerbosity(document.getElementById('verbosity').value);">\r
-<INPUT type=button value=" + " onClick='doVerbosity(1);'>\r
-<INPUT type=button value=" - " onClick='doVerbosity(-1);'>\r
-</TD>\r
-<TD>\r
-<DIV id="message" style="text-align:center">no message</DIV>\r
-</TD>\r
-</TR>\r
<TR><TD>Audio Channel:\r
<SELECT readonly onClick='doAudioChannel(this.value);'>\r
<OPTION value=1>Stereo</OPTION>\r
</TD>\r
</TR>\r
<TR>\r
+<TD>Deinterlacing:\r
+ <INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>\r
+ <INPUT type=button value=" X " onClick='getVLC("vlc").video.deinterlace.enable("x");'>\r
+ <INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'>\r
+</TD>\r
+</TR>\r
+<TR>\r
+<TD>Marquee video filter:\r
+ <INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'>\r
+ <INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'>\r
+ <INPUT size=4 value="" id="marqueeIntValue">\r
+ <SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);">\r
+ <OPTION value=1>Color</OPTION>\r
+ <OPTION value=2>Opacity</OPTION>\r
+ <OPTION value=3>Position</OPTION>\r
+ <OPTION value=4>Refresh</OPTION>\r
+ <OPTION value=5>Size</OPTION>\r
+ <OPTION value=6>Text</OPTION>\r
+ <OPTION value=7>Timeout</OPTION>\r
+ <OPTION value=8>X</OPTION>\r
+ <OPTION value=9>Y</OPTION>\r
+ </SELECT>\r
+</TD>\r
+</TR>
+<TR>\r
+<TD>Logo video filter:\r
+ <INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'>\r
+ <INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'>\r
+ <INPUT size=4 value="" id="logoIntValue">\r
+ <SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);">\r
+ <OPTION value=1>File</OPTION>\r
+ <OPTION value=2>Position</OPTION>\r
+ <OPTION value=3>Opacity</OPTION>\r
+ <OPTION value=4>Repeat</OPTION>\r
+ <OPTION value=5>Delay</OPTION>\r
+ <OPTION value=6>X</OPTION>\r
+ <OPTION value=7>Y</OPTION>
+ </SELECT>\r
+</TD>\r
+</TR>\r\r
+<TR>\r
<TD>\r
<INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'>\r
Teletext page:\r
\r
var rate = 0;\r
var prevState = 0;\r
-var monitorTimerId = 0;\r
-var inputTracker;\r
-var inputTrackerScrolling = false;\r
-var inputTrackerIgnoreChange = false;\r
var telxState = false;\r
\r
function doSetSlider()\r
vlc.input.rate = -1.0 * vlc.input.rate;\r
}\r
\r
-function doVerbosity(value)\r
-{\r
- var vlc = getVLC("vlc");\r
- if( vlc )\r
- {\r
- vlc.log.verbosity = vlc.log.verbosity + value;\r
- document.getElementById("verbosity").value = vlc.log.verbosity;\r
- }\r
-}\r
-\r
function doAudioChannel(value)\r
{\r
var vlc = getVLC("vlc");\r
}\r
}\r
\r
-function doMessages()\r
-{\r
- var vlc = getVLC("vlc");\r
-\r
- if( vlc )\r
- {\r
- if( vlc.log.messages.count > 0 )\r
- {\r
- // there is one or more messages in the log\r
- var iter = vlc.log.messages.iterator();\r
- while( iter.hasNext )\r
- {\r
- var msg = iter.next();\r
- if( msg.severity <= 1 )\r
- {\r
- document.getElementById("message").innerHTML = msg.message;\r
- }\r
- }\r
- // clear the log once finished to avoid clogging\r
- vlc.log.messages.clear();\r
- }\r
- }\r
-}\r
-\r
function updateVolume(deltaVol)\r
{\r
var vlc = getVLC("vlc");\r
if( vlc )\r
{\r
newState = vlc.input.state;\r
-\r
- if( vlc.log.messages.count > 0 )\r
- {\r
- // there is one or more messages in the log\r
- var iter = vlc.log.messages.iterator();\r
- while( iter.hasNext )\r
- {\r
- var msg = iter.next();\r
- if( msg.severity == 1 )\r
- {\r
- alert( msg.message );\r
- }\r
- document.getElementById("message").innerHTML = msg.message;\r
- }\r
- // clear the log once finished to avoid clogging\r
- vlc.log.messages.clear();\r
- }\r
}\r
\r
if( prevState != newState )\r
// current media is playing\r
onPlaying();\r
}\r
- if( monitorTimerId == 0 )\r
- {\r
- monitorTimerId = setInterval("monitor()", 1000);\r
- }\r
};\r
\r
/* actions */\r
// clear() may return before the playlist has actually been cleared\r
// just wait for it to finish its job\r
}\r
- var options = new Array(":rtsp-tcp");\r
+ var options = [":rtsp-tcp"];\r
var itemId = vlc.playlist.add(targetURL,"",options);\r
+ options = [];\r
if( itemId != -1 )\r
{\r
- // clear the message log and enable error logging\r
- vlc.log.verbosity = 1;\r
- vlc.log.messages.clear();\r
// play MRL\r
vlc.playlist.playItem(itemId);\r
- if( monitorTimerId == 0 )\r
- {\r
- monitor();\r
- }\r
+ monitor();\r
}\r
else\r
{\r
- // disable log\r
- vlc.log.verbosity = -1;\r
alert("cannot play at the moment !");\r
}\r
doItemCount();\r
function doAdd(targetURL)\r
{\r
var vlc = getVLC("vlc");\r
- var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");\r
+ var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"];\r
if( vlc )\r
{\r
vlc.playlist.add(targetURL, "", options);\r
+ options = [];\r
doItemCount();\r
}\r
}\r
}\r
else if( vlc.playlist.items.count > 0 )\r
{\r
- // clear the message log and enable error logging\r
- vlc.log.verbosity = 1;\r
- vlc.log.messages.clear();\r
vlc.playlist.play();\r
monitor();\r
}\r
else\r
{\r
- // disable log\r
- vlc.log.verbosity = -1;\r
alert('nothing to play !');\r
}\r
}\r
if( vlc )\r
vlc.playlist.stop();\r
\r
- if( monitorTimerId != 0 )\r
- {\r
- clearInterval(monitorTimerId);\r
- monitorTimerId = 0;\r
- }\r
onStop();\r
}\r
\r
function onEnd()\r
{\r
document.getElementById("state").innerHTML = "End...";\r
+ doStop();\r
}\r
\r
-var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");\r
+var liveFeedText = ["Live", "((Live))", "(( Live ))", "(( Live ))"];\r
var liveFeedRoll = 0;\r
\r
function onPlaying()\r
{\r
- if( !inputTrackerScrolling )\r
- {\r
var vlc = getVLC("vlc");\r
var info = document.getElementById("info");\r
if( vlc )\r
{\r
var mediaLen = vlc.input.length;\r
- inputTrackerIgnoreChange = true;\r
if( mediaLen > 0 )\r
{\r
- // seekable media\r
- if( inputTracker )\r
- {\r
- if( inputTracker.maxVal == 1.0 )\r
- {\r
- inputTracker.setDisabled(false);\r
- inputTracker.maxVal = 1.0;\r
- }\r
- inputTracker.setValue(vlc.input.position);\r
- }\r
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);\r
}\r
else\r
{\r
// non-seekable "live" media\r
- if( inputTracker )\r
- {\r
- if( inputTracker.maxVal != 0.0 )\r
- {\r
- inputTracker.maxVal = 0.0;\r
- inputTracker.setValue(0.0);\r
- inputTracker.setDisabled(true);\r
- }\r
- }\r
liveFeedRoll = liveFeedRoll & 3;\r
info.innerHTML = liveFeedText[liveFeedRoll++];\r
}\r
- inputTrackerIgnoreChange = false;\r
}\r
}\r
}\r
\r
function onStop()\r
{\r
- // disable logging\r
- var vlc = getVLC("vlc");\r
- if( vlc )\r
- vlc.log.verbosity = -1;\r
-\r
- if( inputTracker )\r
- {\r
- if( !inputTracker.disabled )\r
- {\r
- inputTracker.setValue(inputTracker.minVal);\r
- inputTracker.setDisabled(true);\r
- }\r
- }\r
-\r
document.getElementById("info").innerHTML = "-:--:--/-:--:--";\r
document.getElementById("state").innerHTML = "Stopped...";\r
document.getElementById("PlayOrPause").value = " Play ";\r
\r
function onError()\r
{\r
- var vlc = getVLC("vlc");\r
-\r
document.getElementById("state").innerHTML = "Error...";\r
- if( vlc )\r
- {\r
- if( vlc.log.messages.count > 0 )\r
- {\r
- // there is one or more messages in the log\r
- var iter = vlc.log.messages.iterator();\r
- while( iter.hasNext )\r
- {\r
- var msg = iter.next();\r
- if( msg.severity <= 1 )\r
- {\r
- alert( msg.message );\r
- }\r
- document.getElementById("message").innerHTML = msg.message;\r
- }\r
- // clear the log once finished to avoid clogging\r
- vlc.log.messages.clear();\r
- }\r
- }\r
-}\r
-\r
-function onInputTrackerScrollStart()\r
-{\r
- inputTrackerScrolling = true;\r
}\r
\r
-function onInputTrackerScrollEnd(inputTracker, value, pos)\r
+function doMarqueeOption(option, value)\r
{\r
- inputTrackerScrolling = false;\r
-}\r
-\r
-function onInputTrackerChange(inputTracker, value, pos)\r
+ var vlc = getVLC("vlc");\r
+ val = parseInt(value);\r
+ if( vlc )\r
+ {\r
+ if (option == 1)\r
+ vlc.video.marquee.color = val;\r
+ if (option == 2)\r
+ vlc.video.marquee.opacity = val;\r
+ if (option == 3)\r
+ vlc.video.marquee.position = value;\r
+ if (option == 4)\r
+ vlc.video.marquee.refresh = val;\r
+ if (option == 5)\r
+ vlc.video.marquee.size = val;\r
+ if (option == 6)\r
+ vlc.video.marquee.text = value;\r
+ if (option == 7)\r
+ vlc.video.marquee.timeout = val;\r
+ if (option == 8)\r
+ vlc.video.marquee.x = val;\r
+ if (option == 9)\r
+ vlc.video.marquee.y = val;\r
+ }\r
+}\r
+
+function doLogoOption(option, value)\r
{\r
- if( !inputTrackerIgnoreChange )\r
+ var vlc = getVLC("vlc");\r
+ if( vlc )\r
{\r
- var vlc = getVLC("vlc");\r
- if( vlc )\r
- {\r
- if( (vlc.input.state == 3) && (vlc.input.position != value) )\r
- {\r
- var info = document.getElementById("info");\r
- vlc.input.position = value;\r
- info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);\r
- }\r
- }\r
+ if (option == 1)\r
+ vlc.video.logo.file(value);\r
+ if (option == 2)\r
+ vlc.video.logo.position = value;\r
+ val = parseInt(value);\r
+ if (option == 3)\r
+ vlc.video.logo.opacity = val;\r
+ if (option == 4)\r
+ vlc.video.logo.repeat = val;\r
+ if (option == 5)\r
+ vlc.video.logo.delay = val;\r
+ if (option == 6)\r
+ vlc.video.logo.x = val;\r
+ if (option == 7)\r
+ vlc.video.logo.y = val;\r
}\r
}\r
\r