| 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. | |