Update of /cvsroot/alsa/alsa-lib/src/pcm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22232

Modified Files:
        pcm.c 
Log Message:
Added mmap_avail() check to snd_pcm_wait() function

Index: pcm.c
===================================================================
RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm.c,v
retrieving revision 1.278
retrieving revision 1.279
diff -u -r1.278 -r1.279
--- pcm.c       17 Mar 2004 11:48:14 -0000      1.278
+++ pcm.c       23 Mar 2004 13:29:52 -0000      1.279
@@ -2066,6 +2066,20 @@
        struct pollfd pfd;
        unsigned short revents;
        int err, err_poll;
+       
+       if (snd_pcm_mmap_avail(pcm) >= pcm->avail_min) {
+               /* check more precisely */
+               switch (snd_pcm_state(pcm)) {
+               case SND_PCM_STATE_XRUN:
+                       return -EPIPE;
+               case SND_PCM_STATE_SUSPENDED:
+                       return -ESTRPIPE;
+               case SND_PCM_STATE_DISCONNECTED:
+                       return -ENOTTY; /* linux VFS does this? */
+               default:
+                       return 1;
+               }
+       }
        err = snd_pcm_poll_descriptors(pcm, &pfd, 1);
        assert(err == 1);
        err_poll = poll(&pfd, 1, timeout);



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to