alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
@ 2018-03-26  5:11 Kirill Marinushkin
  2018-03-26  7:38 ` Takashi Iwai
  2018-03-26  8:19 ` Takashi Sakamoto
  0 siblings, 2 replies; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26  5:11 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, Kirill Marinushkin

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

And give a more generic description in the help.

Signed-off-by: Kirill Marinushkin <k.marinushkin@gmail.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
---
 alsamixer/mixer_display.c | 8 ++++----
 alsamixer/mixer_widget.c  | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/alsamixer/mixer_display.c b/alsamixer/mixer_display.c
index b1f79d0..f73b11a 100644
--- a/alsamixer/mixer_display.c
+++ b/alsamixer/mixer_display.c
@@ -513,13 +513,13 @@ static void display_control(unsigned int control_index)
 		mvwaddch(mixer_widget.window, base_y + 1, frame_left + 1,
 			 switches[0]
 			 /* TRANSLATORS: playback on; one character */
-			 ? _("O")[0] | (control->flags & IS_ACTIVE ? attr_ctl_nomute : 0)
+			 ? _("y")[0] | (control->flags & IS_ACTIVE ? attr_ctl_nomute : 0)
 			 /* TRANSLATORS: playback muted; one character */
-			 : _("M")[0] | (control->flags & IS_ACTIVE ? attr_ctl_mute : 0));
+			 : _("n")[0] | (control->flags & IS_ACTIVE ? attr_ctl_mute : 0));
 		waddch(mixer_widget.window,
 		       switches[1]
-		       ? _("O")[0] | (control->flags & IS_ACTIVE ? attr_ctl_nomute : 0)
-		       : _("M")[0] | (control->flags & IS_ACTIVE ? attr_ctl_mute : 0));
+		       ? _("y")[0] | (control->flags & IS_ACTIVE ? attr_ctl_nomute : 0)
+		       : _("n")[0] | (control->flags & IS_ACTIVE ? attr_ctl_mute : 0));
 	}
 
 	if (control->flags & TYPE_CSWITCH) {
diff --git a/alsamixer/mixer_widget.c b/alsamixer/mixer_widget.c
index 0c2b9e0..93d1923 100644
--- a/alsamixer/mixer_widget.c
+++ b/alsamixer/mixer_widget.c
@@ -210,9 +210,9 @@ 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 / playback switch"),
 		/* TRANSLATORS: or , . */
-		_("< >        Toggle left/right mute"),
+		_("< >        Toggle left/right mute / playback switch"),
 		"",
 		_("Space      Toggle capture"),
 		/* TRANSLATORS: or Insert Delete */
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26  5:11 [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches Kirill Marinushkin
@ 2018-03-26  7:38 ` Takashi Iwai
  2018-03-26 18:32   ` Kirill Marinushkin
  2018-03-26  8:19 ` Takashi Sakamoto
  1 sibling, 1 reply; 13+ messages in thread
From: Takashi Iwai @ 2018-03-26  7:38 UTC (permalink / raw)
  To: Kirill Marinushkin; +Cc: alsa-devel

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.

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'.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26  5:11 [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches Kirill Marinushkin
  2018-03-26  7:38 ` Takashi Iwai
@ 2018-03-26  8:19 ` Takashi Sakamoto
  2018-03-26 18:37   ` Kirill Marinushkin
  2018-03-26 18:42   ` Kirill Marinushkin
  1 sibling, 2 replies; 13+ messages in thread
From: Takashi Sakamoto @ 2018-03-26  8:19 UTC (permalink / raw)
  To: Kirill Marinushkin, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel

Hi,

On Mar 26 2018 14:11, 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.

Could you show such control elements to help reviewers? For example, 
output from 'amixer' might be enough.


Regards

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26  7:38 ` Takashi Iwai
@ 2018-03-26 18:32   ` Kirill Marinushkin
  2018-03-26 20:41     ` Andrew Chant
  0 siblings, 1 reply; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 18:32 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

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

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26  8:19 ` Takashi Sakamoto
@ 2018-03-26 18:37   ` Kirill Marinushkin
  2018-03-26 18:42   ` Kirill Marinushkin
  1 sibling, 0 replies; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 18:37 UTC (permalink / raw)
  To: Takashi Sakamoto, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel

On 03/26/18 10:19, Takashi Sakamoto wrote:
> Hi,
>
> On Mar 26 2018 14:11, 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.
>
> Could you show such control elements to help reviewers? For example, output from 'amixer' might be enough.
>

I tried to avoid it, because most probably it will be displayed incorrectly inside the email.
I attach it now, but keep in mind that in alsamixer it will look more accurate.

For the new proposal, where we modify only the help, the output will look like this:

│                │                                             #         │
│                │M          Toggle mute/switch                #         │
│                │< >        Toggle left/right mute/switch     #         │
│                │           [O] == playback on / switch on    #         │
│                │           [M] == playback muted / switch off#         │
│                │                                                       │
│

>
> Regards
>
> Takashi Sakamoto

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26  8:19 ` Takashi Sakamoto
  2018-03-26 18:37   ` Kirill Marinushkin
@ 2018-03-26 18:42   ` Kirill Marinushkin
  2018-03-26 22:03     ` Takashi Sakamoto
  1 sibling, 1 reply; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 18:42 UTC (permalink / raw)
  To: Takashi Sakamoto, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel

On 03/26/18 10:19, Takashi Sakamoto wrote:
> Hi,
>
> On Mar 26 2018 14:11, 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.
>
> Could you show such control elements to help reviewers? For example, output from 'amixer' might be enough.
>

Hello Takashi Sakamoto,

I misread your message. You mean the amixer output, not the alsamixer.
Below I attach the output from amixer.

$ amixer -c2
Simple mixer control 'Clock Source 15 Validity',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Up Down',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Up Down Mode Select',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 1
  Mono: 1 [100%]


> Regards
>
> Takashi Sakamoto

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 18:32   ` Kirill Marinushkin
@ 2018-03-26 20:41     ` Andrew Chant
  2018-03-26 21:13       ` Kirill Marinushkin
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Chant @ 2018-03-26 20:41 UTC (permalink / raw)
  To: Kirill Marinushkin; +Cc: Takashi Iwai, alsa-devel

On Mon, Mar 26, 2018 at 11:32 AM, Kirill Marinushkin
<k.marinushkin@gmail.com> wrote:
> 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

A recent patch of mine changed clock source validity from a mixer to a
global control, so it should no longer show up in alsamixer.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 20:41     ` Andrew Chant
@ 2018-03-26 21:13       ` Kirill Marinushkin
  2018-03-26 21:44         ` Takashi Sakamoto
  0 siblings, 1 reply; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 21:13 UTC (permalink / raw)
  To: Andrew Chant; +Cc: Takashi Iwai, alsa-devel, Takashi Sakamoto

On 03/26/18 22:41, Andrew Chant wrote:
> On Mon, Mar 26, 2018 at 11:32 AM, Kirill Marinushkin
> <k.marinushkin@gmail.com> wrote:
>> 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
> A recent patch of mine changed clock source validity from a mixer to a
> global control, so it should no longer show up in alsamixer.

Hello Andrew,

Nice! One of the problems is solved. However, the second problem is still actual.
As you had a recent experience with alsamixer, what is your opinion?

Best Regards,
Kirill

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 21:13       ` Kirill Marinushkin
@ 2018-03-26 21:44         ` Takashi Sakamoto
  2018-03-26 21:53           ` Kirill Marinushkin
  0 siblings, 1 reply; 13+ messages in thread
From: Takashi Sakamoto @ 2018-03-26 21:44 UTC (permalink / raw)
  To: Kirill Marinushkin, Andrew Chant; +Cc: Takashi Iwai, alsa-devel

Hi,

On Mar 27 2018 06:13, Kirill Marinushkin wrote:
> On 03/26/18 22:41, Andrew Chant wrote:
>> On Mon, Mar 26, 2018 at 11:32 AM, Kirill Marinushkin
>> <k.marinushkin@gmail.com> wrote:
>>> 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
>> A recent patch of mine changed clock source validity from a mixer to a
>> global control, so it should no longer show up in alsamixer.
> 
> Hello Andrew,
> 
> Nice! One of the problems is solved. However, the second problem is still actual.
> As you had a recent experience with alsamixer, what is your opinion?

I think Kirill mentions a patch to change the type of 'iface' for such 
control elements to 'SNDRV_CTL_ELEM_IFACE_CARD' or 
'SNDRV_CTL_ELEM_IFACE_PCM', but I cannot find such patches in Iwai-san's 
tree[1]. I guess they're not merged yet.

In my humble opinion, if so, Kirill's patch is not better in a view of 
compatibility, because such smixer controls suddenly disappear via 
alsa-lib's mixer APIs when the patched kernel is released. In a point of 
backward compatibility, this kind of change should be avoided, as 
possible (of cource, depending on the cases).


[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=for-next


Regards

Takashi Sakamoto

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 21:44         ` Takashi Sakamoto
@ 2018-03-26 21:53           ` Kirill Marinushkin
  2018-03-27 19:12             ` Kirill Marinushkin
  0 siblings, 1 reply; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 21:53 UTC (permalink / raw)
  To: Takashi Sakamoto, Andrew Chant; +Cc: Takashi Iwai, alsa-devel

On 03/26/18 23:44, Takashi Sakamoto wrote:
> Hi,
>
> On Mar 27 2018 06:13, Kirill Marinushkin wrote:
>> On 03/26/18 22:41, Andrew Chant wrote:
>>> On Mon, Mar 26, 2018 at 11:32 AM, Kirill Marinushkin
>>> <k.marinushkin@gmail.com> wrote:
>>>> 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
>>> A recent patch of mine changed clock source validity from a mixer to a
>>> global control, so it should no longer show up in alsamixer.
>>
>> Hello Andrew,
>>
>> Nice! One of the problems is solved. However, the second problem is still actual.
>> As you had a recent experience with alsamixer, what is your opinion?
>
> I think Kirill mentions a patch to change the type of 'iface' for such control elements to 'SNDRV_CTL_ELEM_IFACE_CARD' or 'SNDRV_CTL_ELEM_IFACE_PCM', but I cannot find such patches in Iwai-san's tree[1]. I guess they're not merged yet.

Andrew mentioned the patch [2]

>
> In my humble opinion, if so, Kirill's patch is not better in a view of compatibility, because such smixer controls suddenly disappear via alsa-lib's mixer APIs when the patched kernel is released. In a point of backward compatibility, this kind of change should be avoided, as possible (of cource, depending on the cases).

The patch of Andrew and my RFC serve different purposes. They do not replace each other.
Patch of Andrew made the "clock valid" global.
My RFC is to add the string in the help, to clarify how to toggle the switches in alsamixer.

>
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=for-next
>

[2] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=568fa7e087ef98bc85b5aa31ea7c9252c1305c1f

>
> Regards
>
> Takashi Sakamoto

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 18:42   ` Kirill Marinushkin
@ 2018-03-26 22:03     ` Takashi Sakamoto
  2018-03-26 22:22       ` Kirill Marinushkin
  0 siblings, 1 reply; 13+ messages in thread
From: Takashi Sakamoto @ 2018-03-26 22:03 UTC (permalink / raw)
  To: Kirill Marinushkin, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel

Hi,

On Mar 27 2018 03:42, Kirill Marinushkin wrote:
> On 03/26/18 10:19, Takashi Sakamoto wrote:
>> Hi,
>>
>> On Mar 26 2018 14:11, 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.
>>
>> Could you show such control elements to help reviewers? For example, output from 'amixer' might be enough.
>>
> 
> Hello Takashi Sakamoto,
> 
> I misread your message. You mean the amixer output, not the alsamixer.
> Below I attach the output from amixer.
> 
> $ amixer -c2
> Simple mixer control 'Clock Source 15 Validity',0
>    Capabilities: pswitch pswitch-joined
>    Playback channels: Mono
>    Mono: Playback [on]
> Simple mixer control 'Up Down',0
>    Capabilities: pswitch pswitch-joined
>    Playback channels: Mono
>    Mono: Playback [on]
> Simple mixer control 'Up Down Mode Select',0
>    Capabilities: volume volume-joined
>    Playback channels: Mono
>    Capture channels: Mono
>    Limits: 0 - 1
>    Mono: 1 [100%]

Thanks. Then you can see corresponding control elements with the same 
name in output of 'amixer -c2 contents'. I guess:

$ amixer -c 2 contents | grep -B1 -A1 BOOLEAN
...
numid=?,iface=MIXER,name='Clock Source 15 Validity'
   ; type=BOOLEAN,access=rw------,values=1
   : values=on
numid=?,iface=MIXER,name='Up Down'
   ; type=BOOLEAN,access=rw------,values=1
   : values=on
...

A control element of 'Up Down Mode Select' is not the one of BOOLEAN 
type so it's not issued one in your patch.

For example, in my case (E-MU 0404 USB, kernel v4.13):

$ amixer -c 1
...
Simple mixer control 'AnalogueIn Soft Limit  ',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
   Mono: Playback [on]
Simple mixer control 'Clock rate Selector',0
   Capabilities: volume volume-joined
   Playback channels: Mono
   Capture channels: Mono
   Limits: 0 - 5
   Mono: 0 [0%]
Simple mixer control 'DigitalIn CLK source External',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
   Mono: Playback [off]
Simple mixer control 'DigitalOut format: SPDIF/AC3',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
   Mono: Playback [off]

These mixer elements are translated by alsa-lib's mixer API 
implementation from control elements maintained by ALSA control core. In 
my case:

$ amixer -c 1 contents | grep -B1 -A1 BOOLEAN
numid=4,iface=MIXER,name='PCM Playback Switch'
   ; type=BOOLEAN,access=rw------,values=1
   : values=on
--
numid=9,iface=MIXER,name='AnalogueIn Soft Limit  '
   ; type=BOOLEAN,access=rw------,values=1
   : values=on
--
numid=8,iface=MIXER,name='DigitalIn CLK source External'
   ; type=BOOLEAN,access=rw------,values=1
   : values=off
numid=6,iface=MIXER,name='DigitalOut format: SPDIF/AC3'
   ; type=BOOLEAN,access=rw------,values=1
   : values=off

Well, if your aim is just to focus on UI issue, it's enough to change 
alsamixer. On the other hand, developers tend to add any control element 
categorized to 'mixer' iface without enough care of its meaning. What 
you see is this kind of control elements, I guess. If you wish to 
suppress alsamixer to handle such non-traditional mixer controls (I mean 
they're not for gain/level/pan/mute etc), it's better to have extra 
care; e.g. backward compatibility.


Regards

Takashi Sakamoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 22:03     ` Takashi Sakamoto
@ 2018-03-26 22:22       ` Kirill Marinushkin
  0 siblings, 0 replies; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-26 22:22 UTC (permalink / raw)
  To: Takashi Sakamoto; +Cc: Takashi Iwai, alsa-devel

On 03/27/18 00:03, Takashi Sakamoto wrote:
> Hi,
>
> On Mar 27 2018 03:42, Kirill Marinushkin wrote:
>> On 03/26/18 10:19, Takashi Sakamoto wrote:
>>> Hi,
>>>
>>> On Mar 26 2018 14:11, 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.
>>>
>>> Could you show such control elements to help reviewers? For example, output from 'amixer' might be enough.
>>>
>>
>> Hello Takashi Sakamoto,
>>
>> I misread your message. You mean the amixer output, not the alsamixer.
>> Below I attach the output from amixer.
>>
>> $ amixer -c2
>> Simple mixer control 'Clock Source 15 Validity',0
>>    Capabilities: pswitch pswitch-joined
>>    Playback channels: Mono
>>    Mono: Playback [on]
>> Simple mixer control 'Up Down',0
>>    Capabilities: pswitch pswitch-joined
>>    Playback channels: Mono
>>    Mono: Playback [on]
>> Simple mixer control 'Up Down Mode Select',0
>>    Capabilities: volume volume-joined
>>    Playback channels: Mono
>>    Capture channels: Mono
>>    Limits: 0 - 1
>>    Mono: 1 [100%]
>
> Thanks. Then you can see corresponding control elements with the same name in output of 'amixer -c2 contents'. I guess:
>
> $ amixer -c 2 contents | grep -B1 -A1 BOOLEAN
> ...
> numid=?,iface=MIXER,name='Clock Source 15 Validity'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=on
> numid=?,iface=MIXER,name='Up Down'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=on
> ...
>
> A control element of 'Up Down Mode Select' is not the one of BOOLEAN type so it's not issued one in your patch.
>
> For example, in my case (E-MU 0404 USB, kernel v4.13):
>
> $ amixer -c 1
> ...
> Simple mixer control 'AnalogueIn Soft Limit  ',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [on]
> Simple mixer control 'Clock rate Selector',0
>   Capabilities: volume volume-joined
>   Playback channels: Mono
>   Capture channels: Mono
>   Limits: 0 - 5
>   Mono: 0 [0%]
> Simple mixer control 'DigitalIn CLK source External',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control 'DigitalOut format: SPDIF/AC3',0
>   Capabilities: pswitch pswitch-joined
>   Playback channels: Mono
>   Mono: Playback [off]
>
> These mixer elements are translated by alsa-lib's mixer API implementation from control elements maintained by ALSA control core. In my case:
>
> $ amixer -c 1 contents | grep -B1 -A1 BOOLEAN
> numid=4,iface=MIXER,name='PCM Playback Switch'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=on
> -- 
> numid=9,iface=MIXER,name='AnalogueIn Soft Limit  '
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=on
> -- 
> numid=8,iface=MIXER,name='DigitalIn CLK source External'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=off
> numid=6,iface=MIXER,name='DigitalOut format: SPDIF/AC3'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=off
>
> Well, if your aim is just to focus on UI issue, it's enough to change alsamixer. On the other hand, developers tend to add any control element categorized to 'mixer' iface without enough care of its meaning. What you see is this kind of control elements, I guess. If you wish to suppress alsamixer to handle such non-traditional mixer controls (I mean they're not for gain/level/pan/mute etc), it's better to have extra care; e.g. backward compatibility.
>

Hello Takashi Sakamoto,

Maybe there is a misunderstanding. I don't want to suppress non-traditional mixer controls.
As I mentioned in the subject, I want to Improve their description.
I don't want to change the existing behavior.

I think I will just create an patch, and it will make things clear.

Best Regards,
Kirill

>
> Regards
>
> Takashi Sakamoto

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches
  2018-03-26 21:53           ` Kirill Marinushkin
@ 2018-03-27 19:12             ` Kirill Marinushkin
  0 siblings, 0 replies; 13+ messages in thread
From: Kirill Marinushkin @ 2018-03-27 19:12 UTC (permalink / raw)
  To: Takashi Sakamoto, Andrew Chant, Takashi Iwai; +Cc: alsa-devel

Hello Takashi Sakamoto, Takashi Iwai, Andrew Chant,

Thank you for the discussion. I saw the drawbacks of my proposal, and it was nice to clarify them with you.

Also, during our discussion I found, that the "description of playback switches" has a different solution.
I will check my new idea. If it will work good enough, I will send a patch later.

>From my perspective, we can consider this RFC to be closed.

Thanks for your attention.

Best Regards,
Kirill

On 03/26/18 23:53, Kirill Marinushkin wrote:
> On 03/26/18 23:44, Takashi Sakamoto wrote:
>> Hi,
>>
>> On Mar 27 2018 06:13, Kirill Marinushkin wrote:
>>> On 03/26/18 22:41, Andrew Chant wrote:
>>>> On Mon, Mar 26, 2018 at 11:32 AM, Kirill Marinushkin
>>>> <k.marinushkin@gmail.com> wrote:
>>>>> 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
>>>> A recent patch of mine changed clock source validity from a mixer to a
>>>> global control, so it should no longer show up in alsamixer.
>>> Hello Andrew,
>>>
>>> Nice! One of the problems is solved. However, the second problem is still actual.
>>> As you had a recent experience with alsamixer, what is your opinion?
>> I think Kirill mentions a patch to change the type of 'iface' for such control elements to 'SNDRV_CTL_ELEM_IFACE_CARD' or 'SNDRV_CTL_ELEM_IFACE_PCM', but I cannot find such patches in Iwai-san's tree[1]. I guess they're not merged yet.
> Andrew mentioned the patch [2]
>
>> In my humble opinion, if so, Kirill's patch is not better in a view of compatibility, because such smixer controls suddenly disappear via alsa-lib's mixer APIs when the patched kernel is released. In a point of backward compatibility, this kind of change should be avoided, as possible (of cource, depending on the cases).
> The patch of Andrew and my RFC serve different purposes. They do not replace each other.
> Patch of Andrew made the "clock valid" global.
> My RFC is to add the string in the help, to clarify how to toggle the switches in alsamixer.
>
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=for-next
>>
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=568fa7e087ef98bc85b5aa31ea7c9252c1305c1f
>
>> Regards
>>
>> Takashi Sakamoto

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-03-27 19:11 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-26  5:11 [RFC, alsa-utils] RFC: alsamixer: Improve description of playback switches Kirill Marinushkin
2018-03-26  7:38 ` Takashi Iwai
2018-03-26 18:32   ` Kirill Marinushkin
2018-03-26 20:41     ` Andrew Chant
2018-03-26 21:13       ` Kirill Marinushkin
2018-03-26 21:44         ` Takashi Sakamoto
2018-03-26 21:53           ` Kirill Marinushkin
2018-03-27 19:12             ` Kirill Marinushkin
2018-03-26  8:19 ` Takashi Sakamoto
2018-03-26 18:37   ` Kirill Marinushkin
2018-03-26 18:42   ` Kirill Marinushkin
2018-03-26 22:03     ` Takashi Sakamoto
2018-03-26 22:22       ` Kirill Marinushkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).