Microsoft DirectX 8.0 (Visual Basic)

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 ドライバにより、通知可能なバッファはハードウェアに存在することができる。