Re: snd_pcm_writei() return value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 21 May 2009, Cristian Morales Vega wrote:

> while(buffer.length > 0) {
>  snd_pcm_sframes_t written = snd_pcm_writei(device.handle,
> buffer_ptr, buffer.length);
>  if(written < 0) {
>    snd_pcm_recover(device.handle, written, 1);
>  } else if(written <= buffer.length) {
>    buffer.length -= written;
>    buffer_ptr += written;
>  }
> }

This is correct.

> ? And still, in this case an interrupt would be handled by
> snd_pcm_recover() (written < 0) or by the "else" code?

-EINTR is just noop in recover() function:

         if (err == -EINTR)      /* nothing to do, continue */
                 return 0;

Also check returned value from recover() - if it's negative, other error 
occured.

 					Jaroslav

-----
Jaroslav Kysela <perex@xxxxxxxx>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux