Microsoft DirectX 8.0

IAMExtDevice インターフェイス

IAMExtDevice インターフェイスは、外部デバイスを制御する基本インターフェイスである。このインターフェイスを実装すると、さまざまな種類のデバイスを制御できる。ただし、現在の Microsoft® DirectShow® の実装では VCR に限られる。IAMExtDevice インターフェイスは外部ハードウェアの全般的な設定を制御するもので、VCR の詳細設定を制御する IAMExtTransport インターフェイスと組み合わせて使用することが想定されている。フィルタが SMPTE (Society of Motion Picture and Television Engineers) タイムコードを管理していて、外部デバイスが該当する機能を備えている場合は、IAMTimecodeReaderIAMTimecodeGenerator、および IAMTimecodeDisplay の各インターフェイスも実装できる。

VCR などの外部デバイスを制御するフィルタまたはアプリケーションを作成する場合は、このインターフェイスを実装する。このインターフェイスが制御するのはデバイスの全般情報なので、外部デバイス固有の詳細なプロパティを制御するには、IAMExtTransport インターフェイスを実装する。

アプリケーションでは、VCR などの外部デバイスを直接インスタンス化および制御できる。しかし、これらのデバイスがグラフ内の唯一のフィルタであっても、常にフィルタ グラフのコンテキストの中でこれらのデバイスをインスタンス化することが推奨される。

このインターフェイスは、アプリケーションに外部デバイス制御を追加する場合に使用する。

アプリケーションでは、フィルタ グラフを使用してフィルタを列挙し、適切なフィルタから IAMExtDevice インターフェイスを直接取得する。

ハードウェアの要件

外部 VCR を制御するには、特定のハードウェアの要件が推奨される。RS-422 シリアル インターフェイスを持つ VCR の場合は、特別なシリアル ポート カードまたは外付けの RS-232 対 RS-422 アダプタが必要である。さらに、最適なパフォーマンスを得るには、16550 高性能 UART (Universal Asynchronous Receiver/Transmitter) が組み込まれたシリアル ポート カードをコンピュータが装着し、38.4 ボーなどの高速なボーレートを実現する必要がある。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IAMExtDevice メソッド説明
GetCapability 外部デバイスの機能を取得する。
get_ExternalDeviceID 外部デバイスのモデル番号を取得する。
get_ExternalDeviceVersion 外部デバイスのオペレーティング ソフトウェアのバージョン番号を取得する。
put_DevicePort 外部デバイスの接続先の通信ポートを指定する。
get_DevicePower 外部デバイスの電源モードがオン、オフ、スタンバイのどれであるかを取得する。
put_DevicePower 外部デバイスの電源モードをオン、オフ、またはスタンバイに設定する。
Calibrate 外部デバイスの転送メカニズムをキャリブレートする。
get_DevicePort 外部デバイスの接続先の通信ポートを取得する。

IAMExtDevice::Calibrate

IAMExtDevice インターフェイス

外部デバイスの転送メカニズムをキャリブレートする。

構文

HRESULT Calibrate(
    HEVENT hEvent,
    long Mode,
    long *pStatus
);

パラメータ

hEvent
[in] このプロセスの終了を通知するために使用するイベント。
Mode
[in] キャリブレーション プロセスをアクティブまたは非アクティブにする値。次のいずれかを指定する。
ED_ACTIVE キャリブレーション プロセスをアクティブにする。
ED_INACTIVE キャリブレーション プロセスを非アクティブにする。
NULL 現在の状態がアクティブまたは非アクティブであることを判別するときに使用する。
pStatus
[out] OATRUE または OAFALSE に設定される変数へのポインタ。OATRUE はイベントがアクティブであることを表し、OAFALSE は非アクティブであることを表す。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

注意

このメソッドは、キャリブレーションが必要な特定の外部デバイスで使用する。たとえば、テープを巻き戻してカウンタをリセットする場合、またはタイムコード リーダーやジェネレータのフレーム オフセットを計算する場合などがこれに相当する。

各種外部デバイスに対応するフィルタでは、デバイスが必要とするキャリブレーションに応じて、このメソッドをそれぞれ異なるフォーマットで実装できる。このメソッドでは、IMediaEventSink インターフェイスがイベント シンクを既に設定している、または別のイベント通知メソッドが設定されていることが前提である。

IAMExtDevice::GetCapability

IAMExtDevice インターフェイス

外部デバイスの機能を取得する。

構文

HRESULT GetCapability(
    long Capability,
    long *pValue,
    double *pdblValue
);

パラメータ

