CONST_DSBCAPSFLAGS
DSBUFFERDESC 型で使用され、新しいバッファの能力を指定する。また、DSBCAPS で使用する場合は、既存のバッファの能力を記述する。
Enum CONST_DSBCAPSFLAGS
DSBCAPS_CTRL3D = 16 (&H10)
DSBCAPS_CTRLCHANNELVOLUME = 1024 (&H400)
DSBCAPS_CTRLFREQUENCY = 32 (&H20)
DSBCAPS_CTRLFX = 512 (&H200)
DSBCAPS_CTRLPAN = 64 (&H40)
DSBCAPS_CTRLPOSITIONNOTIFY = 256
DSBCAPS_CTRLVOLUME = 128 (&H80)
DSBCAPS_GETCURRENTPOSITION2 = 65536 (&H10000)
DSBCAPS_GLOBALFOCUS = 32768 (&H8000)
DSBCAPS_LOCDEFER = 262144 (&H40000)
DSBCAPS_LOCHARDWARE = 4
DSBCAPS_LOCSOFTWARE = 8
DSBCAPS_MUTE3DATMAXDISTANCE = 131072 (&H20000)
DSBCAPS_PRIMARYBUFFER = 1
DSBCAPS_STATIC = 2
DSBCAPS_STICKYFOCUS = 16384 (&H4000)
End Enum
定数
- DSBCAPS_CTRL3D
- バッファは 3D コントロールをサポートする。
- DSBCAPS_CTRLCHANNELVOLUME
- 実装されていない。
- DSBCAPS_CTRLFREQUENCY
- バッファは周波数コントロールをサポートする。DSBCAPS_CTRLFX と組み合わせることはできない。
- DSBCAPS_CTRLFX
- バッファはエフェクトをサポートする。DSBCAPS_CTRLFREQUENCY と組み合わせることはできない。ウェーブ フォーマットは、2 チャンネル以下の 8 ビットまたは 16 ビットの PCM フォーマットでなければならない。
- DSBCAPS_CTRLPAN
- バッファはパン コントロールをサポートする。
- DSBCAPS_CTRLPOSITIONNOTIFY
- バッファは位置通知をサポートする。「注意」を参照すること。
- DSBCAPS_CTRLVOLUME
- バッファはボリューム コントロールをサポートする。
- DSBCAPS_GETCURRENTPOSITION2
- DirectSoundSecondaryBuffer8.GetCurrentPosition は、再生カーソルの新しい動作を使用する。このフラグは常にセカンダリ バッファに設定する。
- DSBCAPS_GLOBALFOCUS
- バッファはグローバルなサウンド バッファである。このフラグを設定すると、ユーザーがほかのアプリケーションにフォーカスを移動し、その新しいアプリケーションが DirectSound を使用する場合でも、DirectSound を使用しているアプリケーションは引き続きそのバッファを再生できる。ただし、フォーカスを移動した DirectSound アプリケーションが、協調レベルに DSSCL_WRITEPRIMARY フラグを使用している場合、ほかのアプリケーションからのグローバルなサウンドは聞こえなくなる。
- DSBCAPS_LOCDEFER
- バッファは、再生されるまでハードウェアまたはソフトウェアに割り当てられない。ボイス管理を使用するバッファでは、このフラグを設定しなければならない。
- DSBCAPS_LOCHARDWARE
- バッファはハードウェア ミキシングを使用する。デバイスがハードウェア ミキシングをサポートしていない場合や、必要なハードウェア メモリが利用不可能な場合は、DirectSound8.CreateSoundBuffer メソッドの呼び出しは失敗する。アプリケーションは、このバッファがミキシング チャンネルを利用可能であることを保証する必要がある。 この状況は保証されていない。
- DSBCAPS_LOCSOFTWARE
- DSBCAPS_STATIC が指定され、ハードウェア リソースを利用できる場合でも、バッファはソフトウェア ミキシングを使用する。
- DSBCAPS_MUTE3DATMAXDISTANCE
- リスナーからの距離が最大距離を超えるとバッファの再生が停止するので、プロセッサ時間を消費しないで済む。
- DSBCAPS_PRIMARYBUFFER
- バッファはプライマリ サウンド バッファである。DSBCAPS_CTRLFX と組み合わせることはできない。
- DSBCAPS_STATIC
- 利用可能な場合、バッファはサウンド カードのメモリ上に配置される。バッファを強制的にメモリ (通常はドライバが管理するシステム メモリ) に配置する DSBCAPS_LOCHARDWARE とは異なる。DSBCAPS_CTRLFX と組み合わせることはできない。
- DSBCAPS_STICKYFOCUS
- バッファはスティッキー フォーカスを備えている。ユーザーが DirectSound を使用していないほかのアプリケーションに切り替えた場合でも、DirectSound を使用しているアプリケーションはスティッキー フォーカス バッファの再生を続行できる。この状態ではアプリケーションの標準バッファは無音になるが、スティッキー フォーカス バッファは引き続き音を出す。ユーザーがほかのアプリケーションを使用しながら、ゲーム以外のアプリケーションのサウンドトラックを聞きたいと考える場合に役立つ。しかし、ユーザーがほかの DirectSound アプリケーションに切り替えると、今までのアプリケーションのすべてのサウンド バッファ、この場合は標準バッファとスティッキー フォーカス バッファの両方が無音になる。
注意
バッファが作成されるとき、DSBCAPS_LOCHARDWARE および DSBCAPS_LOCSOFTWARE フラグはオプションであり、互いに排他的である。DSBCAPS_LOCHARDWARE は、強制的にバッファをハードウェアに配置する。これは、バッファがサウンド カードによってミキシングされることを意味する。DSBCAPS_LOCSOFTWARE は、強制的にバッファをソフトウェアに配置する。この場合、バッファは CPU によってミキシングされる。DSBCAPS 型では、フラグはバッファの実際の場所を示す。
DSBCAPS_CTRLPOSITIONNOTIFY フラグを使用してサウンド バッファを作成したが、通知を設定しなかった場合は、動作が定義されず、サウンドが 2 回再生される場合がある。
VxD ドライバでは、サウンド バッファが DSBCAPS_CTRLPOSITIONNOTIFY で作成される場合、バッファは常にソフトウェア バッファになる。このフラグ設定で作成されたバッファの再生中は、DSBPLAY_LOCHARDWARE フラグによる DirectSoundSecondaryBuffer8.Play の呼び出しは失敗する。ハードウェアが利用可能な場合、WDM ドライバにより、通知可能なバッファはハードウェアに存在することができる。