Hello Martin.
Could it be that you did not understand what I try to demonstrate ?
In ALSA code,
snd_pcm_drop(pcm) does nothing more than stop the timer of the alsa object.
snd_pcm_drop(pcm) ===> snd_timer_hw_stop(snd_timer).
But, sadly, snd_timer_hw_stop(snd_timer) does not work ;-(.
Here the ALSA code
static int snd_timer_hw_stop(snd_timer_t *handle)
{
snd_timer_t *tmr;
unsigned int cmd;
tmr = handle;
if (!tmr)
return -EINVAL;
if (tmr->version < SNDRV_PROTOCOL_VERSION(2, 0, 4))
cmd = SNDRV_TIMER_IOCTL_STOP_OLD;
else
cmd = SNDRV_TIMER_IOCTL_STOP;
if (ioctl(tmr->poll_fd, cmd) < 0)
return -errno;
return 0;
}
IMHO, cmd = SNDRV_TIMER_IOCTL_STOP does not work.
====> #define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
Maybe 0xa1 is not the good one for stopping the timer.
And because I do not find the resolution of that bug, I propose the
workaround (that is not yours, you said) for Pcaudio.so.
Of course if the ALSA-timer-stop bug can be solved, it would be better.
Fre;D
--
Sent from: http://mseide-msegui-talk.13964.n8.nabble.com/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk