DSCAPS
DSCAPS 構造体は、DirectSound デバイスの能力を指定する。IDirectSound::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
- デバイスの能力を指定する。以下の 1 つまたは複数が指定できる。
- DSCAPS_CERTIFIED
- このドライバは Microsoft により試験と保証が行われている。
- 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、dwFreeHwMixingStaticBuffers、dwFreeHwMixingStreamingBuffers
- 空きまたは未割り当てのデバイスのハードウェア ミキシング能力の記述。アプリケーションはこれらの値を使って、セカンダリ サウンド バッファの割り当てにハードウェア リソースが利用可能かどうかを判断できる。また、最大のミキシング能力を指定するメンバとこれらの値を比較すると、既に割り当てられているリソースを決定できる。「注意」を参照すること。
- dwMaxHw3DallBuffers、dwMaxHw3DstaticBuffers、dwMaxHw3DStreamingBuffers
- デバイスのハードウェア 3D 定位能力の記述。
- dwFreeHw3DallBuffers、dwFreeHw3DstaticBuffers、dwFreeHw3DStreamingBuffers
- 空きまたは未割り当てのデバイスのハードウェア 3D 定位能力の記述。「注意」を参照すること。
- dwTotalHwMemBytes
- スタティックサウンド バッファを保持するサウンド カード上のメモリ容量のサイズ。単位はバイト。
- dwFreeHwMemBytes
- サウンド カード上の空きメモリのサイズ。単位はバイト。
- dwMaxContigFreeHwMemBytes
- サウンド カード上の空きメモリのうち、最大の連続ブロックのサイズ。単位はバイト。
- dwUnlockTransferRateHwBuffers
- ハードウェア スタティック サウンド バッファへのデータ転送速度。単位は 1 秒あたりのキロバイト (KB/s)。この速度と転送バイト数により、IDirectSoundBuffer::Unlock メソッドを呼び出したときの実行時間が決まる。
- dwPlayCpuOverheadSwBuffers
- (メイン システム メモリ内の) ソフトウェア バッファをミキシングするのに必要な処理オーバーヘッドを、CPU パーセンテージで記述した値。この値は、バス タイプ、プロセッサ タイプ、クロック速度に応じて変化する。
ソフトウェア バッファのアンロック転送速度は 0 である。データをどこにも転送する必要がないからである。同様に、ハードウェア バッファの再生オーバーヘッドも、ミキシングがサウンド デバイスによって処理されるため、0 である。
- dwReserved1、dwReserved2
- 将来の使用に予約。
注意
いくつかのオーディオ サウンド カードは、利用可能なハードウェア バッファやその空きを正確に報告できない場合がある。これはたとえば、カードが、高いサンプリング レートよりも低いサンプリング レートでより多くのサウンドを再生できるときに発生する。通常、ハードウェア バッファの空き数に関係するメンバの値が 0 以外のとき、適切なタイプのハードウェア リソースが少なくとも 1 つ利用できることを示す。
Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dsound.h で宣言。
参照
IDirectSound::GetCaps