Microsoft DirectX 8.0 |
Microsoft® DirectShow® では、フィルタ グラフ内のフィルタがフィルタ グラフ マネージャに渡す、システム定義イベントをサポートしている。フィルタは、IMediaEventSink::Notify メソッドを使用してこれらのイベントをフィルタ グラフ マネージャに渡し、アプリケーションは IMediaEvent::GetEvent メソッドを使用してこれらのイベントを取得する。
GetEvent を呼び出してイベントを取得するとき、イベントはインターフェイス ポインタまたは割り当てられているメモリへのポインタを含むことができる。したがって、GetEvent を使用するコードは、イベントの処理が終った後で IMediaEvent::FreeEventParams を使用してイベントのパラメータに関連付けられているすべてのリソースを解放する必要がある。
DVD イベント通知コードは、Dvdevcod.h に記述されている。 非 DVD イベント通知コードについては、「イベント通知コード」を参照すること。以下に、DVD イベント通知コードをアルファベット順に示す。
DVD イベント通知コード | 説明 |
---|---|
EC_DVD_ANGLE_CHANGE | 利用可能なアングルの数または現在のアングル数が変更されたことを通知する。 |
EC_DVD_ANGLES_AVAILABLE | アングル ブロックが再生中にアングルの変更が可能かどうかを示す。 |
EC_DVD_AUDIO_STREAM_CHANGE | メイン タイトルに対して現在のオーディオ ストリーム番号が変更されたことを通知する。 |
EC_DVD_BUTTON_AUTO_ACTIVATED | ディスク上の命令によってメニュー ボタンが自動的にアクティブになったことを通知する。 |
EC_DVD_BUTTON_CHANGE | 利用可能なボタンの数が変更された、または現在選択されているボタンの番号が変更されたことを通知する。 |
EC_DVD_CHAPTER_AUTOSTOP | IDvdControl2::PlayChaptersAutoStop メソッド呼び出しによって再生が中止されたことを通知する。 |
EC_DVD_CHAPTER_START | DVD ナビゲータが現在のタイトルの新しいチャプターの再生を開始したことを通知する。 |
EC_DVD_CMD_START | 特定のコマンドが開始されたことを通知する。 |
EC_DVD_CMD_END | 特定のコマンドが完了したことを通知する。 |
EC_DVD_CURRENT_HMSF_TIME | .4 〜 1.0 秒ごとに発生するすべての VOBU の先頭での現在のタイムを DVD_HMSF_TIMECODE フォーマットで通知する。 |
EC_DVD_CURRENT_TIME | 0.4 〜 1.0 秒の長さを持つビデオ セグメントであるビデオ オブジェクト単位 (VOBU) の開始をすべて通知する。 |
EC_DVD_DISC_EJECTED | ディスクがドライブから取り出されたことを通知する。 |
EC_DVD_DISC_INSERTED | ディスクがドライブに挿入されたことを通知する。 |
EC_DVD_DOMAIN_CHANGE | DVD ナビゲータの新しいドメインを示す。 |
EC_DVD_ERROR | DVD エラー状態を通知する。 |
EC_DVD_KARAOKE_MODE | ナビゲータがカラオケ データの再生を開始または終了したことを示す。 |
EC_DVD_NO_FP_PGC | DVD ディスクのフォーマットが FP_PGC (First Play Program Chain) でないことを示す。 |
EC_DVD_PARENTAL_LEVEL_CHANGE | オーサリングされたコンテンツのペアレンタル ロック レベルが変更されようとしていることを通知する。 |
EC_DVD_PLAYBACK_RATE_CHANGE | 再生レートの変更が開始され、新しいレートがパラメータに指定されていることを示す。 |
EC_DVD_PLAYBACK_STOPPED | 再生が中止されたことを示す。DVD ナビゲータはタイトルの再生を完了し、以降の再生についての分岐命令を検出しなかった。 |
EC_DVD_PLAYPERIOD_AUTOSTOP | PlayPeriodInTitleAutoStop 呼び出しで指定されたセグメントの再生をナビゲータが完了したことを示す。 |
EC_DVD_STILL_OFF | 静止の終わりを通知する。 |
EC_DVD_STILL_ON | 静止の始まりを通知する。 |
EC_DVD_SUBPICTURE_STREAM_CHANGE | メイン タイトルに対して現在のサブピクチャ ストリーム番号が変更されたことを通知する。 |
EC_DVD_TITLE_CHANGE | 現在のタイトル番号が変更されたことを示す。 |
EC_DVD_VALID_UOPS_CHANGE | 利用可能な IDVDControl2 インターフェイス メソッドのセットが変更されたことを通知する。 |
EC_DVD_WARNING | DVD 警告状態を通知する。 |
利用可能なアングルの数または現在のアングル数が変更されたことを通知する。
パラメータ
- lParam1
- 利用可能なアングルの数を示す DWORD 値。利用可能なアングルの数が 1 の場合、現在のビデオはマルチアングルではない。
- lParam2
- 現在のアングル番号を示す DWORD 値。
注意
アングル番号は、1 〜 9 の値で示される。
現在のアングル番号は、ディスク上でオーサリングされたナビゲーション コマンドによって自動的に変更することができる。また、IDVDControl2 インターフェイスを使用してアプリケーションで制御することもできる。
このイベントは、すべてのドメインで発生する。
アングル ブロックが再生中でアングルの変更が可能などうかを示す。
パラメータ
- lParam1
- アングル ブロックが再生中かどうかを示すブール (BOOL) 値。 ゼロ (0) は、再生がアングル ブロック内ではないのでアングルを利用できないことを示す。1 は、アングル ブロックが再生中であり、アングルの変更が可能であることを示す。
- lParam2
- ゼロ。
注意
アングルの変更はアングル ブロックに限られてはいないが、アングルの変更の明示はアングル ブロック内でのみ見ることができる。
メイン タイトルに対して現在のオーディオ ストリーム番号が変更されたことを通知する。
パラメータ
- lParam1
- 新しいユーザー オーディオ ストリーム番号を示す DWORD 値。オーディオ ストリーム番号は、0 〜 7 の値で示される。ストリーム 0xFFFFFFFF は、ストリームが選択されていないことを示す。
- lParam2
- ゼロ。
注意
現在のオーディオ ストリームは、ディスク上でオーサリングされたナビゲーション コマンドによって自動的に変更することができる。また、IDVDControl2 インターフェイスを使用してアプリケーションで制御することもできる。
このイベントは、すべてのドメインで発生する。
ディスク上の命令によってメニュー ボタンが自動的にアクティブになったことを通知する。この動作は、メニューがタイムアウトするとディスク上の特定のボタンが自動的にアクティブになるように指定されている場合に発生する。
パラメータ
- lParam1
- アクティブにされたボタンを示す DWORD 値。
- lParam2
- ゼロ。
このイベントは、すべてのドメインで発生する。
利用可能なボタンの数が変更された、または現在選択されているボタンの番号が変更されたことを通知する。
パラメータ
- lParam1
- 利用可能なボタンの数を示す DWORD 値。
- lParam2
- 現在選択されているボタン番号を示す DWORD 値。ゼロの場合、ボタンが選択されていないことを暗示する。
注意
ボタン番号は、1 〜 36 の値で示される。
現在選択されているボタン番号は、ディスク上でオーサリングされたナビゲーション コマンドによって自動的に変更することができる。また、IDVDControl2 インターフェイスを使用してアプリケーションで制御することもできる。
このイベントは、任意の利用可能なボタン番号を通知することができる。これらの番号は、ボタンのサブセットだけをアクティブにすることができる IDvdControl::SelectAndActivateButton で使用されるボタン番号とは必ずしも対応しない。
このイベントは、すべてのドメインで発生する。
IDvdControl::PlayChaptersAutoStop メソッド呼び出しによって再生が中止されたことを通知する。
パラメータ
- lParam1
- Zero.
- lParam2
- Zero.
注意
このイベントは、タイトル ドメインで発生する。
DVD プレーヤーが DVD_DOMAIN_Title ドメイン内の新しいプログラムの再生を開始したことを通知する。
パラメータ
- lParam1
- 新しいチャプター (プログラム) 番号を示す DWORD 値。
- lParam2
- ゼロ。
注意
単純なリニア ムービーだけがこのイベントを通知する。
このイベントは、タイトル ドメインで発生する。
特定のコマンドが開始されたことを通知する。
パラメータ
- lParam1
- コマンド ID および HRESULT 戻り値。
- lParam2
- ゼロ。
注意
このイベントは、アプリケーションがいずれかの IDVDControl2::Play... メソッドの DVD_CMD_FLAG_SendEvents フラグをセットした場合にのみ発生する。詳細については「DVD コマンドの同期化」を参照すること。
このイベントは、タイトル ドメインで発生する。
特定のコマンドが完了したことを通知する。
パラメータ
- lParam1
- コマンド ID および完了結果。
- lParam2
- ゼロ。
注意
このイベントは、アプリケーションがいずれかの IDVDControl2::Play... メソッドの DVD_CMD_FLAG_SendEvents フラグをセットした場合にのみ発生する。詳細については「DVD コマンドの同期化」を参照すること。
このイベントは、タイトル ドメインで発生する。
タイトルの開始時を基準とした現在のタイムを DVD_HMSF_TIMECODE フォーマットで通知する。このイベントは、0.4 〜 1.0 秒間隔で発生する VOBU の開始ごとに発生する。
パラメータ
- lParam1
- DVD_HMSF_TIMECODE 構造体を含む ULONG 値。lParam1 を ULONG 変数に代入し、その変数を DVD_HMSF_TIMECODE にキャストして値にアクセスする。
- lParam2
- DVD_TIMECODE_FLAGS の共用体を含む ULONG 値。
注意
DVD_HMSF_TIMECODE フォーマットは、EC_DVD_CURRENT_TIME イベントで返される古い BCD フォーマットの代わりに使用する。HMSF タイムコードは操作が簡単である。EC_DVD_CURRENT_TIME イベントの代わりにナビゲータに EC_DVD_CURRENT_HMSF_TIME イベントを送信させるためには、アプリケーションは IDVDControl2::SetOption(DVD_HMSF_TimeCodeEvents, TRUE) を呼び出す必要がある。このフラグをセットした場合、ナビゲータは IDVDControl2 および IDVDInfo2 メソッド内のすべてのタイム パラメータが DVD_HMSF_TIMECODE として渡されることを想定する。
このイベントは、タイトル ドメインで発生する。
0.4 〜 1.0 秒の長さを持つビデオ セグメントであるビデオ オブジェクト単位 (VOBU) の開始をすべて通知する。
パラメータ
- lParam1
- 現在の再生タイムコードを 2 進化 10 進 (BCD) の時間、分、秒、フレーム (HH:MM:SS:FF) フォーマットで示す DWORD 値。DVD_TIMECODE 構造体のメンバ。
- lParam2
- タイムコードを示すブール (BOOL) 値。ゼロ (0) は 25 フレーム/秒 を示し、1 は 30 フレーム/秒 (非ドロップ) を示す。値 2 は、再生タイムを判定できないことを示す。
注意
単純なリニア ムービーだけがこのイベントを通知する。
このイベントは、タイトル ドメインで発生する。
ディスクがドライブから取り出されたことを通知する。
パラメータ
- lParam1
- ゼロ。
- lParam2
- ゼロ。
注意
ディスクが取り出されると、再生は自動的に中止される。アプリケーションはこのイベントに対して特に操作を行う必要はない。
このイベントは、すべてのドメインで発生する。
ディスクがドライブに挿入されたことを通知する。
パラメータ
- lParam1
- ゼロ。
- lParam2
- ゼロ。
注意
ディスクが挿入されると、再生は自動的に開始される。アプリケーションはこのイベントに対して特に操作を行う必要はない。
このイベントは、すべてのドメインで発生する。
DVD プレーヤーの新しいドメインを示す。
パラメータ
- lParam1
- 新しいドメインを示す DWORD 値。DVD_DOMAIN 列挙データ型のメンバ。
- lParam2
- ゼロ。
注意
DVD プレーヤーは、ドメインを変更するごとにこのイベントを通知する。
このイベントは、すべての DVD ドメインで発生する。
DVD エラー状態を通知する。
パラメータ
- lParam1
- エラー状態を示す DWORD 値。DVD_ERROR 列挙データ型のメンバ。
- lParam2
- デコーダ リージョンをビットの反転セットとして HIWORD に含み、ドライブ/システム リージョンをビットの反転セットとして LOWORD に含む DWORD 値。「注意」を参照。
注意
このイベントは、すべてのドメインで発生する。
lParam1 = DVD_ERROR_IncompatibleSystemAndDecoderRegion の場合、(1) 指定されたリージョンがデコーダにあること、(2) ドライブとデコーダ リージョンが一致しないことを示す。
lParam1 = DVD_ERROR_IncompatibleDiscAndDecoderRegion の場合、(1) 指定されたリージョンがデコーダにあること、(2) ディスクとデコーダ リージョンが一致しないことを示す。
ディスク リージョンは、ディスク上とまったく同じように、lParam2 の LOWORD のビットの予約セットとしてエンコードされる。ディスクがリージョン内で許される場合、そのビットはオフになる。たとえばリージョン 2 のディスクに対する戻り値は、最下位 から 2 番目のビットがオフになった 253 (1111 1101) となる。複数のリージョンを持つディスクでは、このようにオフになったビットが複数ある。
lParam2 の HIWORD のデコーダ リージョンも同様にエンコードされる。
ナビゲータがカラオケ データの再生を開始または終了したことを示す。
パラメータ
- lParam1
- BOOL 値。TRUE はカラオケ トラックの再生中であることを、FALSE はカラオケ データの再生中でないことを示す。
- lParam2
- 予約済み。
注意
DVD プレーヤーは、ドメインを変更するごとにこのイベントを通知する。
このイベントは、すべての DVD ドメインで発生する。
DVD ディスクが FP_PGC (First Play Program Chain) を持たず、DVD ナビゲータが自動的に PGC をロードして再生を開始しないことを通知する。
注意
このイベントは、First Play ドメインで発生する。
オーサリングされたコンテンツのペアレンタル ロック レベルが変更されようとしていることを通知する。
パラメータ
- lParam1
- プレーヤーに設定された新しいペアレンタル ロック レベルを表す LONG 値。
- lParam2
- ゼロ。
注意
DVD ナビゲータのソース フィルタは、DVD ディスク上の SetTmpPML コマンドに対する "オンザフライ" のペアレンタル ロック レベルの変更を現在サポートしていない。
再生レートの変更が開始されたことを通知する。パラメータ lParam1 は新しい再生レートを示す。
パラメータ
- lParam1
- LONG は新しい再生レートを示す。lParam1 < 0 は逆方向再生モードを示す。lParam1 > 0 は正方向再生モードを示す。lParam1 は、実際の再生レートに 10,000 を掛けた値を示す (すなわち、lParam1 = playback_rate * 10000) 。
- lParam2
- ゼロ。
注意
このイベントは、タイトル ドメインで発生する。
再生が中止されたことを示す。DVD ナビゲータはタイトルまたはチャプターの再生を完了し、以降の再生についての分岐命令を検出しなかった。
パラメータ
- lParam1
- ゼロ。
- lParam2
- ゼロ。
注意
このイベントはタイトル ドメインで発生するが、ユーザーが起動した Stop では発生しない。
静止の終わり (PGC、Cell、または VOBU) を通知する。
パラメータ
- lParam1
- ゼロ。
- lParam2
- ゼロ。
注意
このイベントは、現在アクティブな静止が解放されたことを示す。
このイベントは、すべてのドメインで発生する。
PlayPeriodInTitleAutoStop 呼び出しで指定されたセグメントの再生をナビゲータが完了したことを示す。
パラメータ
- lParam1
- ゼロ。
- lParam2
- ゼロ。
注意
このイベントは、タイトル ドメインで発生する。
このイベントは、指定されたセグメントの再生をナビゲータが完了する前にその再生がキャンセルされたときにも送信される。
静止の始まり (PGC、Cell、または VOBU) を通知する。
パラメータ
- lParam1
- ボタンが利用可能かどうかを示すブール (BOOL) 値。ゼロ (0) は、ボタンが利用可能なので IDVDControl2::StillOff メソッドが機能しないことを示す。1 は、ボタンが利用不可能なので IDVDControl2::StillOff が機能することを示す。
- lParam2
- 静止を継続する秒数を表す DWORD 値。0xFFFFFFFF は、無期限の静止、すなわちユーザーがボタンを押すか、またはアプリケーションが IDVDControl2::StillOff を呼び出すまで待機することを示す。
注意
ボタンと静止はすべての組み合わせが可能である (ボタンがオンで静止がオン、ボタンがオンで静止がオフ、ボタンがオフで静止がオン、ボタンがオフで静止がオフ)。
このイベントは、すべてのドメインで発生する。
メイン タイトルに対して現在のサブピクチャ ストリーム番号が変更されたことを通知する。
パラメータ
- lParam1
- 新しいサブピクチャ ストリーム番号を示す DWORD 値。サブピクチャ ストリーム番号は、0 〜 31 の値で示される。ストリーム 0xFFFFFFFF は、ストリームが選択されていないことを示す。
- lParam2
- ゼロ。
注意
サブピクチャは、ディスク上でオーサリングされたナビゲーション コマンドによって自動的に変更することができる。また、IDVDControl2 を使用してアプリケーションで制御することもできる。
このイベントは、すべてのドメインで発生する。
現在のタイトル番号が変更されたことを示す。
パラメータ
- lParam1
- 新しいタイトル番号を示す DWORD 値。
- lParam2
- ゼロ。
注意
タイトル番号は、1 〜 99 の値で示される。この番号は、ディスク全体のタイトル番号である TTN を示すもので、現在の VTS に関するタイトル番号である VTS_TTN を示すものではない。
このイベントは、タイトル ドメインで発生する。
利用可能な IDVDControl2 インターフェイス メソッドのセットが変更されたことを通知する。
パラメータ
- lParam1
- そのビットが DVD ディスクが明示的に無効にした IDVDControl2 コマンドを示している ULONG を表す DWORD 値。
- lParam2
- ゼロ。
注意
このイベントは、DVD ディスク上のコンテンツによって明示的に無効にされた操作を示すだけで、無効になっていないメソッドの呼び出しが有効であることを保証するものではない。たとえばボタンが存在しない場合、IDvdControl::ActivateButton メソッドは明示的に無効にされていなくても機能しない。
このイベントは、すべてのドメインで発生する。
DVD 警告状態を通知する。
パラメータ
- lParam1
- 警告状態を示す DWORD 値。DVD_WARNING 列挙データ型のメンバ。
- lParam2
- ゼロ。
注意
このイベントは、すべてのドメインで発生する。