[alsa-devel] patch for jack plugin

Fons Adriaensen fons at linuxaudio.org
Thu Dec 29 17:12:04 CET 2011


The following patch will make snd_pcm_poll_descriptors_revents()
return the correct value when used on a jack plugin device.
The current version returns POLLIN regardless of capture or
playback.


--- pcm_jack_orig.c     2011-12-29 16:42:07.000000000 +0100
+++ pcm_jack.c  2011-12-29 16:51:18.000000000 +0100
@@ -77,17 +77,18 @@
        return 0;
 }
 
-static int snd_pcm_jack_poll_revents(snd_pcm_ioplug_t *io ATTRIBUTE_UNUSED,
+static int snd_pcm_jack_poll_revents(snd_pcm_ioplug_t *io,
                                     struct pollfd *pfds, unsigned int nfds,
                                     unsigned short *revents)
 {
        static char buf[1];
 
        assert(pfds && nfds == 1 && revents);
-
        read(pfds[0].fd, buf, 1);
-
-       *revents = pfds[0].revents;
+       *revents = pfds[0].revents & ~(POLLIN | POLLOUT);
+        if (pfds[0].revents & POLLIN) {
+           *revents |= (io->stream == SND_PCM_STREAM_PLAYBACK) ? POLLOUT : POLLIN;
+       }
        return 0;
 }
 


Ciao,


-- 
FA

Vor uns liegt ein weites Tal, die Sonne scheint - ein Glitzerstrahl.



More information about the Alsa-devel mailing list