All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: James Courtier-Dutton <James@superbug.demon.co.uk>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: USB disconnect/connect messages
Date: Mon, 21 Jul 2003 20:23:23 +0200	[thread overview]
Message-ID: <s5hadb7ivs4.wl@alsa2.suse.de> (raw)
In-Reply-To: <3F1C2AF1.1030106@superbug.demon.co.uk>

At Mon, 21 Jul 2003 19:03:29 +0100,
James Courtier-Dutton wrote:
> 
> Takashi Iwai wrote:
> > At Mon, 21 Jul 2003 00:40:32 +0100,
> > James Courtier-Dutton wrote:
> > 
> >>Hi,
> >>
> >>Is there any way to tell if a USB sound card has been disconnected or not?
> > 
> >  
> > IIRC, this is not notified to the application.
> > the app simply would get an error at the further access.
> > it sounds not bad to notify the status change to the application by
> > some way.
> > perhaps we can add a new control element for this purpose.
> > and after disconnection, only this element survives to communicate
> > with the application...
> > 
> So, the app gets an error. Which error?

well, when the disconnection happens, the file ops table is replaced
with the dummy one, which contains only the release and the poll
callbacks.  i'm not sure which errors are returned for the null
entries.  it's defined in the kernel vfs.  IIRC, EINVAL for read/write
and ENOTTY for ioctl.  so, this is not a good way as the identifer.

> How do I test to see if the error is due to a non-existant device, or 
> just underrun/overrun etc.
> 
> I would be happy if there was a reliable way to tell.
> This would only give us the "disconnect" event.
> How would one know if the device was connected again?
> Maybe a tidy way to do this would be a new alsa events device.
> So, we open the "events" device, and it can then inform us of hardware 
> changes. I know that USB is the only form of device that 
> connects/disconnects via a user action at the moment, but I am sure 
> others will come along. E.g. Bluetooth etc.
> For USB, usbaudio.c definitely gets informed about usb device 
> removal/addition, how can we get that message passed up to the application?

in the current scheme, reconnection is difficult, i must say.
since the device instance is kept until all the device files of the
disconnected device are released, if you connect it again, the driver
will try to create another instance.  so, eventually you will have two
different instances...  so the app must close the device anyway when
it's disconnected, and reopen it somehow, then resume the status and
restart.

about the connection notification: it's a good question.
ALSA has no global control device (except for the sequencer). all 
device files are based on the card.

of course, we can create a new device, but is there any other demand
for such a global control?


Takashi


-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0

      reply	other threads:[~2003-07-21 18:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-20 23:40 USB disconnect/connect messages James Courtier-Dutton
2003-07-21 15:25 ` Takashi Iwai
2003-07-21 18:03   ` James Courtier-Dutton
2003-07-21 18:23     ` Takashi Iwai [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hadb7ivs4.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=James@superbug.demon.co.uk \
    --cc=alsa-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.