On Sat, 22 Feb 2003, Abramo Bagnara wrote: > Jaroslav Kysela wrote: > > > > Hello all, > > > > I'd like to announce a new PCM API extension. Although it is > > implemented, it might be changed following the discussion on this list. > > I've added the snd_pcm_forward() function. This function is > > function with opposite meaning to snd_pcm_rewind() - it skips given count > > of frames (note that in the ring buffer are unchanged, only the r/w > > pointer is increased). The application has full control on the r/w pointer > > now. It's useful mainly in the no-xrun mode where the stream runs forever. > > Don't we had already snd_pcm_reset for exactly the same purpose?
Yes and no. You cannot fill the buffer ahead without writting some samples. I think that it's not bad to offer the full control on appl_ptr. It doesn't cost us anything and I can imagine some special applications where the buffer is auto-silenced that they need to write samples into the specific position. Reset is nice, but you cannot tell the count of frames to be skipped without filling. I'm also going to propose next extension: Actually, the appl_ptr managing routines - snd_pcm_reset(), snd_pcm_rewind(), snd_pcm_forward() always uses an ioctl for it's operation. I think that it wouldn't be a bad idea to implement these function in the lightweight variant, too. I mean that they will operate only with the actual hw_ptr without calling the kernel code. We have already functions to synchronize the hw_ptr with the hardware (snd_pcm_delay(), snd_pcm_hwsync()). Because it's late to change this behaviour in alsa-lib, I propose to create a function 'snd_pcm_fast_rw_change()' (better name?) which tells the alsa-lib that no accurate operation is required. Especially lowlatency applications will benefit that we removed more 'user<->kernel' switches. Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project, SuSE Labs ------------------------------------------------------- This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. The most comprehensive and flexible code editor you can use. Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. www.slickedit.com/sourceforge _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel