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 170575 - volume control synchronization is broken when mute is On
volume control synchronization is broken when mute is On
Status: RESOLVED OBSOLETE
Product: gnome-applets
Classification: Other
Component: mixer
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-applets Maintainers
gnome-applets Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-03-16 16:15 UTC by Yury Puzis
Modified: 2015-09-26 04:51 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description Yury Puzis 2005-03-16 16:15:51 UTC
Distribution/Version: ubuntu

1. open volume control dialogue
2. pick any control, say Line-in. click mute.
3. try changing the volume in the applet. the volume in the dialogue is not
   synchronized

another way to do this is to open 2 volume control dialogues and repeat the
trick with them.

PS. not sure this is the right place to file this...
Comment 1 Danielle Madeley 2005-03-20 04:27:50 UTC
What version of gnome-applets is this? This is really meant to be fixed up in 2.10.
Comment 2 Ronald Bultje 2005-03-20 10:14:33 UTC
This can't be fixed. Muting in ALSA is done by setting the volume to zero. On
most soundcards, a 'mute' setting does not exist, because no matter what volume
you set, we keep telling ALSA that the volume is zero, because that is the only
way to enfore the 'mute' state. Therefore, the volume on the other control is
not changed.

Seriously, I'd love to fix this, but it requires me to dig into ALSA. At the
very least, the bug would be NOTGNOME.
Comment 3 Yury Puzis 2005-03-20 17:08:11 UTC
The version is 2.10

Well, it seems like the thing is partialy working now. I guess one of those
updates from ubuntu fixed it. Changing volume in the applet now updates the
volume in the dialogue. But, synchronization between 2 dialogues is still
broken. Maybe (I realize this is only partial fix) only one volume dialogue
should be permitted to be open at a time?

Also, how about this: 
1) if the mute is turned ON, drop the volume bar to 0
2) if the mute is turned OFF, get the volume back to original value
3) if the volume is changed while mute is ON, turn the mute OFF, forget the
saved original volume.
Comment 4 Yury Puzis 2005-03-20 17:26:19 UTC
I played with the volume some more, and the control seems to be inconsistant in
behavior:

1) bringing volume on applet to 0 turns mute ON
2) but, bringing volume to 0 in dialoge *does not* turns mute ON
3) unlocking channels and lowering them separately to 0 *does* *sometimes* turns
mute ON. 
4) take the volume to 0 using applet. now unmute it using button in dialogue.
the volume in applet goes up a bit on its own.
5) try taking volume in the applet down fast. as soon as it hits 0, the volume
in dialogue, which usually lags behind, stops short of reaching zero
Comment 5 Ronald Bultje 2005-03-20 17:44:54 UTC
... People are going to hate me for this.

For most of ALSA's controls, mute means 0. That is reality. Anything that we
implement has to take that into account. Or we need to fix ALSA.

Now, there's indeed theory-cases where it doesn't work out. However, we
primarily look at the common practical use cases. Those are:
* turn volume up/down a bit to in-/decrease volume
* mute/unmute to turn on/off volume
all design decisions are based on the convention that those actions are most
important. Everything else is important, but secondarily.

Now, we get update notifications of the mute state if the hardware supports it
(N/A here) and of the volume. If the update notification of the volume is zero,
this may mean two things: A) the volume was set to zero, or B) the track was
muted. Since B) is more common w.r.t. the use cases, we use that as assumption.

With that in mind, now go back to all examples you've validly complained about.
You'll notice that they're all an effect of this. Someone needs to fix ALSA to
get over it. And OSS. And all other mixer applications out there. It's just a
no-go, really. This is about as good as it gets. It's not perfect, but it's good
enough. Yes, they are bugs, but they cannot easily be fixed.

Your suggestions in comment #3 have been suggested before, and have actually
been implemented for a while, but the usability people (i.e. Seth) preferred the
current status, which is what I've implemented. I think I mostly agree with them.

In its current status, g-v-c and g-v-a interact mostly correctly with other
applications, and interact well with each other. I think that's worth a lot more
than unusable but perfect behaviour.
Comment 6 Yury Puzis 2005-03-20 20:13:04 UTC
Ronald, thanks for taking time to answer me in length.
I don't think I agree with Seth about #3. Having something as (seemingly) simple
as sound control behave unpredictably can be very annoying, and that is a
usability problem on it's own. 
But eventually it doesn't really matter, since as you said, ALSA is the root of
all evil here. Hopefully ALSA people fix it sometimes.
Comment 7 Ronald Bultje 2005-03-20 21:45:50 UTC
I will probably end up fixing ALSA myself at some point... :-(.

Anyway, then we still have the issue of Sun and OSS (BSD), but at least the
Linux side then works as it should.