Platform SDK: DirectX |
DirectSound を使うと、アプリケーションはサウンド デバイスのハードウェア能力を取得できる。DirectSound は利用可能なハードウェア アクセラレーションを自動的に利用するので、アプリケーションでは、通常この取得を行う必要はない。しかし高性能のアプリケーションはこの情報を利用し、利用可能なハードウェアに対してサウンドの要求事項を評価できる。たとえば、ハードウェア ミキシングが利用可能な場合は、利用不可能な場合に比べて、アプリケーションがより多くのサウンドを再生できるはずである。
DirectSoundCreate 関数を呼び出して DirectSound オブジェクトを作成した後は、IDirectSound::GetCaps メソッドを使ってサウンド デバイスの能力を取得できる。
次の例は、「DirectSound オブジェクトの作成」で初期化したデバイスの能力を取得する。
DSCAPS dscaps; dscaps.dwSize = sizeof(DSCAPS); HRESULT hr = lpDirectSound->lpVtbl->GetCaps(lpDirectSound, &dscaps);
DSCAPS 構造体は、サウンド デバイスの能力とリソースに関する情報を受け取るが、この中にはタイプごとの最大のリソースと現在利用可能なリソースが含まれる。このメソッドを呼び出す前に、この構造体の dwSize メンバを初期化しなければならない点に注意すること。
アプリケーションがハードウェア能力を評価する場合は、バッファ割り当てを行うたびに IDirectSound::GetCaps メソッドを呼び出して、次のバッファを作成するのに十分なリソースがあるかどうかを確認すべきである。
DirectX7.DirectSoundCreate メソッドを呼び出して DirectSound オブジェクトを作成した後は、DirectSound.GetCaps メソッドを使ってサウンド デバイスの能力を取得できる。
次の例は、「DirectSound オブジェクトの作成」で初期化したデバイスの能力を取得する。
Dim DSCAPS As DSCAPS m_ds.GetCaps DSCAPS
DSCAPS 型は、サウンド デバイスの能力とリソースに関する情報を受け取るが、この中にはタイプごとの最大のリソースと現在利用可能なリソースが含まれる。
アプリケーションがハードウェア能力を評価する場合は、バッファ割り当てを行うたびに DirectSound.GetCaps メソッドを呼び出して、次のバッファを作成するのに十分なリソースがあるかどうかを確認すべきである。