BASS_DEVICEINFO structure


Used with BASS_GetDeviceInfo or BASS_RecordGetDeviceInfo to retrieve information on a device.

typedef struct {
    char *name;
    char *driver;
    DWORD flags;
} BASS_DEVICEINFO;

Members

nameDescription of the device.
driverThe filename of the driver.
flagsThe device's current status... a combination of these flags.
BASS_DEVICE_ENABLEDThe device is enabled. It will not be possible to initialize the device if this flag is not present.
BASS_DEVICE_DEFAULTThe device is the system default.
BASS_DEVICE_INITThe device is initialized, ie. BASS_Init or BASS_RecordInit has been called.

Remarks

When a device is disabled/disconnected, it is still retained in the device list, but the BASS_DEVICE_ENABLED flag is removed from it. If the device is subsequently re-enabled, it may become available again with the same device number, or the system may add a new entry for it.

When a new device is connected, it can affect the other devices and result in the system moving them to new device entries. If an affected device is initialized, it will stop working and will need to be reinitialized using its new device number.

Platform-specific

On Windows, driver can reveal the type of driver being used on systems that support both VxD and WDM drivers (Windows Me/98SE). Further information can be obtained from the file via the GetFileVersionInfo function. On Vista and above, the device's endpoint ID is given rather than its driver filename. On OSX, driver is the device's UID, and on Linux, it is the ALSA device name. It is unused on other platforms.

Depending on the BASS_CONFIG_UNICODE config setting, name and driver can be in ANSI or UTF-8 form on Windows. They are always in UTF-16 form ("WCHAR" rather than "char") on Windows CE, and UTF-8 on other platforms.

See also

BASS_GetDeviceInfo, BASS_RecordGetDeviceInfo, BASS_CONFIG_UNICODE