At Tue, 2 Jun 2009 12:36:39 +0200, Daniel Mack wrote: > > If not passed as module option, provide an own card ID with the newly > introduced snd_set_card_id() call. > > This will prevent ALSA from calling choose_default_name() which only > takes the last part of a name containing whitespaces. This for example > caused 'Audio 4 DJ' to be shortened to 'DJ', which was not very > descriptive. > > The implementation now takes the short name and removes all whitespaces > from it which is much nicer. > > Signed-off-by: Daniel Mack <daniel@xxxxxxxx> > --- > sound/usb/caiaq/device.c | 21 +++++++++++++++++++-- > 1 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c > index 15052e4..43bd0db 100644 > --- a/sound/usb/caiaq/device.c > +++ b/sound/usb/caiaq/device.c > @@ -382,10 +382,10 @@ static int create_card(struct usb_device* usb_dev, struct snd_card **cardp) > > static int __devinit init_card(struct snd_usb_caiaqdev *dev) > { > - char usbpath[32]; > + char *c, usbpath[32]; > struct usb_device *usb_dev = dev->chip.dev; > struct snd_card *card = dev->chip.card; > - int err; > + int err, len; > > if (usb_set_interface(usb_dev, 0, 1) != 0) { > log("can't set alt interface.\n"); > @@ -427,6 +427,23 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev) > strlcpy(card->driver, MODNAME, sizeof(card->driver)); > strlcpy(card->shortname, dev->product_name, sizeof(card->shortname)); > > + /* if the id was not passed as module option, fill it with a shortened > + * version of the product string which does not contain any > + * whitespaces */ > + > + if (*card->id == '\0') { Hm, at this place, card->id should be never an empty string so this is always true. > + char id[sizeof(card->id)]; > + > + memset(id, 0, sizeof(id)); > + > + for (c = card->shortname, len = 0; > + *c && len < sizeof(card->id); c++) > + if (*c != ' ') > + id[len++] = *c; ... and here you change the id string unconditionally no matter whether it's given explicitly or not. It should check id[devnum] instead of card->id. thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel