Hello,

I have a general question regarding the snd_pcm_open function.  I'm
working on a full duplex application (full duplex, meaning that I want to
be able to read at any given time and write at any given time to the
pcm device), but in every full duplex code example I have seen, the pcm
device is opened twice.  Once for read, another time for writing, and then
the two are linked together.  I guess now that I think about it I have two
questions.

1) Is it necessary to open the device twice, as opposed to opening
it once, passing SND_PCM_STREAM_PLAYBACK|SND_PCM_STREAM_CAPTURE instead?

2) Doesn't the link function do some sort of buffer
synchronization between the two handles (read and write) so that you have
to do reads and writes in order (i.e snd_pcm_readi, snd_pcm_writei,
snd_pcm_readi, snd_pcm_writei, ....)?  If so, and if one can open the pcm
device with one handle using the
SND_PCM_STREAM_PLAYBACK|SND_PCM_STREAM_CAPTURE call, does it perform in a
similar way, so that you have to do synchronized reads and writes?

Last Question:  (I just thought of this one :-) )

3) What behavior differences does one have if one doesn't link the two
handles and one opens the device twice, as mentioned above?

Thanks,
Matthew Fredrickson








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

Reply via email to