Cournapeau David <[EMAIL PROTECTED]> writes:

> Hi there,
>     I am currently using two computers which have a crappy intl8x0
>     audio chipset, and these chipset cannot be used by two different
>     apps in the same time. For example, if an audio app is using the
>     soundcard, trying to launch xmms ( with alsa output plugin) gives
>     an error message which says something like "check that no other
>     app is blocking the device". But if I launch alsaplayer (alsa
>     output plugin) instead of xmms, the app doesn't complain: it
>     'just' blocks on the snd_pcm_open call.
>     Basically, after having looked at the source, is seems like this
>     difference is coming from the flag in snd_pcm_open: if
>     SND_PCM_NONBLOCK  is used, opening an already opened device
>     failed, if SND_PCM_ASYNC is used, the app just blocks, until the
>     other app releases the device.

This is correct.

>     Is there a (simple) way to use the blocking call and detecting if
>     the device is already opened ?

You can open it in non-blocking mode and set it to blocking later, if
you want that behavior when writing data.

Måns Rullgård

This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
Alsa-devel mailing list

Reply via email to