[alsa-devel] dmix without mmap support in soundcard driver
Joachim Foerster
mls.JOFT at gmx.de
Fri Jan 11 16:01:36 CET 2008
Hi Robin,
On Tue, 2008-01-08 at 22:58 -0500, Robin Getz wrote:
> OK - I see in:
>
> http://www.alsa-project.org/~tiwai/writing-an-alsa-driver/x1405.htm
>
> I assume that is what you mean?
Exactly, yes.
> If so, I'm still confused - since the pcmcia/vx (vxpocket driver) doesn't seem
> to do that... ??
Hmmm, I never looked at the vxpocket driver ....
> I do see the driver in pci/rme32.c - it is using pcm-indirect.h and the
> snd_pcm_indirect_xxx functions - if that is the one we should be looking at?
Yes. rme32.c is a good example.
> My only question is - if you allow a mmaped intermediate buffer, how does the
> driver notice when ALSA writes into this buffer?
It's the ack() callback. ALSA writes/reads something into/from the
intermediate buffer and calls the driver's ack() callback - if there is
any. In the ack() callback the driver should call one of the
snd_pcm_indirect_*_transfer() functions. There, the difference between
current and last seen appl_ptr gives the "new position" of the PCM Layer
in your intermediate buffer (where it will write/read next time).
Joachim
More information about the Alsa-devel
mailing list