After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 468289 - Cannot set the volumes if two identical sound cards are installed
Cannot set the volumes if two identical sound cards are installed
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: dont know
0.10.x
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-08-19 19:42 UTC by Alessio Sangalli
Modified: 2011-07-01 17:56 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Alessio Sangalli 2007-08-19 19:42:31 UTC
Please describe the problem:
If you have two identical sound cards installed in your system, and want to configure gnome-volume-control for the second:
- you will find it in the device list (with the same name as the first card)
- even if you click and select the second, gnome-volume-control will control volume on the *first* card

mixer_applet2 works without problems.

Steps to reproduce:
1. install two identical sound cards in your system
2. open gnome-volume-control and select the second in File->Change device->...
3. set the volumes.

Actual results:
The volume settings will always be applied to the first card.


Expected results:
The volume settings to be applied on the selected card.

Does this happen every time?
Yes, sure.

Other information:
Thank you
Comment 1 Bastien Nocera 2007-09-25 15:15:20 UTC
Now someone just needs to get 2 identical cards to one of the developers :)
Comment 2 Alessio Sangalli 2007-10-09 15:41:47 UTC
I can send two cards to a developer to test this issue. Just tell me who and the address!

bye
Alessio
Comment 3 Christian Vogel 2007-11-24 10:39:15 UTC
This bug also appears with two "simmilar" cards.

In my case: Ubuntu Gutsy, gnome-volume-control 2.20.1. I have two entries in my gnome-volume-control menu:
 0: Ensoniq AudioPCI (Alsa Mixer)
 1: Ensoniq AudioPCI (Alsa Mixer)
 2: Camera... (Alsa)
 3: Sigmatel... (OSS)

When I select 0 or 1, both show and control the first card's mixer, I'm unable to edit the 2nd cards volume.

My guess is that gnome-volume-control only uses the Alsa-short-name for a card to distinguish entries, both are set to "Ensoniq AudioPCI" in my case.

[atrocity /home/chris]
$ cat /proc/asound/cards
 0 [AudioPCI       ]: ENS1371 - Ensoniq AudioPCI
                      Ensoniq AudioPCI ENS1371 at 0x1000, irq 19
 1 [AudioPCI_1     ]: ENS1370 - Ensoniq AudioPCI
                      Ensoniq AudioPCI ENS1370 at 0x1080, irq 21
 2 [Pro            ]: USB-Audio - FastTrack Pro
                      M-Audio FastTrack Pro at usb-0000:00:1d.0-1, full speed
 3 [Camera         ]: USB-Audio - Camera
                      Camera at usb-0000:00:1d.7-4.3, full speed

[atrocity /home/chris]
$ lspci | grep Ensoniq
05:01.0 Multimedia audio controller: Ensoniq ES1370 [AudioPCI]
05:03.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06)

[atrocity /home/chris]
$ lsmod|grep ^snd_ens
snd_ens1371            24736  3 
snd_ens1370            19296  0 


---- WORKAROUND ----
(this is not a real solution and involves hacking the kernel-sources)

If I patch the driver (snd_ens1370.c in both cases, gets compiled with different flags for the two cards) to add something unique to the "short name", I get two cards that gnome-volume-control can select independently...:

 0: ENS13700x1000 (Alsa Mixer)
 1: ENS13710x1800 (Alsa Mixer)
 2: ... Camera
 3: ... OSS Mixer

[atrocity /usr/src/linux-2.6.24-rc3]
$ diff -u sound/pci/ens1370.c{.orig,}
--- sound/pci/ens1370.c.orig	2007-11-24 11:23:26.661490830 +0000
+++ sound/pci/ens1370.c	2007-11-24 11:30:22.488498916 +0000
@@ -2448,9 +2448,8 @@
 
 	strcpy(card->driver, DRIVER_NAME);
 
-	strcpy(card->shortname, "Ensoniq AudioPCI");
-	sprintf(card->longname, "%s %s at 0x%lx, irq %i",
-		card->shortname,
+	sprintf(card->shortname,"%s_0x%lx",card->driver,ensoniq->port);
+	sprintf(card->longname, "%s at 0x%lx, irq %i",
 		card->driver,
 		ensoniq->port,
 		ensoniq->irq);

Comment 4 Ronald Bultje 2007-11-24 14:01:28 UTC
Long time ago, a patch was applied to g-v-c to make names unique, I believe Bastien wrote that patch. This function was moved to gstreamer to share with g-v-a and other apps and apparently broken. Therefore, re-assigning.
Comment 5 Sebastian Dröge (slomo) 2011-05-18 20:32:44 UTC
Is this still a problem?
Comment 6 Fabio Durán Verdugo 2011-06-28 23:40:36 UTC
well any news for this report?
Comment 7 Alessio Sangalli 2011-06-28 23:51:54 UTC
At this point, it seems I cannot reproduce the problem anymore, but I do not have the same sound cards that I used several years ago.
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2011-07-01 17:56:23 UTC
Lets cloe it then. Allessio, thanks for the update.