[alsa-devel] Query regarding pointer callback
Hi
In Writing an ALSA driver, it is said that pointer callback is called usually from the buffer-update routine in the pcm middle layer, which is invoked when snd_pcm_period_elapsed() is called in the interrupt routine. Then the pcm middle layer updates the position and calculates the available space, and wakes up the sleeping poll threads, etc
What are the other places from where pointer callback is called? If it is not called from any other routine then does it mean that interrupts are occuring?
It is called from snd_pcm_lib_ioctl too. In SNDRV_PCM_IOCTL1_RESET case.
On 6/23/07, Pharaoh . pharaoh137@gmail.com wrote:
Hi
In Writing an ALSA driver, it is said that pointer callback is called usually from the buffer-update routine in the pcm middle layer, which is invoked when snd_pcm_period_elapsed() is called in the interrupt routine. Then the pcm middle layer updates the position and calculates the available space, and wakes up the sleeping poll threads, etc
What are the other places from where pointer callback is called? If it is not called from any other routine then does it mean that interrupts are occuring?
Pharaoh . wrote:
In Writing an ALSA driver, it is said that pointer callback is called usually from the buffer-update routine in the pcm middle layer, which is invoked when snd_pcm_period_elapsed() is called in the interrupt routine. Then the pcm middle layer updates the position and calculates the available space, and wakes up the sleeping poll threads, etc
What are the other places from where pointer callback is called?
Many places. There are some other situations when the ALSA framework wants to know the current position (e.g., pausing, stopping), and the application can ask for the current position at any time.
If it is not called from any other routine then does it mean that interrupts are occuring?
When it's never called, it means that snd_pcm_period_elapsed() never was called.
HTH Clemens
participants (2)
-
Clemens Ladisch
-
Pharaoh .