Platform SDK: DirectX

CONST_DSBCAPSFLAGS

CONST_DSBCAPSFLAGS 列挙は、DSBCAPSDSBUFFERDESC の各型の 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 を使うべきではない。