Jaroslav Kysela wrote:
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

Reply via email to