Mixer event notification

By default, all mixer applications are required to keep up-to-date with all mixer changes.

Keeping up-to-date with all mixer changes is done by enqueuing a mixer-change event on all applications other than the application making a change. The driver enqueues these events on all applications that have an open mixer handle, unless the application uses the snd_mixer_set_filter() API call to mask out events it's not interested in.

Applications use the snd_mixer_read() function to read the enqueued mixer events. The arguments to this function are the mixer handle and a structure of callback functions to call based on the event type.

You can use the select() function (see the QNX Neutrino C Library Reference) to determine when to call snd_mixer_read(). To get the file descriptor to pass to select(), call snd_mixer_file_descriptor().