On Wed, 14 Jan 2004, James Courtier-Dutton wrote:
Some debug output from calling snd_pcm_wait() when a USB device is unplugged.
(pcm_hw.c from /alsa-lib/src/pcm/pcm_hw.c) file=pcm_hw.c:406 function=snd_pcm_hw_status err=25 pcm_hw.c: snd_pcm_hw_status() SNDRV_PCM_IOCTL_STATUS failed.
According to errno.h, #define ENOTTY 25 /* Not a typewriter */
I would think that the following would be a better err result. #define ENODEV 19 /* No such device */ or even #define EPIPE 32 /* Broken pipe */
I have looked through alsa-lib and alsa-kernel and cannot find any place in the code that sets errno to 25!
Can anybody help?
Consult the toplevel filesystem routines. In case when the device is disconnected, all i/o (filesystem operation) calls are redirected to empty structure, so the Linux kernel filesystem code probably returns ENOTTY errors when no ioctl/read/write callbacks are associated to the device.
Jaroslav
Thank you, that makes sense. :-)
Also, what should snd_pcm_wait() and snd_pcm_state() return if the USB device is unplugged.
At the moment, snd_pcm_wait() just hangs around until the timeout and returns errno -5
and snd_pcm_state() still returns state=3 which is SND_PCM_STATE_RUNNING
I would hardly say the the card is still in "RUNNING" state if you physically remove the card from the system!
I would prefer snd_pcm_wait() to imeadiately exit with an errno, and snd_pcm_state() to return a new state of "SND_PCM_STATE_DISCONNECTED" or similar.
Can I do what I want with snd_pcm_wait or not?
Cheers James
------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel