CONST_DSBCAPSFLAGS
CONST_DSBCAPSFLAGS 列挙は、DSBCAPS と DSBUFFERDESC の各型の lFlags メンバで使われ、バッファの能力を指定する。
Enum CONST_DSBCAPSFLAGS
DSBCAPS_CTRL3D = 16 (&H10)
DSBCAPS_CTRLFREQUENCY = 32 (&H20)
DSBCAPS_CTRLPAN = 64 (&H40)
DSBCAPS_CTRLPOSITIONNOTIFY = 256
DSBCAPS_CTRLVOLUME = 128 (&H80)
DSBCAPS_GETCURRENTPOSITION2 = 65536 (&H10000)
DSBCAPS_GLOBALFOCUS = 32768 (&H8000)
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_CTRLFREQUENCY
- バッファは周波数コントロール能力を備えていなければならない。
- DSBCAPS_CTRLPAN
- バッファはパン コントロール能力を備えていなければならない。
- DSBCAPS_CTRLPOSITIONNOTIFY
- バッファは位置通知能力を備えていなければならない。「注意」を参照すること。
- DSBCAPS_CTRLVOLUME
- バッファはボリューム コントロール能力を備えていなければならない。
- DSBCAPS_GETCURRENTPOSITION2
- DirectSoundBuffer.GetCurrentPosition が再生カーソルの新しい動作を使うべきであることを示す。DirectX for Visual Basic アプリケーションでは、常にこのフラグを設定する。
- DSBCAPS_GLOBALFOCUS
- バッファはグローバルなサウンド バッファである。このフラグを設定すると、ユーザーが他のアプリケーションにフォーカスを移動し、その新しいアプリケーションが DirectSound を使う場合でも、DirectSound を使っているアプリケーションは引き続きそのバッファを再生できる。例外は、協調レベルで DSSCL_EXCLUSIVE または DSSCL_WRITEPRIMARY フラグを設定した DirectSound アプリケーションにフォーカスを移動した場合である。この場合、他のアプリケーションからのグローバルなサウンドは聞こえなくなる。
- DSBCAPS_LOCHARDWARE
- バッファはハードウェア ミキシングを使う。デバイスがハードウェア ミキシングをサポートしていない場合や、必要なハードウェア メモリが利用不可能な場合は、DirectSound.CreateSoundBuffer メソッドの呼び出しは失敗する。アプリケーションは、このバッファがミキシング チャンネルを利用可能であると保証する必要がある。この状況は保証されていない。
- DSBCAPS_LOCSOFTWARE
- DSBCAPS_STATIC が指定されていて、ハードウェア リソースが利用可能であっても、バッファをソフトウェア メモリに配置して、ソフトウェア ミキシングを使うようにする。
- DSBCAPS_MUTE3DATMAXDISTANCE
- 最大距離を超えるとバッファの再生が停止するので、プロセッサ時間を消費しないですむ。
- DSBCAPS_PRIMARYBUFFER
- バッファがプライマリ サウンド バッファであることを示す。この値を指定しない場合、セカンダリ サウンド バッファが作成される。
- DSBCAPS_STATIC
- サウンド カードのメモリが利用可能な場合、バッファがそこに置かれることを示す。バッファを強制的にメモリ (通常はドライバが管理するシステム メモリ) に配置する DSBCAPS_LOCHARDWARE とは異なる。
- DSBCAPS_STICKYFOCUS
- サウンド バッファのフォーカスの動作を変更する。ユーザーが DirectSound を使っていない他のアプリケーションに切り替えた場合でも、DirectSound を使っているアプリケーションはスティッキー フォーカス バッファの再生を続行できる。この状態ではアプリケーションの標準バッファは無音になるが、スティッキー フォーカス バッファは引き続き音を出す。ユーザーが他のアプリケーションを使いながら、ゲーム以外のアプリケーションのサウンドトラックを聞きたいと考える場合に役立つ。しかし、ユーザーが他の DirectSound アプリケーションに切り替えると、今までのアプリケーションのすべてのサウンド バッファ、この場合は標準バッファとスティッキー フォーカス バッファの両方が無音になる。
注意
VxD ドライバでは、サウンド バッファが DSBCAPS_CTRLPOSITIONNOTIFY で作成される場合、このバッファは常にソフトウェア バッファになる。これは、VxD ドライバ モデルが通知インターフェイスをサポートしないためである。ハードウェアが利用可能な場合、WDM ドライバにより、位置通知可能なバッファがハードウェアに存在することがある。このフラグ設定で作成されたバッファの再生中は、DSBPLAY_LOCHARDWARE フラグによる DirectSoundBuffer.Play の呼び出しは失敗する。
DSBCAPS_CTRLPOSITIONNOTIFY フラグで作成されたサウンド バッファには、通知イベントを設定しなければならない。NOTIFY フラグでサウンド バッファを作成し、何も通知を設定しないと、動作が定義されず、サウンドが 2 回再生される可能性がある。したがって、アプリケーションは通知イベントが設定されるまで、DSBCAPS_CTRLPOSITIONNOTIFY を使うべきではない。