DirectShow DirectShow 의 사용법 DVD 애플리케이션 스크립트를 사용한 DVD 애플리케이션의 생성 DVD 이벤트 통지의 처리   [목차열람] [주소복사] [슬롯비우기]
DVD 이벤트 통지의 처리
 
Microsoft DirectX 9.0

DVD 이벤트 통지의 처리

MSWebDVD 개체는, 특정의 이벤트가 발생했을 때에, 애플리케이션으로 지정된 메서드에 통지를 송신한다. 이것은, DVD 도메인이 변경되었을 경우, 새로운 페어 렌탈 관리 레벨을 검출했을 경우, 앵글 블록에 들어가는 경우 등이다. 이벤트 파라미터에는, 이벤트에 관한 추가 정보를 포함할 수가 있다. 에러 메시지나 경고도 같은 방법으로 송신된다. 다양한 DVD 이벤트 통지를 얻어오려면,MSWebDVD 개체의 OBJECT 태그아래에 다음의 HTML SCRIPT 태그를 입력한다.

<SCRIPT LANGUAGE="JScript" FOR=DVD EVENT="DVDNotify(EventCode, Param1, Param2)">
    ProcessDVDEvent(EventCode, Param1, Param2)
</SCRIPT>

계속되어, 다음 샘플 코드가 나타내듯이 스크립트에 대해 이벤트 코드 및 ProcessDVDEvent 함수를 정의한다. 이벤트 처리 함수에는 임의의 이름을 붙일 수가 있다. "ProcessEvents" 일 필요는 없다. 이벤트 코드의 더 자세한 정보는, 「DVD 이벤트 통지 코드」를 참조할것.

<SCRIPT LANGUAGE="JScript">

// DVD 이벤트 코드는 257 ~ 283 의 값이 된다.
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); // MSWebDVD 에서는 사용하지 않는다.
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_PLAYPERIOD_AUTOSTOP  = (EC_DVDBASE + 20);
var EC_DVD_BUTTON_AUTO_ACTIVATED  = (EC_DVDBASE + 21);
var EC_DVD_CMD_START  = (EC_DVDBASE + 22);            // MSWebDVD 에서는 사용하지 않는다.
var EC_DVD_CMD_END = (EC_DVDBASE + 23);               // MSWebDVD 에서는 사용하지 않는다.
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_DVD_KARAOKE_MODE  = (EC_DVDBASE + 27);

var nCurDomain;
var nCurParentalLevel;
  
function ProcessDVDEvent(EventCode, Param1, Param2)
{
    switch (EventCode)
    {
    case EC_DVD_DOMAIN_CHANGE:
        nCurDomain = Param1;
        // 처리를 실시한다.
        break;
    case EC_DVD_PARENTAL_LEVEL_CHANGE:
        nCurParentalLevel = Param1;
        // 처리를 실시한다.
        break;
    
    // 다른 이벤트를 처리한다.
    
    default:
        break;
    }
}
</SCRIPT>
↑TOP