Capability
[in] 確認する機能を指定する値。次のいずれかを指定する。
ED_DEVCAP_CAN_RECORD デバイスが記録可能かどうかを確認する。
ED_DEVCAP_CAN_RECORD_STROBE デバイスがシングル フレーム記録可能かどうかを確認する。
ED_DEVCAP_CAN_SAVE デバイスがデータを保存可能かどうかを確認する。
ED_DEVCAP_DEVICE_TYPE 外部デバイスの種類を確認する。
ED_DEVCAP_HAS_AUDIO デバイスにオーディオ機能があるかどうかを確認する。
ED_DEVCAP_HAS_VIDEO デバイスにビデオ機能があるかどうかを確認する。
ED_DEVCAP_USES_FILES デバイスにファイル システムが組み込まれているかどうかを確認する。
pValue
[out] Capability パラメータで指定されたプロパティの機能を示す値を受け取る変数へのポインタ。ED_DEVCAP_DEVICE_TYPE を除くすべてのプロパティでは、この変数は OATRUE または OAFALSE に設定される。OATRUE はプロパティがサポートされることを表し、OAFALSE はプロパティがサポートされないことを表す。ED_DEVCAP_DEVICE_TYPE の場合、変数は次のいずれかの値に設定される。
ED_DEVTYPE_ATR オーディオ テープ レコーダ
ED_DEVTYPE_CG キャラクタ ジェネレータ
ED_DEVTYPE_DDR デジタル ディスク レコーダ
ED_DEVTYPE_DVE デジタル ビデオ エフェクト ユニット
ED_DEVTYPE_GPI 汎用インターフェイス トリガ
ED_DEVTYPE_KEYER ビデオ キーヤー
ED_DEVTYPE_LASERDISK レーザー ディスク
ED_DEVTYPE_MIXER_AUDIO オーディオ ミキサー
ED_DEVTYPE_MIXER_VIDEO ビデオ ミキサー
ED_DEVTYPE_ROUTER ビデオ ルーター
ED_DEVTYPE_TBC タイムベース コレクタ
ED_DEVTYPE_TCG タイムコード ジェネレータ/リーダー
ED_DEVTYPE_VCR VCR
ED_DEVTYPE_WIPEGEN ビデオ ワイプ ジェネレータ
ED_DEVTYPE_JOYSTICK ジョイスティック
ED_DEVTYPE_KEYBOARD キーボード
pdblValue
[out] 指定のプロパティ (double 型値の場合) の機能を表す変数へのポインタ。使用されていない場合は NULL が渡される。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

注意

大きな値や浮動小数点の値を返す場合を除き、すべての戻り値は pValue で返される。大きな値や浮動小数点の値は、pdblValue パラメータで返される。

IAMExtDevice::get_DevicePort

IAMExtDevice インターフェイス

外部デバイスの接続先の通信ポートを取得する。

構文

HRESULT get_DevicePort(
    long *pDevicePort
);

パラメータ

pDevicePort
[out] デバイスの接続先のポートを指定する、次のいずれかの値に設定される変数へのポインタ。
DEV_PORT_1394 IEEE 1394 バス
DEV_PORT_ARTI ARTI ドライバ
DEV_PORT_COM1 COM1
DEV_PORT_COM2 COM2
DEV_PORT_COM3 COM3
DEV_PORT_COM4 COM4
DEV_PORT_DIAQ Diaquest ドライバ
DEV_PORT_SIM シミュレーション ポート
DEV_PORT_USB USB (Universal Serial Bus)

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

参照

IAMExtDevice::put_DevicePort

IAMExtDevice::get_DevicePower

IAMExtDevice インターフェイス

外部デバイスの電源モード (オン、オフ、スタンバイ) を取得する。

構文

HRESULT get_DevicePower(
    long *pPowerMode
);

パラメータ

pPowerMode
[out] 外部デバイスの電源モードを指定する次のいずれかの値に設定される変数へのポインタ。
ED_POWER_OFF オフ
ED_POWER_ON オン
ED_POWER_STANDBY スタンバイ

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

参照

IAMExtDevice::put_DevicePower

IAMExtDevice::get_ExternalDeviceID

IAMExtDevice インターフェイス

外部デバイスのモデル番号を取得する。

構文

HRESULT get_ExternalDeviceID(
    LPOLESTR *ppszData
);

パラメータ

ppszData
[out] メーカー固有の ID 番号または文字列のテキストを受け取る変数へのポインタのアドレス。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

IAMExtDevice::get_ExternalDeviceVersion

IAMExtDevice インターフェイス

外部デバイスのオペレーティング ソフトウェアのバージョン番号を取得する。

構文

HRESULT get_ExternalDeviceVersion(
    LPOLESTR *ppszData
);

パラメータ

ppszData
[out] 外部デバイスの、メーカー固有のオペレーティング ソフトウェアのバージョン番号を受け取る変数へのポインタのアドレス。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

IAMExtDevice::put_DevicePort

IAMExtDevice インターフェイス

外部デバイスの接続先の通信ポートを指定する。

構文

HRESULT put_DevicePort(
    long DevicePort
);

パラメータ

DevicePort
[in] デバイスの接続先のポート。次のいずれかを指定する。
DEV_PORT_1394 IEEE 1394 バス
DEV_PORT_ARTI ARTI ドライバ
DEV_PORT_COM1 COM1
DEV_PORT_COM2 COM2
DEV_PORT_COM3 COM3
DEV_PORT_COM4 COM4
DEV_PORT_DIAQ Diaquest ドライバ
DEV_PORT_MIN DEV_PORT_SIM
DEV_PORT_SIM シミュレーション ポート ("非ハードウェア" シミュレーションで使用する)
DEV_PORT_USB USB (Universal Serial Bus)

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

参照

IAMExtDevice::get_DevicePort

IAMExtDevice::put_DevicePower

IAMExtDevice インターフェイス

外部デバイスの電源モードをオン、オフ、またはスタンバイに設定する。

構文

HRESULT put_DevicePower(
    long PowerMode
);

パラメータ

PowerMode
[in] デバイスの電源モードを指定する値。次のいずれかの値に設定する。
ED_POWER_OFF オフ
ED_POWER_ON オン
ED_POWER_STANDBY スタンバイ

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

参照

IAMExtDevice::get_DevicePower