| 
									
										
										
										
											2003-11-05 10:38:37 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-12-21 14:11:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2005-04-20 14:26:49 +00:00
										 |  |  | 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). | 
					
						
							| 
									
										
										
										
											2004-12-21 14:11:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | This feature is disabled when --with-debug=no is passed to configure, | 
					
						
							|  |  |  | i.e. no strict checking is done in alsa-lib. | 
					
						
							| 
									
										
										
										
											2006-02-17 20:51:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-24 12:53:08 +02:00
										 |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-17 20:51:12 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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. | 
					
						
							|  |  |  | 
 |