Thin but safe wrappers for ALSA.
This ALSA API wrapper/binding is WIP - the ALSA API is huge, and new functions and structs might be added as requested.
Most functions map 1-to-1 to alsa-lib functions, e g,
ctl::CardInfo::get_id() is a wrapper around
snd_ctl_card_info_get_id and the alsa-lib documentation
can be consulted for additional information.
Sound card enumeration
Control device API
Enumerate devices in the alsa library configuration
HCtl API - for mixer control and jack detection
Mixer API - Simple Mixer API for mixer control
Audio playback and capture
Tiny poll ffi
MIDI devices I/O and enumeration
Most ALSA functions can return a negative error code.
If so, then that error code is wrapped into this
Replaces constants ending with PLAYBACK/CAPTURE as well as INPUT/OUTPUT
Rounding mode (used in some mixer related calls)
Used to restrict hw parameters. In case the submitted value is unavailable, in which direction should one search for available values?