Re: Confusion about whether snd_pcm_poll_descriptors_revents()'s revents field is a single integer or an array

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

 



On Mon, 2 Feb 2009, Takashi Iwai wrote:

> At Mon, 2 Feb 2009 15:49:13 +0100,
> Lennart Poettering wrote:
> > 
> > On Mon, 02.02.09 08:02, Takashi Iwai (tiwai@xxxxxxx) wrote:
> > 
> > > > If we look into the pcm example how snd_pcm_poll_descriptors_revents()
> > > > is used then we can see that the revents parameter apparently is
> > > > supposed to be a single integer. (which makes a lot of sense to me)
> > > > 
> > > > http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html#a33
> > > > 
> > > > However, snd_pcm_wait_nocheck() calls the same function and assumes it
> > > > is a complete array!
> > > > 
> > > > http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=74d1d1a4bd6083cd461b6d793c0ae41cca912f16;hb=HEAD#l2368
> > > > 
> > > > So what's it now? It makes more sense to me if it would be a single
> > > > fd. 
> > > 
> > > No, it's a bug in test/pcm.c.  As documented, the API converts (fixes)
> > > each poll_fd in the given array.
> > 
> > But does that really make sense? I mean
> > snd_pcm_poll_descriptors_revents() is supposed to be called by
> > applications that integrate ALSA into some kind of event loop. What
> > are they supposed to do with those multiple entries -- except simply
> > ORing them together and treating them as one? The application has no
> > information what those seperate fds mean, so why export that
> > information to the app?
> 
> Originally the multiple pfds were introduced to handle multi plugin,
> which bundles multiple instances.  So, the original version of it was
> pretty straightforward -- just simply calls poll to each and update
> each pfd necessarily.

But snd_pcm_poll_descriptors_revents() was designed to return single 
value originally. Multiple fds were never used in pcm_multi for 
revents, too. Also, snd_pcm_wait() was OK (in the sense revents 
callback) before:

commit d5b98234478680c4afdf475988b8952605f66ff8
Author: Takashi Iwai <tiwai@xxxxxxx>
Date:   Wed May 18 13:28:06 2005 +0000

    Fix snd_pcm_wait() for multiple pollfd's

    Fixed snd_pcm_wait() to handle multiple pollfd's.


					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