CONST_DSBCAPSFLAGS
The CONST_DSBCAPSFLAGS enumeration is used in the lFlags member of the DSBCAPS and DSBUFFERDESC types to specify buffer-object capabilities.
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
- The buffer is either a primary buffer or a secondary buffer that uses 3-D control.
- DSBCAPS_CTRLFREQUENCY
- The buffer must have frequency control capability.
- DSBCAPS_CTRLPAN
- The buffer must have pan control capability.
- DSBCAPS_CTRLPOSITIONNOTIFY
- The buffer must have position notification capability. On VxD drivers, if a sound buffer is created with DSBCAPS_CTRLPOSITIONNOTIFY, this buffer will always be a software buffer. This is because the VxD driver model doesn't support the notify interface. With WDM drivers, a position notification enabled buffer may be in hardware, if hardware is available. Calling DirectSoundBuffer.Play with the DSBPLAY_LOCHARDWARE flag will fail when playing a buffer created with this flag set.
Sound buffers created with the DSBCAPS_CTRLPOSITIONNOTIFY flag must set a notification event. If you create a sound buffer with the NOTIFY flag, but don't actually set any notifications, the behavior is undefined. You may experience sounds being played back twice. Therefore, applications should not use DSBCAPS_CTRLPOSITIONNOTIFY unless they actually set a notification event.
- DSBCAPS_CTRLVOLUME
- The buffer must have volume control capability.
- DSBCAPS_GETCURRENTPOSITION2
- Indicates that DirectSoundBuffer.GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.
- DSBCAPS_GLOBALFOCUS
- The buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.
- DSBCAPS_LOCHARDWARE
- Forces the buffer to use hardware mixing, even if DSBCAPS_STATIC is not specified. If the device does not support hardware mixing or if the required hardware memory is not available, the call to the DirectSound.CreateSoundBuffer method will fail. The application must ensure that a mixing channel will be available for this buffer; this condition is not guaranteed.
- DSBCAPS_LOCSOFTWARE
- Forces the buffer to be stored in software memory and use software mixing, even if DSBCAPS_STATIC is specified and hardware resources are available.
- DSBCAPS_MUTE3DATMAXDISTANCE
- The sound is to be reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.
- DSBCAPS_PRIMARYBUFFER
- Indicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.
- DSBCAPS_STATIC
- Indicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.
- DSBCAPS_STICKYFOCUS
- Changes the focus behavior of the sound buffer. This flag can be specified in a DirectSound.CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.