Platform SDK: DirectX

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
このデバイスは、ハードウェア ミキシングのステレオ セカンダリ バッファをサポートする。
dwMinSecondarySampleRatedwMaxSecondarySampleRate
このデバイスのハードウェア セカンダリ サウンド バッファがサポートする最小と最大のサンプリング レートの仕様。
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 である。

dwReserved1dwReserved2
将来の使用に予約。

注意

いくつかのオーディオ サウンド カードは、利用可能なハードウェア バッファやその空きを正確に報告できない場合がある。これはたとえば、カードが、高いサンプリング レートよりも低いサンプリング レートでより多くのサウンドを再生できるときに発生する。通常、ハードウェア バッファの空き数に関係するメンバの値が 0 以外のとき、適切なタイプのハードウェア リソースが少なくとも 1 つ利用できることを示す。

動作環境

  Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dsound.h で宣言。

参照

IDirectSound::GetCaps