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
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

Reply via email to