DSCAPS
DSCAPS 構造体はデバイスの能力を表します。この構造体は、IDirectSound8::GetCaps メソッドで使用されます。
typedef struct DSCAPS {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMinSecondarySampleRate, 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;
メンバ
dwSize
構造体のサイズ (バイト単位) です。構造体を使用する前に、このメンバーを初期化する必要があります。dwFlags
デバイスの機能を表すフラグです。次の表に示す値を含むことができます。値 説明 DSCAPS_CERTIFIED ドライバーはテストされ、Microsoft により認証されています。このフラグは常に WDM ドライバーに対して設定されます。認証をテストするには、IDirectSound8::VerifyCertification を使用します。 DSCAPS_CONTINUOUSRATE デバイスは、dwMinSecondarySampleRate メンバー値と dwMaxSecondarySampleRate メンバー値の間のすべてのサンプル レートをサポートします。一般に、実際の出力レートは要求された周波数の +/- 10 Hz 以内です。 DSCAPS_EMULDRIVER デバイスには DirectSound ドライバーがインストールされていません。このため、Wave フォーム オーディオ関数を使用してエミュレートされています。パフォーマンスの低下が予想されます。 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 数) です。この値と転送されるバイト数により、IDirectSoundBuffer8::Unlock メソッドへの呼び出しの実行時間が決まります。dwPlayCpuOverheadSwBuffers
ソフトウェア バッファーをミックスするために必要な処理オーバーヘッドであり、メイン プロセッサ サイクルの割合として表わされます。この値は、バス タイプ、プロセッサ タイプ、およびクロック速度に応じて変化します。dwReserved1
使用されません。dwReserved2
使用されません。
解説
一部のオーディオ カードは、使用可能なハードウェア バッファーまたは空いているハードウェア バッファーの数を正確に報告できないことがあります。これは、カードが、高速なサンプリング レートよりも低速なサンプリング レートでより多くのサウンドを再生できる場合などに発生する可能性があります。通常、空きハードウェア バッファーの数に関連するいずれかのメンバーがゼロ以外の値であれば、適切なタイプのハードウェア リソースが 1 つ以上使用可能であることを表します。
データはどこにも転送する必要はないため、ソフトウェア バッファーのロック解除転送速度は 0 です。同様に、ミキシングはサウンド デバイスにより実行されるため、ハードウェア バッファーの再生処理オーバーヘッドは 0 です。
要件
ヘッダー: DSound.h 宣言