-<HTML>
-<TITLE>VLC ActiveX plugin test page</TITLE>
-<BODY>
-<TABLE>
-<TR><TD colspan="2">
-MRL:
-<INPUT size="90" name="targetTextField" value="">
-<INPUT type=submit value="Go" onClick="doGo(targetTextField.value);">
-</TD></TR>
-<TR><TD colspan="2">
-<!--
-Insert VideoLAN.VLCPlugin.1 activex control
--->
-<OBJECT classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8"
- codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab#Version=0,8,4,0"
- 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" />
-</OBJECT>
-</TD></TR>
-<TR><TD>
-<!--
-Insert MSComctlLib.Slider.2 activex control
--->
-<OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"
- width="540"
- height="20"
- id="slider"
- events="True">
-<param name="TickStyle" value="3" />
-<param name="Min" value="0" />
-<param name="Max" value="0" />
-<param name="Value" value="0" />
-<param name="Enabled" value="False" />
-</OBJECT>
-</TD><TD width="15%">
-<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
-</TD></TR>
-<TR><TD colspan="2">
-<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause()'>
-<INPUT type=button value="Stop" onClick='document.vlc.stop();'>
-
-<INPUT type=button value=" << " onClick='document.vlc.playSlower();'>
-<INPUT type=button value=" >> " onClick='document.vlc.playFaster();'>
-
-<INPUT type=button value="Show" onClick='document.vlc.Visible = true;'>
-<INPUT type=button value="Hide" onClick='document.vlc.Visible = false;'>
-
-<INPUT type=button value="Version" onClick='alert(document.vlc.VersionInfo);'>
-<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='document.vlc.toggleMute();'>
-</TD>
-</TR>
-</TABLE>
-<SCRIPT LANGUAGE="JScript">
-<!--
-var sliderTimerId = 0;
-var sliderScrolling = false;
-
-document.onreadystatechange=onVLCStateChange;
-function onVLCStateChange()
-{
- if( document.readyState == 'complete' )
- {
- updateVolume(0);
- }
-};
-function updateVolume(deltaVol)
-{
- vlc.Volume += deltaVol;
- volumeTextField.innerText = vlc.Volume+"%";
-};
-function formatTime(timeVal)
-{
- var timeHour = timeVal;
- var timeSec = timeHour % 60;
- if( timeSec < 10 )
- timeSec = '0'+timeSec;
- timeHour = (timeHour - timeSec)/60;
- var timeMin = timeHour % 60;
- if( timeMin < 10 )
- timeMin = '0'+timeMin;
- timeHour = (timeHour - timeMin)/60;
- if( timeHour > 0 )
- return timeHour+":"+timeMin+":"+timeSec;
- else
- return timeMin+":"+timeSec;
-};
-function onPlay()
-{
- document.getElementById("PlayOrPause").value = "Pause";
-};
-function onPause()
-{
- document.getElementById("PlayOrPause").value = " Play ";
-};
-function onStop()
-{
- if( slider.Enabled )
- {
- slider.Value = slider.Min;
- slider.Enabled = false;
- }
- info.innerText = "-:--:--/-:--:--";
- document.getElementById("PlayOrPause").value = " Play ";
-};
-var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");
-var liveFeedRoll = 0;
-
-function doUpdate()
-{
- if( vlc.Playing )
- {
- if( ! sliderScrolling )
- {
- if( vlc.Length > 0 )
- {
- // seekable stream
- slider.Enabled = true;
- slider.Max = vlc.Length;
- slider.Value = vlc.Time;
- info.innerText = formatTime(vlc.Time)+"/"+formatTime(vlc.Length);
- document.getElementById("PlayOrPause").Enabled = true;
- }
- else {
- // non-seekable "live" stream
- if( slider.Enabled )
- {
- slider.Value = slider.Min;
- slider.Enabled = false;
- }
- liveFeedRoll = liveFeedRoll & 3;
- info.innerText = liveFeedText[liveFeedRoll++];
- }
- }
- sliderTimerId = setTimeout("doUpdate()", 1000);
- }
- else
- {
- onStop();
- sliderTimerId = 0;
- }
-};
-function doGo(targetURL)
-{
- var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");
- document.vlc.addTarget(targetURL, options, 4+8, -666);
-};
-function doPlayOrPause()
-{
- if( document.vlc.playing )
- {
- document.vlc.pause();
- }
- else
- {
- document.vlc.play();
- }
-};
-function vlc::Play()
-{
- if( ! sliderTimerId )
- {
- sliderTimerId = setTimeout("doUpdate()", 1000);
- }
- onPlay();
-};
-function vlc::Pause()
-{
- if( sliderTimerId )
- {
- clearTimeout(sliderTimerId)
- sliderTimerId = 0;
- }
- onPause();
-};
-function vlc::Stop()
-{
- if( sliderTimerId )
- {
- clearTimeout(sliderTimerId)
- sliderTimerId = 0;
- }
- onStop();
-};
-function slider::Scroll()
-{
- slider.Text = formatTime(slider.Value);
- info.innerText = slider.Text+"/"+formatTime(vlc.Length);
- if( vlc.Time != slider.Value )
- {
- vlc.Time = slider.Value;
- }
-};
-function slider::Change()
-{
- if( sliderScrolling )
- {
- sliderScrolling = false;
- }
- else if( vlc.Time != slider.Value )
- {
- vlc.Time = slider.Value;
- }
-};
-//-->
-</SCRIPT>
-</BODY>
-</HTML>
+<HTML>\r
+<TITLE>VLC ActiveX plugin test page</TITLE>\r
+<BODY>\r
+<TABLE>\r
+<TR><TD colspan="2">\r
+MRL:\r
+<INPUT size="90" id="targetTextField" value="">\r
+<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">\r
+</TD></TR>\r
+<TR><TD colspan="2">\r
+<!--\r
+Insert VideoLAN.VLCPlugin.2 activex control\r
+-->\r
+<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"\r
+ codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab#Version=0,8,6,0"\r
+ width="640"\r
+ height="480"\r
+ id="vlc"\r
+ events="True">\r
+<param name="MRL" value="" />\r
+<param name="ShowDisplay" value="True" />\r
+<param name="AutoLoop" value="False" />\r
+<param name="AutoPlay" value="False" />\r
+<param name="Volume" value="50" />\r
+<param name="StartTime" value="0" />\r
+</OBJECT>\r
+</TD></TR>\r
+<TR><TD>\r
+<!--\r
+Insert MSComctlLib.Slider.2 activex control\r
+-->\r
+<OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"\r
+ width="540"\r
+ height="20"\r
+ id="slider"\r
+ events="True">\r
+<param name="TickStyle" value="3" />\r
+<param name="Min" value="0" />\r
+<param name="Max" value="0" />\r
+<param name="Value" value="0" />\r
+<param name="Enabled" value="False" />\r
+</OBJECT>\r
+</TD><TD width="15%">\r
+<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>\r
+</TD></TR>\r
+<TR><TD colspan="2">\r
+<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>\r
+<INPUT type=button value="Stop" onClick='doStop();'>\r
+ \r
+<INPUT type=button value=" << " onClick='doPlaySlower();'>\r
+<INPUT type=button value=" >> " onClick='doPlayFaster();'>\r
+ \r
+<INPUT type=button value="Show" onClick='document.getElementById("vlc").Visible = true;'>\r
+<INPUT type=button value="Hide" onClick='document.getElementById("vlc").Visible = false;'>\r
+ \r
+<INPUT type=button id="VersionBut" value="Version" onClick='alert(document.getElementById("vlc").VersionInfo);'>\r
+<SPAN style="text-align:center">Volume:</SPAN>\r
+<INPUT type=button value=" - " onClick='updateVolume(-10)'>\r
+<SPAN id="volumeTextField" style="text-align: center">--</SPAN>\r
+<INPUT type=button value=" + " onClick='updateVolume(+10)'>\r
+<INPUT type=button value="Mute" onClick='document.getElementById("vlc").audio.toggleMute();'>\r
+</TD>\r
+</TR>\r
+</TABLE>\r
+<SCRIPT language="javascript">\r
+<!--\r
+\r
+var prevState = 0;\r
+var monitorTimerId = 0;\r
+var sliderScrolling = false;\r
+var ignoreSliderChange = false;\r
+\r
+function updateVolume(deltaVol)\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ vlc.audio.volume += deltaVol;\r
+ document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";\r
+};\r
+function formatTime(timeVal)\r
+{\r
+ var timeHour = Math.round(timeVal / 1000);\r
+ var timeSec = timeHour % 60;\r
+ if( timeSec < 10 )\r
+ timeSec = '0'+timeSec;\r
+ timeHour = (timeHour - timeSec)/60;\r
+ var timeMin = timeHour % 60;\r
+ if( timeMin < 10 )\r
+ timeMin = '0'+timeMin;\r
+ timeHour = (timeHour - timeMin)/60;\r
+ if( timeHour > 0 )\r
+ return timeHour+":"+timeMin+":"+timeSec;\r
+ else\r
+ return timeMin+":"+timeSec;\r
+};\r
+function monitor()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ var newState = vlc.input.state;\r
+ if( vlc.log.messages.count > 0 )\r
+ {\r
+ var iter = vlc.log.messages.iterator();\r
+ while( iter.hasNext )\r
+ {\r
+ var msg = iter.next();\r
+ alert( msg );\r
+ }\r
+ vlc.log.messages.clear();\r
+ }\r
+ if( prevState != newState )\r
+ {\r
+ if( newState == 0 )\r
+ {\r
+ // current media has stopped \r
+ onStop();\r
+ }\r
+ else if( newState == 1 )\r
+ {\r
+ // current media is openning/connecting\r
+ onOpen();\r
+ }\r
+ else if( newState == 2 )\r
+ {\r
+ // current media is buffering data\r
+ onBuffer();\r
+ }\r
+ else if( newState == 3 )\r
+ {\r
+ // current media is now playing\r
+ onPlay();\r
+ }\r
+ else if( vlc.input.state == 4 )\r
+ {\r
+ // current media is now paused\r
+ onPause();\r
+ }\r
+ prevState = newState;\r
+ }\r
+ else if( newState == 3 )\r
+ {\r
+ // current media is playing\r
+ onPlaying();\r
+ }\r
+ monitorTimerId = setTimeout("monitor()", 1000);\r
+};\r
+\r
+/* actions */\r
+\r
+function doGo(targetURL)\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ var options = new Array(":vout=directx");\r
+ vlc.playlist.clear();\r
+ //vlc.playlist.add(targetURL, null, options);\r
+ vlc.playlist.add(targetURL);\r
+ vlc.playlist.play();\r
+ vlc.log.verbosity = 3;\r
+ vlc.log.messages.clear();\r
+ if( monitorTimerId == 0 )\r
+ {\r
+ monitor();\r
+ }\r
+};\r
+function doPlayOrPause()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ if( vlc.playlist.isPlaying )\r
+ {\r
+ vlc.playlist.togglePause();\r
+ }\r
+ else\r
+ {\r
+ vlc.log.messages.clear();\r
+ vlc.playlist.play();\r
+ if( monitorTimerId == 0 )\r
+ {\r
+ monitor();\r
+ }\r
+ }\r
+};\r
+function doStop()\r
+{\r
+ document.getElementById("vlc").playlist.stop();\r
+ if( monitorTimerId != 0 )\r
+ {\r
+ clearTimeout(monitorTimerId);\r
+ monitorTimerId = 0;\r
+ }\r
+ onStop();\r
+};\r
+function doPlaySlower()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ vlc.input.rate = vlc.input.rate / 2;\r
+};\r
+function doPlayFaster()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ vlc.input.rate = vlc.input.rate * 2;\r
+};\r
+\r
+/* events */\r
+\r
+function onOpen()\r
+{\r
+ document.getElementById("info").innerHTML = "Opening...";\r
+ document.getElementById("PlayOrPause").value = "Pause";\r
+};\r
+function onBuffer()\r
+{\r
+ document.getElementById("info").innerHTML = "Buffering...";\r
+ document.getElementById("PlayOrPause").value = "Pause";\r
+};\r
+function onPlay()\r
+{\r
+ onPlaying();\r
+ document.getElementById("PlayOrPause").value = "Pause";\r
+};\r
+var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");\r
+var liveFeedRoll = 0;\r
+function onPlaying()\r
+{\r
+ if( ! sliderScrolling )\r
+ {\r
+ var slider = document.getElementById("slider");\r
+ if( vlc.input.length > 0 )\r
+ {\r
+ // seekable media\r
+ slider.Enabled = true;\r
+ slider.Max = slider.width;\r
+ ignoreSliderChange = true;\r
+ slider.Value = vlc.input.position*slider.width;\r
+ ignoreSliderChange = false;\r
+ document.getElementById("info").innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);\r
+ }\r
+ else\r
+ {\r
+ // non-seekable "live" media\r
+ if( slider.Enabled )\r
+ {\r
+ slider.Value = slider.Min;\r
+ slider.Enabled = false;\r
+ }\r
+ liveFeedRoll = liveFeedRoll & 3;\r
+ document.getElementById("info").innerHTML = liveFeedText[liveFeedRoll++];\r
+ }\r
+ }\r
+};\r
+function onPause()\r
+{\r
+ document.getElementById("PlayOrPause").value = " Play ";\r
+};\r
+function onStop()\r
+{\r
+ vlc.log.verbosity = -1;\r
+ if( slider.Enabled )\r
+ {\r
+ slider.Value = slider.Min;\r
+ slider.Enabled = false;\r
+ }\r
+ document.getElementById("info").innerHTML = "-:--:--/-:--:--";\r
+ document.getElementById("PlayOrPause").value = " Play ";\r
+};\r
+//-->\r
+</SCRIPT>\r
+<SCRIPT language="JScript">\r
+<!--\r
+\r
+document.onreadystatechange=onVLCStateChange;\r
+function onVLCStateChange()\r
+{\r
+ if( document.readyState == 'complete' )\r
+ {\r
+ updateVolume(0);\r
+ }\r
+};\r
+function slider::Scroll()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ var slider = document.getElementById("slider");\r
+ var oldPos = vlc.input.position;\r
+ var newPos = slider.Value/slider.width;\r
+ if( (vlc.input.state == 3) && (oldPos != newPos) )\r
+ {\r
+ vlc.input.position = newPos;\r
+ slider.Text = formatTime(vlc.input.time);\r
+ document.getElementById("info").innerHTML = slider.Text+"/"+formatTime(vlc.input.length);\r
+ }\r
+ sliderScrolling = true;\r
+};\r
+function slider::Change()\r
+{\r
+ var vlc = document.getElementById("vlc");\r
+ var slider = document.getElementById("slider");\r
+ var oldPos = vlc.input.position;\r
+ var newPos = slider.Value/slider.width;\r
+ if( sliderScrolling )\r
+ {\r
+ sliderScrolling = false;\r
+ }\r
+ else if( !ignoreSliderChange && (vlc.input.state == 3) && (oldPos != newPos) )\r
+ {\r
+ vlc.input.position = newPos;\r
+ }\r
+};\r
+//-->\r
+</SCRIPT>\r
+</BODY>\r
+</HTML>\r