Lines Matching refs:err
107 int err, dir;
110 err = snd_pcm_hw_params_any(handle, params);
111 if (err < 0) {
112 printf("Broken configuration for playback: no configurations available: %s\n", snd_strerror(err));
113 return err;
116 err = snd_pcm_hw_params_set_rate_resample(handle, params, resample);
117 if (err < 0) {
118 printf("Resampling setup failed for playback: %s\n", snd_strerror(err));
119 return err;
122 err = snd_pcm_hw_params_set_access(handle, params, access);
123 if (err < 0) {
124 printf("Access type not available for playback: %s\n", snd_strerror(err));
125 return err;
128 err = snd_pcm_hw_params_set_format(handle, params, format);
129 if (err < 0) {
130 printf("Sample format not available for playback: %s\n", snd_strerror(err));
131 return err;
134 err = snd_pcm_hw_params_set_channels(handle, params, channels);
135 if (err < 0) {
136 printf("Channels count (%u) not available for playbacks: %s\n", channels, snd_strerror(err));
137 return err;
141 err = snd_pcm_hw_params_set_rate_near(handle, params, &rrate, 0);
142 if (err < 0) {
143 printf("Rate %uHz not available for playback: %s\n", rate, snd_strerror(err));
144 return err;
147 printf("Rate doesn't match (requested %uHz, get %iHz)\n", rate, err);
151 err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time, &dir);
152 if (err < 0) {
153 printf("Unable to set buffer time %u for playback: %s\n", buffer_time, snd_strerror(err));
154 return err;
156 err = snd_pcm_hw_params_get_buffer_size(params, &size);
157 if (err < 0) {
158 printf("Unable to get buffer size for playback: %s\n", snd_strerror(err));
159 return err;
163 err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time, &dir);
164 if (err < 0) {
165 printf("Unable to set period time %u for playback: %s\n", period_time, snd_strerror(err));
166 return err;
168 err = snd_pcm_hw_params_get_period_size(params, &size, &dir);
169 if (err < 0) {
170 printf("Unable to get period size for playback: %s\n", snd_strerror(err));
171 return err;
175 err = snd_pcm_hw_params(handle, params);
176 if (err < 0) {
177 printf("Unable to set hw params for playback: %s\n", snd_strerror(err));
178 return err;
185 int err;
188 err = snd_pcm_sw_params_current(handle, swparams);
189 if (err < 0) {
190 printf("Unable to determine current swparams for playback: %s\n", snd_strerror(err));
191 return err;
195 err = snd_pcm_sw_params_set_start_threshold(handle, swparams, (buffer_size / period_size) * period_size);
196 if (err < 0) {
197 printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err));
198 return err;
202 err = snd_pcm_sw_params_set_avail_min(handle, swparams, period_event ? buffer_size : period_size);
203 if (err < 0) {
204 printf("Unable to set avail min for playback: %s\n", snd_strerror(err));
205 return err;
209 err = snd_pcm_sw_params_set_period_event(handle, swparams, 1);
210 if (err < 0) {
211 printf("Unable to set period event: %s\n", snd_strerror(err));
212 return err;
216 err = snd_pcm_sw_params(handle, swparams);
217 if (err < 0) {
218 printf("Unable to set sw params for playback: %s\n", snd_strerror(err));
219 return err;
228 static int xrun_recovery(snd_pcm_t *handle, int err)
232 if (err == -EPIPE) { /* under-run */
233 err = snd_pcm_prepare(handle);
234 if (err < 0)
235 printf("Can't recovery from underrun, prepare failed: %s\n", snd_strerror(err));
237 } else if (err == -ESTRPIPE) {
238 while ((err = snd_pcm_resume(handle)) == -EAGAIN)
240 if (err < 0) {
241 err = snd_pcm_prepare(handle);
242 if (err < 0)
243 printf("Can't recovery from suspend, prepare failed: %s\n", snd_strerror(err));
247 return err;
260 int err, cptr;
267 err = snd_pcm_writei(handle, ptr, cptr);
268 if (err == -EAGAIN)
270 if (err < 0) {
271 if (xrun_recovery(handle, err) < 0) {
272 printf("Write error: %s\n", snd_strerror(err));
277 ptr += err * channels;
278 cptr -= err;
308 int err, count, cptr, init;
321 if ((err = snd_pcm_poll_descriptors(handle, ufds, count)) < 0) {
322 printf("Unable to obtain poll descriptors for playback: %s\n", snd_strerror(err));
323 return err;
329 err = wait_for_poll(handle, ufds, count);
330 if (err < 0) {
333 err = snd_pcm_state(handle) == SND_PCM_STATE_XRUN ? -EPIPE : -ESTRPIPE;
334 if (xrun_recovery(handle, err) < 0) {
335 printf("Write error: %s\n", snd_strerror(err));
341 return err;
350 err = snd_pcm_writei(handle, ptr, cptr);
351 if (err < 0) {
352 if (xrun_recovery(handle, err) < 0) {
353 printf("Write error: %s\n", snd_strerror(err));
361 ptr += err * channels;
362 cptr -= err;
367 err = wait_for_poll(handle, ufds, count);
368 if (err < 0) {
371 err = snd_pcm_state(handle) == SND_PCM_STATE_XRUN ? -EPIPE : -ESTRPIPE;
372 if (xrun_recovery(handle, err) < 0) {
373 printf("Write error: %s\n", snd_strerror(err));
379 return err;
403 int err;
408 err = snd_pcm_writei(handle, samples, period_size);
409 if (err < 0) {
410 printf("Write error: %s\n", snd_strerror(err));
413 if (err != period_size) {
414 printf("Write error: written %i expected %li\n", err, period_size);
427 int err, count;
432 err = snd_async_add_pcm_handler(&ahandler, handle, async_callback, &data);
433 if (err < 0) {
439 err = snd_pcm_writei(handle, samples, period_size);
440 if (err < 0) {
441 printf("Initial write error: %s\n", snd_strerror(err));
444 if (err != period_size) {
445 printf("Initial write error: written %i expected %li\n", err, period_size);
450 err = snd_pcm_start(handle);
451 if (err < 0) {
452 printf("Start error: %s\n", snd_strerror(err));
476 int first = 0, err;
481 err = xrun_recovery(handle, -EPIPE);
482 if (err < 0) {
483 printf("XRUN recovery failed: %s\n", snd_strerror(err));
488 err = xrun_recovery(handle, -ESTRPIPE);
489 if (err < 0) {
490 printf("SUSPEND recovery failed: %s\n", snd_strerror(err));
496 err = xrun_recovery(handle, avail);
497 if (err < 0) {
498 printf("avail update failed: %s\n", snd_strerror(err));
507 err = snd_pcm_start(handle);
508 if (err < 0) {
509 printf("Start error: %s\n", snd_strerror(err));
520 err = snd_pcm_mmap_begin(handle, &my_areas, &offset, &frames);
521 if (err < 0) {
522 if ((err = xrun_recovery(handle, err)) < 0) {
523 printf("MMAP begin avail error: %s\n", snd_strerror(err));
531 if ((err = xrun_recovery(handle, commitres >= 0 ? -EPIPE : commitres)) < 0) {
532 printf("MMAP commit error: %s\n", snd_strerror(err));
551 int err, count;
556 err = snd_async_add_pcm_handler(&ahandler, handle, async_direct_callback, &data);
557 if (err < 0) {
565 err = snd_pcm_mmap_begin(handle, &my_areas, &offset, &frames);
566 if (err < 0) {
567 if ((err = xrun_recovery(handle, err)) < 0) {
568 printf("MMAP begin avail error: %s\n", snd_strerror(err));
575 if ((err = xrun_recovery(handle, commitres >= 0 ? -EPIPE : commitres)) < 0) {
576 printf("MMAP commit error: %s\n", snd_strerror(err));
583 err = snd_pcm_start(handle);
584 if (err < 0) {
585 printf("Start error: %s\n", snd_strerror(err));
609 int err, first = 1;
614 err = xrun_recovery(handle, -EPIPE);
615 if (err < 0) {
616 printf("XRUN recovery failed: %s\n", snd_strerror(err));
617 return err;
621 err = xrun_recovery(handle, -ESTRPIPE);
622 if (err < 0) {
623 printf("SUSPEND recovery failed: %s\n", snd_strerror(err));
624 return err;
629 err = xrun_recovery(handle, avail);
630 if (err < 0) {
631 printf("avail update failed: %s\n", snd_strerror(err));
632 return err;
640 err = snd_pcm_start(handle);
641 if (err < 0) {
642 printf("Start error: %s\n", snd_strerror(err));
646 err = snd_pcm_wait(handle, -1);
647 if (err < 0) {
648 if ((err = xrun_recovery(handle, err)) < 0) {
649 printf("snd_pcm_wait error: %s\n", snd_strerror(err));
660 err = snd_pcm_mmap_begin(handle, &my_areas, &offset, &frames);
661 if (err < 0) {
662 if ((err = xrun_recovery(handle, err)) < 0) {
663 printf("MMAP begin avail error: %s\n", snd_strerror(err));
671 if ((err = xrun_recovery(handle, commitres >= 0 ? -EPIPE : commitres)) < 0) {
672 printf("MMAP commit error: %s\n", snd_strerror(err));
692 int err, cptr;
699 err = snd_pcm_mmap_writei(handle, ptr, cptr);
700 if (err == -EAGAIN)
702 if (err < 0) {
703 if (xrun_recovery(handle, err) < 0) {
704 printf("Write error: %s\n", snd_strerror(err));
709 ptr += err * channels;
710 cptr -= err;
788 int err, morehelp;
877 err = snd_output_stdio_attach(&output, stdout, 0);
878 if (err < 0) {
879 printf("Output failed: %s\n", snd_strerror(err));
888 if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
889 printf("Playback open error: %s\n", snd_strerror(err));
893 if ((err = set_hwparams(handle, hwparams, transfer_methods[method].access)) < 0) {
894 printf("Setting of hwparams failed: %s\n", snd_strerror(err));
897 if ((err = set_swparams(handle, swparams)) < 0) {
898 printf("Setting of swparams failed: %s\n", snd_strerror(err));
922 err = transfer_methods[method].transfer_loop(handle, samples, areas);
923 if (err < 0)
924 printf("Transfer failed: %s\n", snd_strerror(err));