diff -Naur gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-mixer.c gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-mixer.c --- gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-mixer.c 2012-12-12 18:49:09.911781453 +0200 +++ gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-mixer.c 2012-12-12 18:32:27.416264307 +0200 @@ -704,3 +704,22 @@ } } } + +const char * +gam_mixer_create_elem_name(snd_mixer_elem_t *elem){ + unsigned int index; + char *s, *name; + + index = snd_mixer_selem_get_index(elem); + if (index > 0){ + name = strcat(strdup(snd_mixer_selem_get_name(elem)),"1234"); + sprintf(name, "%s %u", snd_mixer_selem_get_name(elem), index); + } + else + name = strdup(snd_mixer_selem_get_name(elem)); + + while ((s = strstr(name, "IEC958")) != NULL) + memcpy(s, "S/PDIF", 6); + return name; +} + diff -Naur gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-mixer.h gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-mixer.h --- gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-mixer.h 2012-12-12 18:49:09.911781453 +0200 +++ gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-mixer.h 2012-12-12 18:17:08.391274966 +0200 @@ -74,6 +74,7 @@ gint index); void gam_mixer_construct_sliders (GamMixer *gam_mixer); +const char *gam_mixer_create_elem_name(snd_mixer_elem_t *elem); G_END_DECLS diff -Naur gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-slider.c gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-slider.c --- gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-slider.c 2012-12-12 18:49:09.915781547 +0200 +++ gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-slider.c 2012-12-12 18:45:31.450672458 +0200 @@ -449,7 +449,7 @@ priv = GAM_SLIDER_GET_PRIVATE (gam_slider); - return snd_mixer_selem_get_name (priv->elem); + return gam_mixer_create_elem_name(priv->elem); } const gchar * @@ -479,7 +479,7 @@ priv = GAM_SLIDER_GET_PRIVATE (gam_slider); - disp_name = g_strndup (gam_slider_get_name (gam_slider), 8); + disp_name = g_strdup (gam_slider_get_name (gam_slider)); key = g_strdup_printf ("/apps/gnome-alsamixer/slider_display_names/%s-%s", gam_mixer_get_config_name (GAM_MIXER (priv->mixer)), diff -Naur gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-toggle.c gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-toggle.c --- gnome-alsamixer-0.9.7~cvs.20060916.ds.1_old/src/gam-toggle.c 2012-12-12 18:49:09.915781547 +0200 +++ gnome-alsamixer-0.9.7~cvs.20060916.ds.1_new/src/gam-toggle.c 2012-12-12 18:45:31.458672646 +0200 @@ -339,7 +339,7 @@ snd_mixer_selem_get_capture_switch (priv->elem, 0, &value); } else { g_warning ("%s (). No idea what to do for mixer element \"%s\"!", - __FUNCTION__, snd_mixer_selem_get_name (priv->elem)); + __FUNCTION__, gam_mixer_create_elem_name(priv->elem)); } return value; @@ -362,7 +362,7 @@ err = snd_mixer_selem_set_capture_switch_all (priv->elem, state); } else { g_warning ("%s (). No idea what to do for mixer element \"%s\"!", - __FUNCTION__, snd_mixer_selem_get_name (priv->elem)); + __FUNCTION__, gam_mixer_create_elem_name(priv->elem)); err = 0; } @@ -380,7 +380,7 @@ priv = GAM_TOGGLE_GET_PRIVATE (gam_toggle); - return snd_mixer_selem_get_name (priv->elem); + return gam_mixer_create_elem_name(priv->elem); } const gchar *