1216 lines
38 KiB
HTML
1216 lines
38 KiB
HTML
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>TV Player</TITLE>
|
||
|
</HEAD>
|
||
|
|
||
|
<BODY SCROLL="no" BGCOLOR="#0" OnLoad="Init();">
|
||
|
|
||
|
|
||
|
<SCRIPT LANGUAGE="JScript">
|
||
|
|
||
|
/******** ATVEF variables *****************/
|
||
|
|
||
|
var g_bAutoEnhancement = false; // Automatically show enhancement when available?
|
||
|
var g_iEnhState = 0; // 0 = No enhancement available
|
||
|
// 1 = enh available, waiting for trigger
|
||
|
// 2 = enh & trigger available, waiting for user
|
||
|
// 3 = enh & trigger available and being displayed
|
||
|
var g_pCurEnh; // Current enhancement. Valid if g_iEnhState >= 1
|
||
|
var g_pCurTrig; // Last trigger. Valid if g_iEnhState >= 2
|
||
|
|
||
|
/******* Other variables ******************/
|
||
|
|
||
|
// Misc Constants
|
||
|
var g_iStartChannel = 5;
|
||
|
var g_strIPAddress = "0.0.0.0";
|
||
|
var g_bUseWinProp = false;
|
||
|
var g_iBigITimeOut = 10000; // milliseconds for which Big I is shown
|
||
|
|
||
|
// Dimensions
|
||
|
var g_cDefaultAppHeight = 600; // Total height of app window in windowed mode
|
||
|
var g_cDefaultPanelHeight = 40; // Height of control panel (below screen)
|
||
|
var g_cTitleBarHeight = 20; // Height of title bar (above screen)
|
||
|
var g_cAspectRatio = 16.0/9.0; // Width/Height of screen area
|
||
|
|
||
|
// State variables
|
||
|
var g_InitializationState = 1; // 0 Creating Objects 1 Init 2 Run, 3 done
|
||
|
var g_bIsFullScreen = true; // Cached value of FullScCtl.FullScreen
|
||
|
var g_bSndBeforePause = true;
|
||
|
var g_bIsVideoRunning = true;
|
||
|
|
||
|
// Button controls
|
||
|
var g_nNumButs = 15;
|
||
|
var g_strButID; // Object IDs
|
||
|
|
||
|
var g_nButPos = new Array(
|
||
|
/* Fields: x, y, width, height, display?, x-base, y-base */
|
||
|
new Array( -35, 2, 15, 15, 'none', 2, 0), //maximize 0
|
||
|
new Array( -35, 2, 15, 15, '', 2, 0), //restore 1
|
||
|
new Array( -50, 2, 15, 15, '', 2, 0), //minimize 2
|
||
|
new Array( -20, 2, 15, 15, '', 2, 0), //close 3
|
||
|
new Array(-100, -25, 24, 18, '', 1, 1), //pause 4
|
||
|
new Array(-100, -25, 24, 18, 'none', 1, 1), //play 5
|
||
|
new Array( 26, -25, 24, 18, '', 1, 1), //ff 6
|
||
|
new Array( -50, -25, 24, 18, '', 1, 1), //rw 7
|
||
|
new Array( 75, -25, 24, 18, '', 1, 1), //not mute 8
|
||
|
new Array( 75, -25, 24, 18, 'none', 1, 1), //mute 9
|
||
|
new Array( 105, -25, 75, 15, '', 1, 1), //volume 10
|
||
|
new Array( -20, -25, 40, 18, '', 1, 1), //channel number 11
|
||
|
new Array(-150, -25, 30, 24, 'none', 1, 1), //show enhancement 12
|
||
|
new Array(-150, -25, 30, 24, 'none', 1, 1), //show enhancement disabled 13
|
||
|
new Array(-150, -25, 30, 24, 'none', 1, 1) //hide enhancement 14
|
||
|
);
|
||
|
|
||
|
/*************************************************************************/
|
||
|
/* Function: Init */
|
||
|
/*************************************************************************/
|
||
|
function Init(){
|
||
|
|
||
|
if(1 != g_InitializationState){
|
||
|
|
||
|
return; // already we have initialized
|
||
|
}/* end of if statement */
|
||
|
|
||
|
|
||
|
g_strButID = new Array(
|
||
|
document.Maximize,
|
||
|
document.Restore,
|
||
|
document.Minimize,
|
||
|
document.Close,
|
||
|
document.Pause,
|
||
|
document.Play,
|
||
|
document.FastForward,
|
||
|
document.Rewind,
|
||
|
document.NotMute,
|
||
|
document.Mute,
|
||
|
document.VolSlider,
|
||
|
document.ChannelNumberTextBox,
|
||
|
document.ShowEnh,
|
||
|
document.ShowEnhDisabled,
|
||
|
document.HideEnh
|
||
|
);
|
||
|
|
||
|
if (g_bUseWinProp == true)
|
||
|
{
|
||
|
//WinProp.BackgroundImage = "player1.bmp";
|
||
|
}
|
||
|
|
||
|
StatusBar.style.left = document.body.clientWidth/2 - 50;
|
||
|
StatusBar.style.top = document.body.clientHeight/2 - 15;
|
||
|
StatusBar.EdgeStyle = "Sunken";
|
||
|
StatusBar.FontFace = "Tahoma";
|
||
|
StatusBar.FontSize = 11;
|
||
|
StatusBar.Text = "Loading...";
|
||
|
StatusBar.ColorStatic = 0xffffff;
|
||
|
StatusBar.ColorHover = 0xffffff;
|
||
|
StatusBar.style.display = '';
|
||
|
|
||
|
ReadProfile();
|
||
|
|
||
|
try {
|
||
|
InitVidCtrl();
|
||
|
ViewCtl.Run();
|
||
|
StatusBar.style.display = 'none';
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
OnResize();
|
||
|
max_OnClick();
|
||
|
window.onresize = OnResize;
|
||
|
|
||
|
ChannelNumberTextBox.EdgeStyle = "Sunken";
|
||
|
ChannelNumberTextBox.FontFace = "Tahoma";
|
||
|
ChannelNumberTextBox.FontSize = 11;
|
||
|
ChannelNumberTextBox.Text = g_iStartChannel;
|
||
|
ChannelNumberTextBox.ColorStatic = 0xffffff;
|
||
|
ChannelNumberTextBox.ColorHover = 0xffffff;
|
||
|
|
||
|
VolSlider.Min = 0;
|
||
|
VolSlider.Max = 65535;
|
||
|
VolSlider.Value = 20000;
|
||
|
AtvefRecv.TuneTo("Channel37", g_strIPAddress);
|
||
|
ControlsDiv.style.visibility = 'visible';
|
||
|
ViewCtl.style.display = '';
|
||
|
|
||
|
g_InitializationState = 2;
|
||
|
|
||
|
}/* end of function Init */
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: ReadProfile */
|
||
|
/* Description: */
|
||
|
/*************************************************************/
|
||
|
function ReadProfile()
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
g_strIPAddress = TVProf.IPSinkAddress;
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
alert("HKLM\Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\TVPlayer\\IPSinkAddress is not set in registry");
|
||
|
window.close();
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
audioDest = TVProf.AudioDestination;
|
||
|
SndCtl.ComponentType = audioDest;
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
//Continue to use default if registry value doesn't exist.
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: InitVidCtrl */
|
||
|
/* Description: */
|
||
|
/*************************************************************/
|
||
|
function InitVidCtrl()
|
||
|
{
|
||
|
ViewCtl.AutoSize = false;
|
||
|
//ViewCtl.MaintainAspectRatio = true;
|
||
|
|
||
|
tscontainer = new ActiveXObject("Tuner.SystemTuningSpaces");
|
||
|
bFoundTS = false;
|
||
|
for (iTS=0; iTS < tscontainer.Count; iTS++)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (bFoundTS == false)
|
||
|
{
|
||
|
ts = tscontainer.Item(iTS);
|
||
|
bFoundTS = true;
|
||
|
}
|
||
|
}
|
||
|
catch(e)
|
||
|
{
|
||
|
}
|
||
|
}
|
||
|
|
||
|
tr = ts.CreateTuneRequest();
|
||
|
tr.Channel = g_iStartChannel;
|
||
|
ViewCtl.View(tr);
|
||
|
ViewCtl.Build();
|
||
|
//ViewCtl.VideoRendererActive.ColorKey = &HFF00FF;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: OnReadyStateChange */
|
||
|
/* Description: Handles ready state changes of the control. */
|
||
|
/*************************************************************/
|
||
|
function OnReadyStateChange(state)
|
||
|
{
|
||
|
return;
|
||
|
}/* end of function OnReadyStateChange */
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: OnResize */
|
||
|
/* Description: Handles resizing of the control. */
|
||
|
/*************************************************************/
|
||
|
function OnResize()
|
||
|
{
|
||
|
try {
|
||
|
lAppWidth = document.body.clientWidth;
|
||
|
lAppHeight = document.body.clientHeight;
|
||
|
|
||
|
// Center line. Used as an offset for button positions.
|
||
|
xOffset = lAppWidth/2;
|
||
|
|
||
|
// One of the offsets from which button positions are measured. The other is 0.
|
||
|
yOffset = lAppHeight;
|
||
|
|
||
|
|
||
|
// In windowed mode buttons, title bar, and screen have their exclusive areas
|
||
|
// In fullscreen mode buttons are superimposed on screen
|
||
|
|
||
|
if (g_bIsFullScreen == false)
|
||
|
{
|
||
|
// TODO: Use the same logic that IE uses to resize the background BMP that we use for the panel
|
||
|
lPanelHeight = (lAppHeight * g_cDefaultPanelHeight) / g_cDefaultAppHeight;
|
||
|
lScreenHeight = lAppHeight - lPanelHeight - g_cTitleBarHeight;
|
||
|
lScreenTop = g_cTitleBarHeight;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
lScreenHeight = lAppHeight;
|
||
|
lScreenTop = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
// In the horizontal dimension the screen stretches from edge to edge
|
||
|
// in both windowed and fullscreen modes.
|
||
|
lScreenWidth = lAppWidth;
|
||
|
lScreenLeft = 0;
|
||
|
|
||
|
// In windowed mode, round the corners of our app window using the WinProp object
|
||
|
if (g_bUseWinProp == true)
|
||
|
{
|
||
|
WinProp.width = lAppWidth;
|
||
|
WinProp.height = lAppHeight;
|
||
|
if (g_bIsFullScreen == false)
|
||
|
WinProp.SetRoundRectRgn(0, 0, lAppWidth+4, lAppHeight+4, 20, 20);
|
||
|
else
|
||
|
WinProp.SetRectRgn(0, 0, lAppWidth, lAppHeight);
|
||
|
}
|
||
|
|
||
|
for (i = 0; i < g_nNumButs; i++)
|
||
|
{
|
||
|
g_strButID[i].style.left = g_nButPos[i][5]*xOffset + g_nButPos[i][0];
|
||
|
g_strButID[i].style.top = g_nButPos[i][6]*yOffset + g_nButPos[i][1];
|
||
|
g_strButID[i].width = g_nButPos[i][2];
|
||
|
g_strButID[i].height = g_nButPos[i][3];
|
||
|
g_strButID[i].style.display = g_nButPos[i][4];
|
||
|
}
|
||
|
|
||
|
// Compute the largest possible size for the video control while maintaining the aspect ratio
|
||
|
if (lScreenWidth/lScreenHeight >= g_cAspectRatio)
|
||
|
{
|
||
|
// height is the constraining factor and we have paddings on the left and right
|
||
|
lVideoHeight = lScreenHeight;
|
||
|
lVideoWidth = lScreenHeight * g_cAspectRatio;
|
||
|
ViewCtl.style.top = lScreenTop;
|
||
|
ViewCtl.style.left = (lScreenWidth - lVideoWidth)/2;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// width is the constraining factor and we have paddings on the top and bottom
|
||
|
lVideoWidth = lScreenWidth;
|
||
|
lVideoHeight = lScreenWidth / g_cAspectRatio;
|
||
|
ViewCtl.style.left = lScreenLeft;
|
||
|
//ViewCtl.style.top = (lScreenHeight - lVideoHeight)/2;
|
||
|
ViewCtl.style.top = 2*g_cTitleBarHeight;
|
||
|
}
|
||
|
|
||
|
//alert("App = " + lAppWidth + "x" + lAppHeight);
|
||
|
//alert("Screen = " + lScreenWidth + "x" + lScreenHeight);
|
||
|
//alert("Video = " + lVideoWidth + "x" + lVideoHeight);
|
||
|
|
||
|
ViewCtl.width = lVideoWidth;
|
||
|
ViewCtl.height = lVideoHeight;
|
||
|
|
||
|
// Position the enhancement icon 5 pixels from the top left corner of the video
|
||
|
// document.all.TheBigI.style.top = ViewCtl.style.top + 5;
|
||
|
// document.all.TheBigI.style.left= ViewCtl.style.left + 5;
|
||
|
|
||
|
// ATVEF content can take up the entire screen area since it doesn't have an aspect ratio
|
||
|
/*
|
||
|
document.all.Atvef.width = lScreenWidth;
|
||
|
document.all.Atvef.height = lScreenHeight;
|
||
|
document.all.Atvef.style.top = lScreenTop;
|
||
|
document.all.Atvef.style.left = lScreenLeft;
|
||
|
*/
|
||
|
// Hack! The atvef page must be aligned with the video so that the video shows through correctly
|
||
|
document.all.Atvef.width = lVideoWidth;
|
||
|
document.all.Atvef.height = lScreenHeight - 2*g_cTitleBarHeight; /*lVideoHeight + (lScreenHeight - lVideoHeight)/2; */
|
||
|
document.all.Atvef.style.top = ViewCtl.style.top;
|
||
|
document.all.Atvef.style.left = ViewCtl.style.left;
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: play_OnClick */
|
||
|
/* Description: OnClick callback for play/pause button */
|
||
|
/*************************************************************/
|
||
|
function play_OnClick()
|
||
|
{
|
||
|
try {
|
||
|
ViewCtl.Run();
|
||
|
g_bVideoIsRunning = true;
|
||
|
|
||
|
SndCtl.Mute = g_bSndBeforePause;
|
||
|
|
||
|
// Switch from play button to pause immediately. Also store for OnResize.
|
||
|
Pause.style.display = '';
|
||
|
g_nButPos[4][4] = '';
|
||
|
Play.style.display = 'none';
|
||
|
g_nButPos[5][4] = 'none';
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: pause_OnClick */
|
||
|
/* Description: OnClick callback for play/pause button */
|
||
|
/*************************************************************/
|
||
|
function pause_OnClick()
|
||
|
{
|
||
|
try {
|
||
|
//ViewCtl.Pause();
|
||
|
ViewCtl.Stop();
|
||
|
g_bVideoIsRunning = false;
|
||
|
|
||
|
g_bSndBeforePause = SndCtl.Mute;
|
||
|
SndCtl.Mute = true;
|
||
|
|
||
|
Pause.style.display = 'none';
|
||
|
g_nButPos[4][4] = 'none';
|
||
|
Play.style.display = '';
|
||
|
g_nButPos[5][4] = '';
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: fwd_OnClick */
|
||
|
/* Description: OnClick callback for forward button */
|
||
|
/*************************************************************/
|
||
|
function fwd_OnClick()
|
||
|
{
|
||
|
try {
|
||
|
tr.Channel = tr.Channel + 1;
|
||
|
if (tr.Channel > tr.TuningSpace.MaxChannel)
|
||
|
tr.Channel = tr.TuningSpace.MinChannel;
|
||
|
ViewCtl.InputActive.Tune = tr;
|
||
|
ChannelNumberTextBox.text = tr.Channel;
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: rew_OnClick */
|
||
|
/* Description: OnClick callback for rewind button */
|
||
|
/*************************************************************/
|
||
|
function rew_OnClick()
|
||
|
{
|
||
|
try {
|
||
|
tr.Channel = tr.Channel - 1;
|
||
|
if (tr.Channel < tr.TuningSpace.MinChannel)
|
||
|
tr.Channel = tr.TuningSpace.MaxChannel;
|
||
|
ViewCtl.InputActive.Tune = tr;
|
||
|
ChannelNumberTextBox.text = tr.Channel;
|
||
|
}
|
||
|
catch(e) {
|
||
|
HandleError(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/*************************************************************/
|
||
|
function enhance_OnClick()
|
||
|
{
|
||
|
SetAutoEnhance();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: max_OnClick
|
||
|
/* Description: Maximize the window
|
||
|
/*************************************************************/
|
||
|
function max_OnClick()
|
||
|
{
|
||
|
// Toggle display of Maximize and Restore buttons. To do this, just change the
|
||
|
// values in the g_nButPos array. OnResize() will do the rest.
|
||
|
|
||
|
g_nButPos[0][4] = 'none'; // Maximize
|
||
|
g_nButPos[1][4] = ''; // Restore
|
||
|
|
||
|
FullScCtl.FullScreen = true;
|
||
|
g_bIsFullScreen = true;
|
||
|
|
||
|
for (i = 0; i < g_nNumButs; i++)
|
||
|
{
|
||
|
g_strButID[i].BackColor = "0"; //"16711935";
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
oHTA.windowState = "maximize";
|
||
|
WinProp.ShowWindow(3);
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: restore_OnClick
|
||
|
/* Description: Restore the window
|
||
|
/*************************************************************/
|
||
|
function restore_OnClick()
|
||
|
{
|
||
|
// Toggle display of Maximize and Restore buttons. To do this, just change the
|
||
|
// values in the g_nButPos array. OnResize() will do the rest.
|
||
|
|
||
|
g_nButPos[0][4] = ''; // Maximize
|
||
|
g_nButPos[1][4] = 'none'; // Restore
|
||
|
|
||
|
FullScCtl.FullScreen = false;
|
||
|
g_bIsFullScreen = false;
|
||
|
|
||
|
for (i = 0; i < g_nNumButs; i++)
|
||
|
{
|
||
|
g_strButID[i].BackColor = "0";
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
oHTA.windowState = "normal";
|
||
|
WinProp.ShowWindow(9);
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: min_OnClick
|
||
|
/* Description: Minimize the window
|
||
|
/*************************************************************/
|
||
|
function min_OnClick()
|
||
|
{
|
||
|
//oHTA.windowState = "minimize";
|
||
|
if (g_bUseWinProp == true)
|
||
|
{
|
||
|
WinProp.ShowWindow(6);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: close_OnClick
|
||
|
/* Description: Close the window
|
||
|
/*************************************************************/
|
||
|
function close_OnClick()
|
||
|
{
|
||
|
window.close();
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: muteon
|
||
|
/* Description: turn sound off
|
||
|
/*************************************************************/
|
||
|
function muteon()
|
||
|
{
|
||
|
SndCtl.Mute = true;
|
||
|
Mute.style.display = '';
|
||
|
NotMute.style.display = 'none';
|
||
|
g_nButPos[8][4] = 'none'; //array from which OnResize() reads button attributes
|
||
|
g_nButPos[9][4] = ''; //array from which OnResize() reads button attributes
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: muteoff
|
||
|
/* Description: turn sound on
|
||
|
/*************************************************************/
|
||
|
function muteoff()
|
||
|
{
|
||
|
SndCtl.Mute = false;
|
||
|
Mute.style.display = 'none';
|
||
|
NotMute.style.display = '';
|
||
|
g_nButPos[8][4] = ''; //array from which OnResize() reads button attributes
|
||
|
g_nButPos[9][4] = 'none'; //array from which OnResize() reads button attributes
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: enhOn_onClick */
|
||
|
/*************************************************************/
|
||
|
function showEnh_onClick()
|
||
|
{
|
||
|
// state must be 2
|
||
|
ChangeURL();
|
||
|
SetEnhState(3);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: enhOff_onClick */
|
||
|
/*************************************************************/
|
||
|
function hideEnh_onClick()
|
||
|
{
|
||
|
// state must be 3
|
||
|
SwitchOffEnhancement();
|
||
|
SetEnhState(2);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: SetVolume
|
||
|
/* Description: Sets the volume level
|
||
|
/*************************************************************/
|
||
|
function SetVolume(val)
|
||
|
{
|
||
|
SndCtl.Volume = val;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: ShowButtons
|
||
|
/* Description: Unhides the button controls
|
||
|
/*************************************************************/
|
||
|
function ShowButtons()
|
||
|
{
|
||
|
ControlsDiv.style.display = '';
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: Drag, StartDrag, StopDrag
|
||
|
/* Description: Handles window moves
|
||
|
/*************************************************************/
|
||
|
var oldX;
|
||
|
var oldY;
|
||
|
var top;
|
||
|
var left;
|
||
|
|
||
|
function KeyUp()
|
||
|
{
|
||
|
ViewCtl.About();
|
||
|
}
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: HandleError
|
||
|
/* Description: Handles errors
|
||
|
/*************************************************************/
|
||
|
function HandleError(error)
|
||
|
{
|
||
|
r = "Script error "+ error + "\n" + error.srcText;
|
||
|
if (error.line > 0)
|
||
|
{
|
||
|
r += "\nat line " + error.line + ", character " + error.linepos;
|
||
|
}
|
||
|
window.alert(r);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**********************ATVEF stuff**************************/
|
||
|
|
||
|
function HideBigI()
|
||
|
{
|
||
|
document.all.TheBigI.style.display = 'none';
|
||
|
}
|
||
|
|
||
|
|
||
|
function ShowBigI()
|
||
|
{
|
||
|
document.all.TheBigI.style.left = document.body.clientWidth - 80;
|
||
|
document.all.TheBigI.style.top = ViewCtl.style.top;
|
||
|
document.all.TheBigI.style.display = '';
|
||
|
window.setTimeout("HideBigI()", g_iBigITimeOut);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: EnhancementNewHandler
|
||
|
/*************************************************************/
|
||
|
function EnhancementNewHandler(pEnh)
|
||
|
{
|
||
|
//window.alert("New Enhancement " + pEnh.SessionName);
|
||
|
|
||
|
if (g_iEnhState != 0)
|
||
|
{
|
||
|
alert("Debug error: Enh available, recd new enhancement");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// State 0 -> whatever
|
||
|
ProcessEnhancement(pEnh);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: EnhancementNewHandler
|
||
|
/*************************************************************/
|
||
|
function EnhancementUpdatedHandler(pEnh, flags)
|
||
|
{
|
||
|
//window.alert("Enhancement Updated " + pEnh.SessionName + " : " + flags);
|
||
|
|
||
|
// Clear current enhancement, triggers etc
|
||
|
SetEnhState(0);
|
||
|
|
||
|
// State 0 -> whatever
|
||
|
ProcessEnhancement(pEnh);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: EnhancementNewHandler
|
||
|
/*************************************************************/
|
||
|
function EnhancementExpiredHandler(pEnh)
|
||
|
{
|
||
|
//window.alert("Enhancement Expired "+ pEnh.SessionName);
|
||
|
|
||
|
if (g_iEnhState < 1)
|
||
|
{
|
||
|
alert("Debug error: Enh not available, recd expired enhancement");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (g_iEnhState == 3)
|
||
|
{
|
||
|
// State 3 -> 2
|
||
|
SwitchOffEnhancement();
|
||
|
}
|
||
|
|
||
|
// State 2 -> 0
|
||
|
SetEnhState(0);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: EnhancementNewHandler
|
||
|
/*************************************************************/
|
||
|
function TriggerNewHandler(pTrig, bActive)
|
||
|
{
|
||
|
// window.alert("New Trigger " + pTrig.Name + " " + pTrig.URL);
|
||
|
|
||
|
if (g_iEnhState == 0) // no enhancement
|
||
|
{
|
||
|
alert("Debug error: received trigger but no enhancement available");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
// The flowchart contains 3 checks here that we don't support
|
||
|
|
||
|
if ((g_iEnhState == 1) || // g_pCurTrig is invalid
|
||
|
(pTrig.URL != g_pCurTrig.URL))
|
||
|
{
|
||
|
if (pTrig.Name == "")
|
||
|
{
|
||
|
// Attempting to change URL, but trigger is nameless. Ignore.
|
||
|
alert("Nameless trigger, ignored");
|
||
|
return;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// For the demo assume all triggers are releasable
|
||
|
|
||
|
//alert("New trigger " + pTrig.Name + " " + pTrig.URL);
|
||
|
|
||
|
g_pCurTrig = pTrig;
|
||
|
iPrevState = g_iEnhState;
|
||
|
SetEnhState(2);
|
||
|
ShowBigI();
|
||
|
|
||
|
if ((g_bAutoEnhancement == true) ||
|
||
|
(iPrevState == 3)) // We were already viewing atvef
|
||
|
{
|
||
|
ChangeURL();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
//if (pTrig.Script != "")
|
||
|
// alert(pTrig.Script);
|
||
|
|
||
|
if (g_iEnhState == 3)
|
||
|
document.frames("Atvef").window.execScript(pTrig.Script);
|
||
|
|
||
|
/*
|
||
|
// Come back to state 1
|
||
|
if (g_iEnhState == 3)
|
||
|
{
|
||
|
SwitchOffEnhancement(); //Optimization, don't do
|
||
|
SetEnhState(2);
|
||
|
}
|
||
|
if (g_iEnhState == 2)
|
||
|
{
|
||
|
SetEnhState(1);
|
||
|
}
|
||
|
|
||
|
// Now start going up again
|
||
|
g_pCurTrig = pTrig;
|
||
|
SetEnhState(2);
|
||
|
|
||
|
ShowBigI();
|
||
|
|
||
|
if (g_bAutoEnhancement == true)
|
||
|
{
|
||
|
// Automatically go from State 2 -> 3
|
||
|
ProcessTrigger(pTrig);
|
||
|
SetEnhState(3);
|
||
|
}
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: EnhancementNewHandler
|
||
|
/*************************************************************/
|
||
|
function ChangeURL()
|
||
|
{
|
||
|
if (g_bIsVideoRunning == true)
|
||
|
{
|
||
|
// Hack! Since tv: does not tune to atvef content, let
|
||
|
// video run in background and have a colorkeyed region
|
||
|
// on the atvef page in place of the tv: object
|
||
|
|
||
|
// pause_OnClick();
|
||
|
// ViewCtl.style.display = 'none';
|
||
|
}
|
||
|
|
||
|
HideBigI();
|
||
|
NavigateAtvefTo(g_pCurTrig.URL);
|
||
|
document.all.Atvef.style.visibility = "visible";
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: ProcessEnhancement */
|
||
|
/*************************************************************/
|
||
|
function ProcessEnhancement(pEnh)
|
||
|
{
|
||
|
// current state must be 0
|
||
|
SetEnhState(1);
|
||
|
g_pCurEnh = pEnh;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: SwitchOffEnhancement */
|
||
|
/*************************************************************/
|
||
|
function SwitchOffEnhancement()
|
||
|
{
|
||
|
// Switch to video
|
||
|
document.all.Atvef.style.visibility = "hidden";
|
||
|
// play_OnClick();
|
||
|
ViewCtl.style.display = '';
|
||
|
|
||
|
// Current state must be 3
|
||
|
SetEnhState(2);
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: Parse URL and navigate to it */
|
||
|
/*************************************************************/
|
||
|
function NavigateAtvefTo(strURL)
|
||
|
{
|
||
|
var strURL2;
|
||
|
|
||
|
if (strURL.substr(0,3) == "lid")
|
||
|
{
|
||
|
strURL2 = "file://C:\\atveftemp\\" + strURL.substr(6);
|
||
|
//alert("lid, " + strURL2);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
strURL2 = strURL;
|
||
|
//alert("regular, " + strURL2);
|
||
|
}
|
||
|
|
||
|
document.all.Atvef.src = strURL2;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: SetEnhState */
|
||
|
/*************************************************************/
|
||
|
function SetEnhState(newState)
|
||
|
{
|
||
|
if (newState == 0)
|
||
|
{
|
||
|
ShowEnh.style.display = 'none';
|
||
|
//ShowEnhDisabled.style.display = 'none';
|
||
|
HideEnh.style.display = 'none';
|
||
|
}
|
||
|
else if (newState == 1)
|
||
|
{
|
||
|
ShowEnh.style.display = 'none';
|
||
|
//ShowEnhDisabled.style.display = '';
|
||
|
HideEnh.style.display = 'none';
|
||
|
}
|
||
|
else if (newState == 2)
|
||
|
{
|
||
|
ShowEnh.style.display = '';
|
||
|
//ShowEnhDisabled.style.display = 'none';
|
||
|
HideEnh.style.display = 'none';
|
||
|
}
|
||
|
else if (newState == 3)
|
||
|
{
|
||
|
ShowEnh.style.display = 'none';
|
||
|
//ShowEnhDisabled.style.display = 'none';
|
||
|
HideEnh.style.display = '';
|
||
|
}
|
||
|
|
||
|
g_iEnhState = newState;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*************************************************************/
|
||
|
/* Name: SetAutoEnhance */
|
||
|
/*************************************************************/
|
||
|
function SetAutoEnhance()
|
||
|
{
|
||
|
if (g_bAutoEnhancement == true)
|
||
|
{
|
||
|
g_bAutoEnhancement = false;
|
||
|
// autoEnh.value = "AutoEnhance on";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
g_bAutoEnhancement = true;
|
||
|
// autoEnh.value = "AutoEnhance off";
|
||
|
if (g_iEnhState == 2)
|
||
|
{
|
||
|
ProcessTrigger(g_pCurTrig);
|
||
|
SetEnhState(3);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
</SCRIPT>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<!--
|
||
|
<HTA:APPLICATION ID="oHTA"
|
||
|
APPLICATIONNAME="myApp"
|
||
|
BORDER="none"
|
||
|
BORDERSTYLE="normal"
|
||
|
CAPTION="yes"
|
||
|
ICON=""
|
||
|
MAXIMIZEBUTTON="yes"
|
||
|
MINIMIZEBUTTON="yes"
|
||
|
SHOWINTASKBAR="yes"
|
||
|
SINGLEINSTANCE="yes"
|
||
|
SYSMENU="yes"
|
||
|
VERSION="1.0"
|
||
|
>
|
||
|
-->
|
||
|
|
||
|
<!--
|
||
|
<DIV ID="WinPropDiv">
|
||
|
<OBJECT ID="WinProp" CLASSID="CLSID:11F4496D-85B1-40D7-8919-D3DF5732A1CF"
|
||
|
style="position:absolute;top=0;left=0">
|
||
|
</OBJECT>
|
||
|
</DIV>
|
||
|
-->
|
||
|
|
||
|
<OBJECT ID="TVProf" CLASSID="CLSID:EB24C040-9E6B-4469-A425-87DCCFFE4395">
|
||
|
</OBJECT>
|
||
|
|
||
|
<OBJECT ID="FullScCtl" CLASSID="CLSID:39FC3F46-F428-44D2-829B-74CD1DA76F44">
|
||
|
</OBJECT>
|
||
|
|
||
|
<OBJECT ID="SndCtl" CLASSID="CLSID:EFE22EF0-D363-4986-AC56-9989C61EC5E4">
|
||
|
</OBJECT>
|
||
|
|
||
|
<OBJECT id="AtvefRecv" ClassID="CLSID:79AF05FC-2378-11D3-BF62-00C04F8EC1B5">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=AtvefRecv EVENT="NotifyEnhancementNew(pEnh)">EnhancementNewHandler(pEnh)</SCRIPT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=AtvefRecv EVENT="NotifyEnhancementUpdated(pEnh, flags)">EnhancementUpdatedHandler(pEnh, flags)</SCRIPT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=AtvefRecv EVENT="NotifyEnhancementExpired(pEnh)">EnhancementExpiredHandler(pEnh)</SCRIPT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=AtvefRecv EVENT="NotifyTriggerNew(pTrig, active)">TriggerNewHandler(pTrig, active)</SCRIPT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=AtvefRecv EVENT="NotifyTriggerUpdated(pTrig, active, flags)">TriggerNewHandler(pTrig, active)</SCRIPT>
|
||
|
|
||
|
<DIV id="ViewCtlDiv">
|
||
|
<OBJECT ID="ViewCtl" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:B0EDF163-910A-11D2-B632-00C04F79498E">
|
||
|
</OBJECT>
|
||
|
</DIV>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=ViewCtlDiv EVENT=OnClick>ShowButtons()</SCRIPT>
|
||
|
|
||
|
<IFRAME id="Atvef"
|
||
|
style="visibility:hidden;position:absolute;left:0;top:0;"
|
||
|
marginheight=0
|
||
|
marginwidth=0
|
||
|
frameborder=0
|
||
|
>
|
||
|
</IFRAME>
|
||
|
|
||
|
<IFRAME id="TheBigI"
|
||
|
style="display:none;position:absolute;left:10;top:10;"
|
||
|
marginheight=0
|
||
|
marginwidth=0
|
||
|
frameborder=0
|
||
|
width=48
|
||
|
height=48
|
||
|
src="bigi.htm"
|
||
|
scrolling=no
|
||
|
>
|
||
|
</IFRAME>
|
||
|
|
||
|
|
||
|
<DIV id=ControlsDiv style="visibility:hidden;zindex:2;">
|
||
|
|
||
|
<OBJECT ID="Maximize" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_MAX">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_MAX">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_MAX">
|
||
|
<PARAM NAME="ToolTip" VALUE="Maximize">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Maximize EVENT=OnClick>max_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Restore" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_RESTORE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_RESTORE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_RESTORE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Restore">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Restore EVENT=OnClick>restore_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Minimize" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_MIN">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_MIN">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_MIN">
|
||
|
<PARAM NAME="ToolTip" VALUE="Minimize">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Minimize EVENT=OnClick>min_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Close" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_CLOSE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_CLOSE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_CLOSE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Close">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Close EVENT=OnClick>close_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Pause" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_FULLSTATIC_PAUSE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_FULLHOVER_PAUSE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_FULLDOWN_PAUSE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Pause">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Pause EVENT=OnClick>pause_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Play" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_FULLSTATIC_PLAY">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_FULLHOVER_PLAY">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_FULLDOWN_PLAY">
|
||
|
<PARAM NAME="ToolTip" VALUE="Play">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Play EVENT=OnClick>play_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Rewind" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_CHANNELDOWN">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_CHANNELDOWN">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_CHANNELDOWN">
|
||
|
<PARAM NAME="ToolTip" VALUE="Rewind">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Rewind EVENT=OnClick>rew_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="FastForward" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_CHANNELUP">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_CHANNELUP">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_CHANNELUP">
|
||
|
<PARAM NAME="ToolTip" VALUE="FastForward">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=FastForward EVENT=OnClick>fwd_OnClick()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="NotMute" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_SOUND">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_SOUND">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_SOUND">
|
||
|
<PARAM NAME="ToolTip" VALUE="Mute">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=NotMute EVENT=OnClick>muteon()</SCRIPT>
|
||
|
|
||
|
|
||
|
<OBJECT ID="Mute" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_FULLSTATIC_MUTE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_MUTE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_MUTE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Turn Sound On">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Mute EVENT=OnClick>muteoff()</SCRIPT>
|
||
|
|
||
|
<OBJECT ID="VolSlider" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:E2909DE3-0EE0-46E6-9258-E1CFE5AC73F9"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="BackStatic" VALUE="IDR_STATIC_VOLSLIDER">
|
||
|
<PARAM NAME="BackHover" VALUE="IDR_HOVER_VOLSLIDER">
|
||
|
<PARAM NAME="BackPush" VALUE="IDR_DOWN_VOLSLIDER">
|
||
|
<PARAM NAME="ThumbStatic" VALUE="IDR_STATIC_VOLTHUMB">
|
||
|
<PARAM NAME="ThumbHover" VALUE="IDR_HOVER_VOLTHUMB">
|
||
|
<PARAM NAME="ThumbPush" VALUE="IDR_DOWN_VOLTHUMB">
|
||
|
<PARAM NAME="ToolTip" VALUE="Volume">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=VolSlider EVENT=OnValueChange>SetVolume(VolSlider.Value)</SCRIPT>
|
||
|
|
||
|
<OBJECT ID="ShowEnhDisabled" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_DISABLED_ENHANCE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_DISABLED_ENHANCE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DISABLED_ENHANCE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Waiting for trigger">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
|
||
|
<OBJECT ID="ShowEnh" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_ENHANCE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_ENHANCE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_ENHANCE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Show enhancement">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=ShowEnh EVENT=OnClick>showEnh_onClick()</SCRIPT>
|
||
|
|
||
|
<OBJECT ID="HideEnh" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_STATIC_ENHANCE">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_HOVER_ENHANCE">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_DOWN_ENHANCE">
|
||
|
<PARAM NAME="ToolTip" VALUE="Switch off enhancement">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=HideEnh EVENT=OnClick>hideEnh_onClick()</SCRIPT>
|
||
|
|
||
|
<!--
|
||
|
<OBJECT ID="AutoEnhancement" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:7A136DD3-BEBE-47BE-B6D9-E2CC7F816D43"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="ImageStatic" VALUE="IDR_FULLSTATIC_MENU">
|
||
|
<PARAM NAME="ImageHover" VALUE="IDR_FULLHOVER_MENU">
|
||
|
<PARAM NAME="ImagePush" VALUE="IDR_FULLDOWN_MENU">
|
||
|
<PARAM NAME="ToolTip" VALUE="Show Enhancement">
|
||
|
<PARAM NAME="ToolTipMaxWidth" VALUE="130">
|
||
|
<PARAM NAME="TransparentBlitType" VALUE="1">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
<SCRIPT LANGUAGE="JScript" FOR=Enhancement EVENT=OnClick>SetAutoEnhance()</SCRIPT>
|
||
|
-->
|
||
|
|
||
|
<OBJECT ID="ChannelNumberTextBox" style="display:none;position:absolute;"
|
||
|
CLASSID="CLSID:F2A6C42D-5515-4013-85F4-1EC3D33950DA"
|
||
|
WIDTH=30 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="16711935">
|
||
|
</OBJECT>
|
||
|
|
||
|
</DIV> <!-- parent of all buttons, sliders, textbox -->
|
||
|
|
||
|
<OBJECT ID="StatusBar" style="display:show;position:absolute;top:300;left:300;"
|
||
|
CLASSID="CLSID:F2A6C42D-5515-4013-85F4-1EC3D33950DA"
|
||
|
WIDTH=150 HEIGHT=30 >
|
||
|
<PARAM NAME="ResourceDll" VALUE="msmfcnt.dll">
|
||
|
<PARAM NAME="Windowless" VALUE="0">
|
||
|
<PARAM NAME="BackColor" VALUE="0">
|
||
|
</OBJECT>
|
||
|
|
||
|
<span id=GUIDNULL style="display:none;zindex:4;">{00000000-0000-0000-0000-000000000000}</span>
|
||
|
<span id=GUIDTV style="display:none;zindex:5">{a799a800-a46d-11d0-a18c-00a02401dcd4}</span>
|
||
|
|
||
|
|
||
|
</BODY>
|
||
|
</HTML>
|