


For example you could have an ALSA device open and a JACK device open at the same time. Ability to connect to multiple backends at once.Detects which input device is default and which output device is default.Ability to get an event when the backend is disconnected, for example when the JACK server or PulseAudio server shuts down.Ability to monitor devices and get an event when available devices change.Supports channel layouts (also known as channel maps), important for surround sound applications.Errors are communicated via return codes, not logging to stdio.Does not depend on libstdc++, and does not have exceptions, run-time type information, or setjmp. Depends only on the respective backend API libraries and libc. The same API does the right thing whether the backend has a fixed buffer size, such as on JACK and CoreAudio, or whether it allows directly managing the buffer, such as on ALSA or PulseAudio. Supports optimal usage of each supported backend.id you could save in a config fileīecause it persists between devices becoming plugged and unplugged, whileįriendly name is suitable for exposing to users. Shared devicesĪre default and usually provide sample rate conversion and formatĮxposes both device id and friendly name. Performance but prevent other applications from using them. Exposes both raw devices and shared devices.
