On 03/26/18 09:38, Takashi Iwai wrote:
On Mon, 26 Mar 2018 07:11:44 +0200, Kirill Marinushkin wrote:
Currently, all playback switches are described as mute. It is shown as:
[OO] == sound is on (left and right channels) [MM] == sound is muted (left and right channels)
But cards can have different kinds of switch controls, not only mute. At least usb-audio provides boolean controls as playback switches for:
- clock source validity (read only switch)
- processing features on/off (rw switch)
- potentially other similar use-cases
It becames confusing, because it is shown as:
[OO] == clock source is valid [MM] == clock source is invalid
[OO] == processing feature is on [MM] == processing feature is off
And from the help, it is not clear how to toggle such switches.
In this RFC, I suggest to show switches more generic:
[yy] == sound on / clock source is valid / processing feature is on [nn] == sound muted / clock source is invalid / processing feature is off
I don't think it's better solution, sorry. The current symbol isn't the best of the best, I admit. But yy/nn isn't better from the visibility POV, and what's worse is the sudden change of user experience on such a long-living application. Also, you can't expect every user understanding English.
You are right. Change of symbols will complicate the experience. I agree that we better keep the current ones.
If the problem is about the mismatch of mute/non-mute symbol against the switch state, we may blacklist / whitelist the element names. At easiest, we can keep using mute symbol for "xxx Playback Switch". This is very likely a mute control. The rest is neutral, so something more generic symbol can be used for on/off instead of 'M'.
I faced 2 problems:
* the clock source validity was displayed as [O]. I thought it is a zero, which is the opposite from the real state * I couldn't find how to turn the processing feature on. The help doesn't say anything about it
I agree that we better keep the symbol unchanged. But in the help we need to clarify the use-case. Below is an alternative way to make it clear. What do you think about this?
--- a/alsamixer/mixer_widget.c +++ b/alsamixer/mixer_widget.c @@ -210,9 +210,11 @@ static void show_help(void) _("Z X C Decrease left/both/right volumes"), _("B Balance left and right volumes"), "", - _("M Toggle mute"), + _("M Toggle mute/switch"), /* TRANSLATORS: or , . */ - _("< > Toggle left/right mute"), + _("< > Toggle left/right mute/switch"), + _(" [O] == playback on / switch on"), + _(" [M] == playback muted / switch off"), "", _("Space Toggle capture"), /* TRANSLATORS: or Insert Delete */
thanks,
Takashi