$NetBSD: patch-ab,v 1.12 2000/09/01 15:58:37 toshii Exp $

--- src/mixer.c.orig	Mon Jul 24 07:25:50 2000
+++ src/mixer.c	Fri Sep  1 21:42:16 2000
@@ -265,6 +265,17 @@
 mixer_devinfo_t *infos;
 mixer_ctrl_t *values;
 
+char *
+catstr(char *p, char *q)
+{
+  char *r = malloc(strlen(p) + strlen(q) + 2);
+  strcpy(r, p);
+  strcat(r, ".");
+  strcat(r, q);
+  return r;
+}
+
+
 void mixer_init(gint init_device_id)
 {
   int fd, i, ndev;
@@ -306,7 +317,12 @@
     if (infos[i].type == AUDIO_MIXER_VALUE) {
       DeviceData *device = g_new0(DeviceData, 1);
       device->device_id = i;
-      device->device_name = infos[i].label.name;
+      if (0 <= infos[i].mixer_class && infos[i].mixer_class < ndev)
+	device->device_name =
+	    catstr(infos[infos[i].mixer_class].label.name,
+		   infos[i].label.name);
+      else
+	device->device_name = infos[i].label.name;
       device->stereo = 1;
       device->recordable = 0;
       device_list = g_list_append(device_list, device);