Used with BASS_MIDI_InGetDeviceInfo to retrieve information on a MIDI input device.

typedef struct {
    char *name;
    DWORD id;
    DWORD flags;


nameDescription of the device.
idAn identification number.
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_INITThe device is initialized, ie. BASS_MIDI_InInit has been called.


On Windows, id consists of a manufacturer identifier in the LOWORD and a product identifier in the HIWORD. This will not uniquely identify a particular device, ie. multiple devices may have the same value. A list of identifiers is available from Microsoft, here. On macOS, id is the device's "kMIDIPropertyUniqueID" property value, which is unique to the device. On Linux, id contains the device's ALSA client ID in the LOWORD and port ID in the HIWORD.

Depending on the BASS_CONFIG_UNICODE config setting, name can be in ANSI or UTF-8 form on Windows. It is always in UTF-8 form on other platforms.

See also