Blame NOTES

Packit 4a16fb
Old versus new PCM API (values returned using indirect pointers)
Packit 4a16fb
================================================================
Packit 4a16fb
Packit 4a16fb
From the binary compatibility view, there is no change. For compilation,
Packit 4a16fb
1.0 ALSA applications do not need any change. The older applications must
Packit 4a16fb
use this include sequence:
Packit 4a16fb
Packit 4a16fb
#define ALSA_PCM_OLD_HW_PARAMS_API
Packit 4a16fb
#define ALSA_PCM_OLD_SW_PARAMS_API
Packit 4a16fb
#include <alsa/asoundlib.h>
Packit 4a16fb
Packit 4a16fb
If you use already the new API, you may remove old defines selecting
Packit 4a16fb
this API, because they are no longer used:
Packit 4a16fb
Packit 4a16fb
#define ALSA_PCM_NEW_HW_PARAMS_API
Packit 4a16fb
#define ALSA_PCM_NEW_SW_PARAMS_API
Packit 4a16fb
Packit 4a16fb
Packit 4a16fb
Verbose Error Messages
Packit 4a16fb
======================
Packit 4a16fb
Packit 4a16fb
Since version 1.0.8, assert() for some non-fatal errors are removed
Packit 4a16fb
and error messages are no longer shown to stderr as default.  Instead,
Packit 4a16fb
the error messages appear only when the environment variable
Packit 4a16fb
LIBASOUND_DEBUG is set (to a non-empty value).
Packit 4a16fb
Packit 4a16fb
When LIBASOUND_DEBUG=1 is set, the errors in hw_params configuration
Packit 4a16fb
will be dumped to stderr.  Note that this will show even the non-fatal
Packit 4a16fb
errors of plug layer (trial-and-error of parameters).
Packit 4a16fb
Packit 4a16fb
This feature is disabled when --with-debug=no is passed to configure,
Packit 4a16fb
i.e. no strict checking is done in alsa-lib.
Packit 4a16fb
Packit 4a16fb
In addition, when --enable-debug-assert configure option is given and
Packit 4a16fb
when LIBASOUND_DEBUG_ASSERT=1 is set, the default error message
Packit 4a16fb
handler can call assert() to catch with a  debugger.  This feature was
Packit 4a16fb
formerly activated via LIBASOUND_DEBUG=2.
Packit 4a16fb
Packit 4a16fb
Packit 4a16fb
Blocking Open Mode
Packit 4a16fb
==================
Packit 4a16fb
Packit 4a16fb
The default behavior of blocking at snd_pcm_open is changed to
Packit 4a16fb
non-blocking since version 1.0.11.  That is, snd_pcm_open() returns
Packit 4a16fb
-EAGAIN immediately when the device is in use and cannot be opened,
Packit 4a16fb
while the function was blocked in the former version.  This influences
Packit 4a16fb
only on the opening behavior.  The behavior of the further access,
Packit 4a16fb
read/write, poll or commit, are not changed.  They follow the extra
Packit 4a16fb
flag argument of snd_pcm_open() as well as the former version.
Packit 4a16fb
Packit 4a16fb
For taking back the compatible behavior of open blocking mode, set
Packit 4a16fb
Packit 4a16fb
	defaults.pcm.nonblock 0
Packit 4a16fb
Packit 4a16fb
in /etc/asound.conf or ~/.asoundrc file.
Packit 4a16fb