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