Only cardId == 0 is supported
device is a device name. On Linux, it is the ALSA string. On Windows, it is currently ignored, so you should pass "default" or null so when it does get implemented your code won't break.
A destructor is present on this object, but not explicitly documented in the source.
A postblit is present on this object, but not explicitly documented in the source.
Gets the ALSA descriptors which you can watch for events on using regular select, poll, epoll, etc.
returns a percentage, between 0 and 100 (inclusive)
Gets the exact value returned from the operating system. The range may vary.
When the FD is ready, call this to let ALSA do its thing.
Set a callback for the master volume change events.
sets a percentage on the volume, so it must be 0 <= volume <= 100 Note: this affects shared system state and you should not use it unless the end user wants you to.
Sets an exact volume. Must be in range of the OS provided min and max.
Gets the master channel's mute state Note: this affects shared system state and you should not use it unless the end user wants you to.
Mutes or unmutes the master channel Note: this affects shared system state and you should not use it unless the end user wants you to.
Interfaces with the default sound card. You should only have a single instance of this and it should be stack allocated, so its destructor cleans up after it.
A mixer gives access to things like volume controls and mute buttons. It should also give a callback feature to alert you of when the settings are changed by another program.