BASS_INFO structure

Used with BASS_GetInfo to retrieve information on the current device.

typedef struct {
    DWORD flags;
    DWORD hwsize;
    DWORD hwfree;
    DWORD freesam;
    DWORD free3d;
    DWORD minrate;
    DWORD maxrate;
    BOOL eax;
    DWORD minbuf;
    DWORD dsver;
    DWORD latency;
    DWORD initflags;
    DWORD speakers;
    DWORD freq;


flagsThe device's capabilities... a combination of the following flags.
DSCAPS_CONTINUOUSRATEThe device supports all sample rates between minrate and maxrate.
DSCAPS_EMULDRIVERThe device's drivers do not have DirectSound support, so it is being emulated. Updated drivers should be installed.
DSCAPS_CERTIFIEDThe device driver has been certified by Microsoft. This flag is always set on WDM drivers.
DSCAPS_SECONDARYMONOMono samples are supported by hardware mixing.
DSCAPS_SECONDARYSTEREOStereo samples are supported by hardware mixing.
DSCAPS_SECONDARY8BIT8-bit samples are supported by hardware mixing.
DSCAPS_SECONDARY16BIT16-bit samples are supported by hardware mixing.
hwsizeThe device's total amount of hardware memory.
hwfreeThe device's amount of free hardware memory.
freesamThe number of free sample slots in the hardware.
free3dThe number of free 3D sample slots in the hardware.
minrateThe minimum sample rate supported by the hardware.
maxrateThe maximum sample rate supported by the hardware.
eaxThe device supports EAX and has it enabled? The device's "Hardware acceleration" needs to be set to "Full" in its "Advanced Properties" setup, else EAX is disabled. This is always FALSE if BASS_DEVICE_3D was not specified when BASS_Init was called.
minbufThe minimum buffer length (rounded up to the nearest millisecond) recommended for use (with the BASS_CONFIG_BUFFER config option).
dsverDirectSound version... 9 = DX9/8/7/5 features are available, 8 = DX8/7/5 features are available, 7 = DX7/5 features are available, 5 = DX5 features are available. 0 = none of the DX9/8/7/5 features are available.
latencyThe average delay (rounded up to the nearest millisecond) for channel playback to start and be heard.
initflagsThe flags parameter of the BASS_Init call.
speakersThe number of available speakers, which can be accessed via the speaker assignment flags.
freqThe device's current output sample rate.


When using DirectSound output on pre-Vista Windows, it is possible for speakers to mistakenly be 2 with some devices/drivers when the device in fact supports more speakers. In that case, the BASS_DEVICE_CPSPEAKERS flag can be used (with BASS_Init) to use the Windows control panel setting, or the BASS_DEVICE_SPEAKERS flag can be used to force the enabling of speaker assignment to up to 8 speakers, even though the device may not really support that many speakers. The result of assigning channels to nonexistent speakers is undefined; they may be heard on other speakers or not heard at all.

The device's sample rate is only available on Windows/OSX/iOS. On other platforms, the freq member is BASS's output rate (set by BASS_Init) which may not necessarily be the same as the device's output rate due to resampling by the OS. The freq member is not available on Windows prior to Vista.

The flags, hwsize, hwfree, freesam, free3d, minrate, maxrate, eax, and dsver members are only used on Windows with DirectSound output.

When using DirectSound output on Windows, the availability of the latency and minbuf values depends on the BASS_DEVICE_LATENCY flag being used when BASS_Init was called.

See also