]> git.sesse.net Git - vlc/commitdiff
udev ALSA: use vendor name if available
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 13 Feb 2010 20:53:59 +0000 (22:53 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 13 Feb 2010 20:54:14 +0000 (22:54 +0200)
modules/services_discovery/udev.c

index 79fff9fc10dac6633fde1aef5f82099d151666db..2e3cb8338eadf8c87bc2eed08eb2d5eac7cdf986 100644 (file)
@@ -490,15 +490,17 @@ static char *alsa_get_name (struct udev_device *dev)
 
 static char *alsa_get_cat (struct udev_device *dev)
 {
-    char *name;
-    unsigned card, device;
+    const char *vnd;
 
-    if (alsa_get_device (dev, &card, &device))
+    dev = udev_device_get_parent (dev);
+    if (dev == NULL)
         return NULL;
 
-    if (asprintf (&name, _("Card %u"), card) == -1)
-        name = NULL;
-    return name;
+    vnd = udev_device_get_property_value (dev, "ID_VENDOR_FROM_DATABASE");
+    if (vnd == NULL)
+        /* FIXME: USB may take time to settle... the parent device */
+        vnd = udev_device_get_property_value (dev, "ID_BUS");
+    return vnd ? strdup (vnd) : NULL;
 }
 
 int OpenALSA (vlc_object_t *obj)