mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
ALSA: snd_usb_caiaq: give better shortname
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@caiaq.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
17db0486d7
commit
bafeee5b1f
@ -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') {
|
||||
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;
|
||||
|
||||
snd_card_set_id(card, id);
|
||||
}
|
||||
|
||||
usb_make_path(usb_dev, usbpath, sizeof(usbpath));
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"%s %s (%s)",
|
||||
|
Loading…
Reference in New Issue
Block a user