From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Courtier-Dutton Subject: Suggestion regarding alsa driver writing documentation. Date: Sat, 08 May 2004 19:33:51 +0000 Sender: alsa-devel-admin@lists.sourceforge.net Message-ID: <409D361F.5050903@superbug.demon.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Return-path: Errors-To: alsa-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org I have been helping some people with writing alsa drivers. One thing that they did not totally understand from the alsa documentation was the concept of frames. To help with this, could we add a html link between in the following document: - http://www.alsa-project.org/~iwai/writing-an-alsa-driver/x490.htm In section: - /* pointer callback */ pointing to: - http://www.alsa-project.org/~iwai/writing-an-alsa-driver/x537.htm In Section: - PCM Configurations Where it explains about what a "frame" is. I think it would be helpful to also explain that the document: - http://www.alsa-project.org/~iwai/writing-an-alsa-driver/x490.htm has a line: - current_ptr = mychip_get_hw_pointer(chip); I think that comments should be added close to that line to say: - " The pointer value obtained from the hardware is likely to be a byte offset within the buffer. In order to convert this value to a type "snd_pcm_uframes_t" , that is required as the return value, use the following code: - return bytes_to_frames(substream->runtime, pointer); An explanation of what a "frame" is can be found at http://xyz " Or just change the document example code: - /* pointer callback */ static snd_pcm_uframes_t snd_mychip_pcm_pointer(snd_pcm_substream_t *substream) { mychip_t *chip = snd_pcm_substream_chip(substream); - unsigned int current_ptr; + unsigned int current_byte_ptr; // get the current hardware pointer - current_ptr = mychip_get_hw_pointer(chip); - return current_ptr; + current_byte_ptr = mychip_get_hw_pointer(chip); + return bytes_to_frames(substream->runtime, current_byte_ptr); } Cheers James ------------------------------------------------------- This SF.Net email is sponsored by Sleepycat Software Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver higher performing products faster, at low TCO. http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3