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