Platform SDK: DirectX

デバイスの能力

DirectSound を使うと、アプリケーションはサウンド デバイスのハードウェア能力を取得できる。DirectSound は利用可能なハードウェア アクセラレーションを自動的に利用するので、アプリケーションでは、通常この取得を行う必要はない。しかし高性能のアプリケーションはこの情報を利用し、利用可能なハードウェアに対してサウンドの要求事項を評価できる。たとえば、ハードウェア ミキシングが利用可能な場合は、利用不可能な場合に比べて、アプリケーションがより多くのサウンドを再生できるはずである。

[C++]

DirectSoundCreate 関数を呼び出して DirectSound オブジェクトを作成した後は、IDirectSound::GetCaps メソッドを使ってサウンド デバイスの能力を取得できる。

次の例は、「DirectSound オブジェクトの作成」で初期化したデバイスの能力を取得する。

DSCAPS dscaps; 
 
dscaps.dwSize = sizeof(DSCAPS); 
HRESULT hr = lpDirectSound->lpVtbl->GetCaps(lpDirectSound, 
    &dscaps); 
 

DSCAPS 構造体は、サウンド デバイスの能力とリソースに関する情報を受け取るが、この中にはタイプごとの最大のリソースと現在利用可能なリソースが含まれる。このメソッドを呼び出す前に、この構造体の dwSize メンバを初期化しなければならない点に注意すること。

アプリケーションがハードウェア能力を評価する場合は、バッファ割り当てを行うたびに IDirectSound::GetCaps メソッドを呼び出して、次のバッファを作成するのに十分なリソースがあるかどうかを確認すべきである。

[Visual Basic]

DirectX7.DirectSoundCreate メソッドを呼び出して DirectSound オブジェクトを作成した後は、DirectSound.GetCaps メソッドを使ってサウンド デバイスの能力を取得できる。

次の例は、「DirectSound オブジェクトの作成」で初期化したデバイスの能力を取得する。

Dim DSCAPS As DSCAPS
 
m_ds.GetCaps DSCAPS 
 

DSCAPS 型は、サウンド デバイスの能力とリソースに関する情報を受け取るが、この中にはタイプごとの最大のリソースと現在利用可能なリソースが含まれる。

アプリケーションがハードウェア能力を評価する場合は、バッファ割り当てを行うたびに DirectSound.GetCaps メソッドを呼び出して、次のバッファを作成するのに十分なリソースがあるかどうかを確認すべきである。