On Mon, 10 Feb 2003, Maarten de Boer wrote:
> > There was a problem with refine code for pcm_plug, please, try again with
> > latest CVS sources. Also, look to updated pcm_dmix plugin for implementing
> > the "right" refine function.
>
> Okay, this works fine now.
>
> I am trying to do the following, using the mmap functionality. Let's
> start with playback.
>
> As I understand, I can simple do a snd_pcm_mmap_hw_forward(pcm, size) in
> my snd_pcm_jack_mmap_commit op. Then, in the jack process callback, I
Nope. The snd_pcm_mmap_appl_forward(pcm, size) is the appropriate.
> can copy data from the areas = snd_pcm_mmap_areas(pcm) to the jack
Right.
> callback buffer. For this, I use the appl_ptr as the offset in the
> mmap_areas, and snd_pcm_mmap_appl_forward(pcm,n_jack_frames); to
> increase the appl_ptr. Said differently, I use the hw_ptr as the write
> index, and the appl_ptr as the read index. Is this approach correct?
I think that it should be opposite:
appl_ptr should be increased when application writes samples (commit) and
hw_ptr should be increased when jack callback processes samples
> Now, my problem is: how should I calculate the value returned my
> snd_pcm_jack_avail_update ? There are a lot of helper functions
> (mmap_avail, mmap_hw_avail, mmap_playback_avail, etc), which I suppose
> are ment for tasks like this, but I don't really understand how. I'm
> particularly confused my buffer_size vs boundary... Could you help me
> out with this?
I think that snd_pcm_mmap_avail() is ok. The boundary is a wrapper limit
for the pointers. The pointer (appl_ptr or hw_ptr) is defined as offset in
the ring buffer plus count of interrupts multiple the ring buffer size.
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel