From: Fons Adriaensen Date: Mon, 9 Jan 2012 17:18:10 +0000 (+0100) Subject: jack: Fix revents for playback X-Git-Tag: v1.0.25~2 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=b3fb514e0425d08aa0c6c747f36942b7899bab9b;p=alsa-plugins.git jack: Fix revents for playback 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. Signed-off-by: Takashi Iwai --- diff --git a/jack/pcm_jack.c b/jack/pcm_jack.c index eb3359c..c51fe84 100644 --- a/jack/pcm_jack.c +++ b/jack/pcm_jack.c @@ -77,7 +77,7 @@ static int snd_pcm_jack_close(snd_pcm_ioplug_t *io) 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) { @@ -87,7 +87,9 @@ static int snd_pcm_jack_poll_revents(snd_pcm_ioplug_t *io ATTRIBUTE_UNUSED, 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; }