DSCAPS
DirectSound デバイスの能力を記述する。IDirectSound8::GetCaps メソッドで使われる。
typedef {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMinSecondarySampleRate;
DWORD dwMaxSecondarySampleRate;
DWORD dwPrimaryBuffers;
DWORD dwMaxHwMixingAllBuffers;
DWORD dwMaxHwMixingStaticBuffers;
DWORD dwMaxHwMixingStreamingBuffers;
DWORD dwFreeHwMixingAllBuffers;
DWORD dwFreeHwMixingStaticBuffers;
DWORD dwFreeHwMixingStreamingBuffers;
DWORD dwMaxHw3DAllBuffers;
DWORD dwMaxHw3DStaticBuffers;
DWORD dwMaxHw3DStreamingBuffers;
DWORD dwFreeHw3DAllBuffers;
DWORD dwFreeHw3DStaticBuffers;
DWORD dwFreeHw3DStreamingBuffers;
DWORD dwTotalHwMemBytes;
DWORD dwFreeHwMemBytes;
DWORD dwMaxContigFreeHwMemBytes;
DWORD dwUnlockTransferRateHwBuffers;
DWORD dwPlayCpuOverheadSwBuffers;
DWORD dwReserved1;
DWORD dwReserved2;
} DSCAPS, *LPDSCAPS;
typedef const DSCAPS *LPCDSCAPS;
メンバ
- dwSize
- 構造体のサイズ (バイト単位)。この構造体を使う前に、このメンバを初期化しなければならない。
- dwFlags
- デバイスの能力を記述するフラグ。次のいずれかの値となる。
- DSCAPS_CERTIFIED
- このドライバは Microsoft でテストされ、認定されている。このフラグは常に WDM ドライバに対して設定される。認証されているかどうかテストするには、IDirectSound8::VerifyCertification を使用する。
- DSCAPS_CONTINUOUSRATE
- このデバイスは、dwMinSecondarySampleRate と dwMaxSecondarySampleRate の各メンバ値の間のすべてのサンプリング レートをサポートする。一般にこれは、実際の出力レートが要求された周波数の ±10 ヘルツ (Hz) 以内であることを意味する。
- DSCAPS_EMULDRIVER
- このデバイスには DirectSound ドライバがインストールされていない。ウェーブフォーム オーディオ機能を通してエミュレートされている。性能の低下が予想される。
- DSCAPS_PRIMARY16BIT
- このデバイスは 16 ビット サンプリングでプライマリ サウンド バッファをサポートする。
- DSCAPS_PRIMARY8BIT
- このデバイスは 8 ビット サンプリングでプライマリ バッファをサポートする。
- DSCAPS_PRIMARYMONO
- このデバイスはモノラルのプライマリ バッファをサポートする。
- DSCAPS_PRIMARYSTEREO
- このデバイスはステレオのプライマリ バッファをサポートする。
- DSCAPS_SECONDARY16BIT
- このデバイスは、16 ビット サンプリングでハードウェア ミキシングのセカンダリ サウンド バッファをサポートする。
- DSCAPS_SECONDARY8BIT
- このデバイスは、8 ビット サンプリングでハードウェア ミキシングのセカンダリ バッファをサポートする。
- DSCAPS_SECONDARYMONO
- このデバイスは、ハードウェア ミキシングのモノラル セカンダリ バッファをサポートする。
- DSCAPS_SECONDARYSTEREO
- このデバイスは、ハードウェア ミキシングのステレオ セカンダリ バッファをサポートする。
- dwMinSecondarySampleRate、dwMaxSecondarySampleRate
- このデバイスのハードウェア セカンダリ サウンド バッファがサポートする最小と最大のサンプリング レートの仕様。
- dwPrimaryBuffers
- サポートされているプライマリ バッファの数。この値は常に 1 である。
- dwMaxHwMixingAllBuffers
- ハードウェアでミキシングできるバッファの数。このメンバは dwMaxHwMixingStaticBuffers と dwMaxHwMixingStreamingBuffers の合計より小さい値を取る。リソースのトレードオフがしばしば発生する。
- dwMaxHwMixingStaticBuffers
- スタティック バッファの最大数。
- dwMaxHwMixingStreamingBuffers
- ストリーム サウンド バッファの最大数。
- dwFreeHwMixingAllBuffers
- 未割り当てバッファの数。WDM ドライバでは、dwFreeHw3DAllBuffers となる。
- dwFreeHwMixingStaticBuffers
- 未割り当てのスタティック バッファの数。
- dwFreeHwMixingStreamingBuffers
- 未割り当てのストリーム バッファの数。
- dwMaxHw3DAllBuffers
- 3D バッファの最大数。
- dwMaxHw3DStaticBuffers
- スタティック 3D バッファの最大数。
- dwMaxHw3DStreamingBuffers
- ストリーム 3D バッファの最大数。
- dwFreeHw3DAllBuffers
- 未割り当ての 3D バッファの数。
- dwFreeHw3DStaticBuffers
- 未割り当てのスタティック 3D バッファの数。
- dwFreeHw3DStreamingBuffers
- 未割り当てのストリーム 3D バッファの数。
- dwTotalHwMemBytes
- スタティック サウンド バッファを保持するサウンド カード上のメモリ容量のサイズ (バイト単位)。
- dwFreeHwMemBytes
- サウンド カード上の空きメモリのサイズ (バイト単位)。
- dwMaxContigFreeHwMemBytes
- サウンド カード上の空きメモリのうち、最大の連続ブロックのサイズ (バイト単位)。
- dwUnlockTransferRateHwBuffers
- ハードウェア スタティック サウンド バッファへのデータ転送速度。単位は 1 秒あたりのキロバイト (KB/s)。この速度と転送バイト数により、IDirectSoundBuffer8::Unlock メソッドを呼び出したときの実行時間が決まる。
- dwPlayCpuOverheadSwBuffers
- (メイン システム メモリ内の) ソフトウェア バッファをミキシングするために必要な処理オーバーヘッドを、CPU パーセンテージで記述した値。この値は、バス タイプ、プロセッサ タイプ、クロック速度に応じて変化する。
ソフトウェア バッファのアンロック転送速度は 0 である。データをどこにも転送する必要がないからである。同様に、ハードウェア バッファの再生オーバーヘッドも、ミキシングがサウンド デバイスによって処理されるため、0 である。
- dwReserved1
- 未使用。
- dwReserved2
- 未使用。
注意
いくつかのオーディオ サウンド カードは、利用可能なハードウェア バッファやその空きを正確に報告できない場合がある。これはたとえば、カードが、高いサンプリング レートよりも低いサンプリング レートでより多くのサウンドを再生できるときに発生する。通常、ハードウェア バッファの空き数に関係するメンバの値が 0 以外のとき、適切なタイプのハードウェア リソースが少なくとも 1 つ利用できることを示す。
ヘッダー : dsound.h で宣言。
参照
IDirectSound8::GetCaps