mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
395 lines
11 KiB
395 lines
11 KiB
<HTML>
|
|
<HEAD>
|
|
<TITLE>ATL 3.0 test page for object MSVidCtl</TITLE>
|
|
</HEAD>
|
|
<BODY onload="window_onload()">
|
|
|
|
<table border="1" width="89%" height="414">
|
|
<tr>
|
|
<td width="65%" height="383">
|
|
<OBJECT ID="MSVidCtl" CLASSID="CLSID:B0EDF163-910A-11D2-B632-00C04F79498E"
|
|
height="400" width="500"></OBJECT>
|
|
|
|
</td><td width="35%" height="383">
|
|
<p>Current Title: <INPUT id=CurrentTitle type=text size="4" name="CurrentTitle" value="0">
|
|
<p>Current Chapter: <INPUT id=CurrentChap type=text size="4" name="CurrentChap" value="0"> </p>
|
|
<p>Current Time: <INPUT id=CurrentTime type=text value="00:00:00" size="7"></p>
|
|
<p>Current Event: <INPUT id=EventText type=text size="23">
|
|
<p>Current Subtitles:<INPUT id=SPLang type=text value="" size="10">
|
|
<p>Current Audio: <INPUT id=AudioLang type=text value="" size="10">
|
|
|
|
</p>
|
|
<p>
|
|
<INPUT id=Play type=button value="play" onclick="run_onClick()">
|
|
<INPUT id=Pause type=button value="pause" onclick="pause_onClick()">
|
|
<INPUT id=Stop type=button value="stop" onclick="stop_onClick()">
|
|
<INPUT id=RW type=button value="RW" onclick="RW_onClick()">
|
|
<INPUT id=FF type=button value="FF" onclick="FF_onClick()">
|
|
<INPUT id=PrevChap type=button value="|<" onclick="Prev_onClick()">
|
|
<INPUT id=NextChap type=button value=">|" onclick="Next_onClick()">
|
|
<p>
|
|
<INPUT id=Menu type=button value="menu" onclick="menu_onClick()">
|
|
<INPUT id=Resume type=button value="resume" onclick="resume_onClick()">
|
|
<INPUT id=Up type=button value="^" onclick="up_onClick()">
|
|
<INPUT id=Down type=button value="v" onclick="down_onClick()">
|
|
<INPUT id=Left type=button value="<" onclick="left_onClick()">
|
|
<INPUT id=Right type=button value=">" onclick="right_onClick()">
|
|
<INPUT id=Enter type=button value="enter" onclick="enter_onClick()">
|
|
<p>
|
|
<INPUT id=SP type=button value="subtitles" onclick="sp_onClick()">
|
|
<INPUT id=SPText type=text value="0" size="1">
|
|
<INPUT id=Audio type=button value="audio" onclick="audio_onClick()">
|
|
<INPUT id=AudioText type=text value="1" size="1">
|
|
<INPUT id=Angle type=button value="Angle" onclick="angle_onClick()">
|
|
<INPUT id=AngleText type=text value="0" size="1">
|
|
<p>
|
|
<INPUT id=Level type=button value="Parental Level" onclick="pg_onClick()">
|
|
<INPUT id=LevelText type=text value="8" size="1">
|
|
<INPUT id=Password type=password size="10">
|
|
<p>
|
|
<INPUT id=SaveBookmark type=button value="Save Bookmark" onclick="saveBookmark_onClick()">
|
|
<INPUT id=RestoreBookmark type=button value="Restore Bookmark" onclick="restoreBookmark_onClick()">
|
|
|
|
<p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>
|
|
|
|
<OBJECT ID="MSVidSegEvent" CLASSID="CLSID:781C7600-A6C3-4f7a-893E-C89B3E7B67E0">
|
|
</OBJECT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="DVDNotify(event, param1, param2)">
|
|
OnDVDNotify(event, param1, param2)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayForwards(bEnabled)">ProcessPFEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayBackwards(bEnabled)">ProcessPBEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="ShowMenu(bEnabled)">ProcessShowMenuEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="Resume(bEnabled)">ProcessResumeEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="ChangeCurrentAudioStream(bEnabled)">ProcessAudEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="ChangeCurrentSubpictureStream(bEnabled)">ProcessSPEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="ChangeCurrentAngle(bEnabled)">ProcessAngleEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayAtTimeInTitle(bEnabled)">ProcessTimePlayEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayAtTime(bEnabled)">ProcessTimePlayEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayChapterInTitle(bEnabled)">ProcessChapterPlayEvent(bEnabled)</SCRIPT>
|
|
<SCRIPT LANGUAGE="JScript" FOR=MSVidSegEvent EVENT="PlayChapter(bEnabled)">ProcessChapterSearchEvent(bEnabled)</SCRIPT>
|
|
|
|
<SCRIPT language=JSCRIPT>
|
|
|
|
/*************************************************************/
|
|
/* Name: ProcessXXXEvent
|
|
/* Description: Process DVD events
|
|
/*************************************************************/
|
|
function ProcessPFEvent(param1)
|
|
{
|
|
FF.disabled = !param1;
|
|
}
|
|
|
|
function ProcessPBEvent(param1)
|
|
{
|
|
RW.disabled = !param1;
|
|
}
|
|
|
|
function ProcessShowMenuEvent(param1)
|
|
{
|
|
Menu.disabled = !param1;
|
|
}
|
|
|
|
function ProcessResumeEvent(param1)
|
|
{
|
|
Resume.disabled = !param1;
|
|
}
|
|
|
|
function ProcessAudEvent(param1)
|
|
{
|
|
Audio.disabled = !param1;
|
|
}
|
|
|
|
function ProcessSPEvent(param1)
|
|
{
|
|
SP.disabled = !param1;
|
|
}
|
|
|
|
function ProcessAngleEvent(param1)
|
|
{
|
|
Angle.disabled = !param1;
|
|
}
|
|
|
|
function ProcessChapterSearchEvent(param1)
|
|
{
|
|
PrevChap.disabled = !param1;
|
|
NextChap.disabled = !param1;
|
|
}
|
|
|
|
function ProcessChapterPlayEvent(param1)
|
|
{
|
|
PrevChap.disabled = !param1;
|
|
NextChap.disabled = !param1;
|
|
}
|
|
|
|
function ProcessTimePlayEvent(param1)
|
|
{
|
|
}
|
|
|
|
function ProcessTimeSearchEvent(param1)
|
|
{
|
|
}
|
|
|
|
// DVD event codes
|
|
var EC_DVDBASE = 256;
|
|
var EC_DVD_DOMAIN_CHANGE = EC_DVDBASE + 1;
|
|
var EC_DVD_TITLE_CHANGE = EC_DVDBASE + 2;
|
|
var EC_DVD_CHAPTER_START = EC_DVDBASE + 3;
|
|
var EC_DVD_AUDIO_STREAM_CHANGE = EC_DVDBASE + 4;
|
|
var EC_DVD_SUBPICTURE_STREAM_CHANGE = EC_DVDBASE + 5;
|
|
var EC_DVD_ANGLE_CHANGE = EC_DVDBASE + 6;
|
|
var EC_DVD_BUTTON_CHANGE = EC_DVDBASE + 7;
|
|
var EC_DVD_VALID_UOPS_CHANGE = EC_DVDBASE + 8;
|
|
var EC_DVD_STILL_ON = EC_DVDBASE + 9;
|
|
var EC_DVD_STILL_OFF = EC_DVDBASE + 10;
|
|
var EC_DVD_CURRENT_TIME = EC_DVDBASE + 11;
|
|
var EC_DVD_ERROR = EC_DVDBASE + 12;
|
|
var EC_DVD_WARNING = EC_DVDBASE + 13;
|
|
var EC_DVD_CHAPTER_AUTOSTOP = EC_DVDBASE + 14;
|
|
var EC_DVD_NO_FP_PGC = EC_DVDBASE + 15;
|
|
var EC_DVD_PLAYBACK_RATE_CHANGE = EC_DVDBASE + 16;
|
|
var EC_DVD_PARENTAL_LEVEL_CHANGE = EC_DVDBASE + 17;
|
|
var EC_DVD_PLAYBACK_STOPPED = EC_DVDBASE + 18;
|
|
var EC_DVD_ANGLES_AVAILABLE = EC_DVDBASE + 19;
|
|
var EC_DVD_PLAYING = EC_DVDBASE + 254;
|
|
var EC_DVD_PAUSED = EC_DVDBASE + 255;
|
|
var EC_DVD_DISC_EJECTED = EC_DVDBASE + 24;
|
|
var EC_DVD_DISC_INSERTED = EC_DVDBASE + 25;
|
|
var EC_DVD_CURRENT_HMSF_TIME = EC_DVDBASE + 26;
|
|
var EC_PAUSED = 14;
|
|
var DVD_ERROR_Unexpected= 1;
|
|
var DVD_ERROR_CopyProtectFail= 2;
|
|
var DVD_ERROR_InvalidDVD1_0Disc= 3;
|
|
var DVD_ERROR_InvalidDiscRegion= 4;
|
|
var DVD_ERROR_LowParentalLevel= 5;
|
|
var DVD_ERROR_MacrovisionFail= 6;
|
|
var DVD_ERROR_IncompatibleSystemAndDecoderRegions=7;
|
|
var DVD_ERROR_IncompatibleDiscAndDecoderRegions=8;
|
|
var DVD_ERROR_NoSubpictureStream= 99;
|
|
|
|
function window_onload()
|
|
{
|
|
MSVidCtl.View("DVD");
|
|
MSVidCtl.Build();
|
|
MSVidCtl.InputActive.EventHandler = MSVidSegEvent;
|
|
MSVidCtl.InputActive.RestorePreferredSettings();
|
|
MSVidCtl.Run();
|
|
}
|
|
|
|
function OnDVDNotify(event, param1, param2)
|
|
{
|
|
lEventCode = event;
|
|
if (lEventCode == EC_DVD_STILL_ON) {
|
|
text = "STILL_ON";
|
|
}
|
|
|
|
else if (lEventCode == EC_DVD_STILL_OFF) {
|
|
text = "STILL_OFF";
|
|
}
|
|
|
|
else if (lEventCode == EC_DVD_BUTTON_CHANGE) {
|
|
text = "BUTTON_CHANGE";
|
|
}
|
|
|
|
else if (lEventCode == EC_DVD_DOMAIN_CHANGE) {
|
|
text = "DOMAIN_CHANGE";
|
|
}
|
|
|
|
else if (lEventCode == EC_DVD_TITLE_CHANGE) {
|
|
text = "TITLE_CHANGE";
|
|
CurrentTitle.value = param1;
|
|
updateAudio();
|
|
updateSP();
|
|
}
|
|
else if (lEventCode == EC_DVD_CHAPTER_START) {
|
|
text = "CHAPTER_START";
|
|
CurrentChap.value = param1;
|
|
}
|
|
else if (lEventCode == EC_DVD_AUDIO_STREAM_CHANGE) {
|
|
text = "AUDIO_STREAM_CHANGE";
|
|
updateAudio();
|
|
}
|
|
else if (lEventCode == EC_DVD_SUBPICTURE_STREAM_CHANGE) {
|
|
text = "SUBPICTURE_STREAM_CHANGE";
|
|
updateSP();
|
|
}
|
|
else if (lEventCode == EC_DVD_ANGLE_CHANGE) {
|
|
text = "ANGLE_CHANGE";
|
|
}
|
|
else if (lEventCode == EC_DVD_VALID_UOPS_CHANGE) {
|
|
text = "VALID_UOPS_CHANGE";
|
|
}
|
|
|
|
else if (lEventCode == EC_DVD_CURRENT_HMSF_TIME) {
|
|
text = "CURRENT_HMSF_TIME";
|
|
CurrentTime.value = MSVidCtl.InputActive.DVDTimeCode2bstr(param1).substr(0, 8);
|
|
}
|
|
else if (lEventCode == EC_DVD_CURRENT_TIME) {
|
|
text = "CURRENT_TIME";
|
|
}
|
|
|
|
else if (event == EC_DVD_PAUSED ) {
|
|
text = "PAUSED";
|
|
}
|
|
else if (lEventCode == EC_DVD_PLAYING) {
|
|
text = "PLAYING";
|
|
}
|
|
else if (lEventCode == EC_DVD_PLAYBACK_RATE_CHANGE) {
|
|
text = "PLAYBACK_RATE_CHANGE";
|
|
}
|
|
else if (lEventCode == EC_DVD_ERROR) {
|
|
text = "ERROR";
|
|
}
|
|
else if (lEventCode == EC_DVD_PARENTAL_LEVEL_CHANGE) {
|
|
text = "PARENTAL_LEVEL_CHANGE";
|
|
}
|
|
else if (lEventCode == EC_DVD_PLAYBACK_STOPPED) {
|
|
text = "PLAYBACK_STOPPED";
|
|
}
|
|
else if (lEventCode == EC_DVD_ANGLES_AVAILABLE) {
|
|
text = "ANGLES_AVAILABLE";
|
|
//Angle.disabled = !param1;
|
|
|
|
}
|
|
else if (lEventCode == EC_DVD_DISC_EJECTED) {
|
|
text = "DISC_EJECTED";
|
|
}
|
|
else if (lEventCode == EC_DVD_DISC_INSERTED) {
|
|
text = "DISC_INSERTED";
|
|
}
|
|
|
|
EventText.value = text;
|
|
}
|
|
|
|
function saveBookmark_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SaveBookmark();
|
|
}
|
|
|
|
function restoreBookmark_onClick()
|
|
{
|
|
MSVidCtl.InputActive.RestoreBookmark();
|
|
}
|
|
|
|
function pg_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SelectParentalLevel(LevelText.value, "", Password.value);
|
|
MSVidCtl.InputActive.DVDAdm.SaveParentalLevel(LevelText.value, "", Password.value);
|
|
LevelText.value = MSVidCtl.InputActive.GetPlayerParentalLevel();
|
|
}
|
|
|
|
function sp_onClick()
|
|
{
|
|
MSVidCtl.InputActive.CurrentSubpictureStream = SPText.value;
|
|
updateSP();
|
|
}
|
|
|
|
function audio_onClick()
|
|
{
|
|
MSVidCtl.InputActive.CurrentAudioStream = AudioText.value;
|
|
updateAudio();
|
|
}
|
|
|
|
function angle_onClick()
|
|
{
|
|
MSVidCtl.InputActive.CurrentAngle = AngleText.value;
|
|
}
|
|
|
|
function menu_onClick()
|
|
{
|
|
MSVidCtl.InputActive.ShowMenu(3);
|
|
}
|
|
|
|
function resume_onClick()
|
|
{
|
|
MSVidCtl.InputActive.Resume();
|
|
}
|
|
|
|
function FF_onClick()
|
|
{
|
|
MSVidCtl.InputActive.PlayForwards(8.0);
|
|
}
|
|
|
|
function RW_onClick()
|
|
{
|
|
MSVidCtl.InputActive.PlayBackwards(8.0);
|
|
}
|
|
|
|
function Prev_onClick()
|
|
{
|
|
MSVidCtl.InputActive.PlayPrevChapter();
|
|
}
|
|
|
|
function Next_onClick()
|
|
{
|
|
MSVidCtl.InputActive.PlayNextChapter();
|
|
}
|
|
|
|
function run_onClick()
|
|
{
|
|
MSVidCtl.Run();
|
|
}
|
|
|
|
function pause_onClick()
|
|
{
|
|
MSVidCtl.Pause();
|
|
}
|
|
|
|
function stop_onClick()
|
|
{
|
|
MSVidCtl.Stop();
|
|
}
|
|
|
|
function up_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SelectUpperButton();
|
|
}
|
|
|
|
function down_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SelectLowerButton();
|
|
}
|
|
|
|
function left_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SelectLeftButton();
|
|
}
|
|
|
|
function right_onClick()
|
|
{
|
|
MSVidCtl.InputActive.SelectRightButton();
|
|
}
|
|
|
|
function enter_onClick()
|
|
{
|
|
MSVidCtl.InputActive.ActivateButton();
|
|
}
|
|
|
|
function updateSP()
|
|
{
|
|
try {
|
|
if (MSVidCtl.InputActive.SubpictureOn)
|
|
SPLang.value = MSVidCtl.InputActive.GetSubpictureLanguage(MSVidCtl.InputActive.CurrentSubpictureStream);
|
|
else
|
|
SPLang.value = "";
|
|
}
|
|
catch(e) {
|
|
}
|
|
}
|
|
|
|
function updateAudio()
|
|
{
|
|
try {
|
|
AudioLang.value = MSVidCtl.InputActive.GetAudioLanguage(MSVidCtl.InputActive.CurrentAudioStream);
|
|
}
|
|
catch(e) {
|
|
}
|
|
}
|
|
|
|
</SCRIPT>
|
|
|
|
</BODY>
|
|
</HTML>
|