On Mon, 28 Jan 2002, Kyle Centers wrote:

> Hi.
>
> I've been playing around with the asound library for a while now, and
> there's someting that really gets under my skin.
>
> The snd_pcm_open function, requires an open mode parameter, which,
> according to the documentation, defaults to blocking mode, but can be
> set to SND_PCM_NONBLOCK, or SND_PCM_ASYNC, as well.
>
> Its great that the function defaults to blocking mode, but I still
> have to pass a mode parameter to the mode function. What am I supposed
> to pass, if blocking mode is what I want (which is most if the time
> for me, ATM)? A look at the code shows that SND_PCM_NONBLOCK and
> SND_PCM_ASYNC are #defined as 1 and 2 respectively, so I can't pass
> those values. And the sample code, test/pcm.c, provided with alsa-lib
> passes 0.
>
> Ok, problem solved. Pass zero. Fine. But that creates an inconsistent
> interface, and requires me to have access to more than documentation
> in order to use the API (a Bad Thing <TM>). A simple fix, and indeed
> one I've implimented locally, is to add
>
> #define SND_PCM_BLOCK 0x0000
>
> to include/pcm.h in alsa/lib. that way, when I call snd_pcm_open, I
> have something to give the mode parameter, and don't have to think
> about what the underlying value is.
>
> Sounds like a good idea to me. -Or is there a reason for not adding
> that line that I'm not aware of?

SND_PCM_NONBLOCK and SND_PCM_ASYNC are bit modifiers (can be passed
together - SND_PCM_NONBLOCK|SND_PCM_ASYNC). The right name for default
behaviour can be SND_PCM_DEFAULT or SND_PCM_NONE, but anyway passing zero
is very clear to me.

                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
SuSE Linux    http://www.suse.com
ALSA Project  http://www.alsa-project.org


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to