[alsa-devel] alsactl adds volume controls?
Colin Guthrie
gmane at colin.guthr.ie
Fri Oct 8 16:05:39 CEST 2010
'Twas brillig, and Clemens Ladisch at 08/10/10 14:41 did gyre and gimble:
> Colin Guthrie wrote:
>> 'Twas brillig, and Clemens Ladisch at 07/10/10 09:05 did gyre and gimble:
>>> Please try this patch.
>>>
>>> +++ b/sound/pci/hda/patch_sigmatel.c
>>> ...
>>
>> Seemed to do something. Now, rather than printing -46.5dB then the
>> Master slider is down at 0, it prints "mute".
>>
>> Is this the extent of the fix? i.e. to correctly report that the bottom
>> value is muted?
>
> Yes.
Cool.
>> If so, then is there a way to tell this via an API so that I can tell PA
>> to not control the slider down to it's 0 value in order to avoid the
>> auto mute?
>
> Alsamixer uses the standard dB information that should also be used by PA.
I think something in there is busted, but it's likely at the PA end.
This is the debug from a volume that is ultimately less than the min dB
(i.e. ~50dB or there about - certainly more attenuation than -46.5dB) (I
should really make it so it prints the dB volume here too)
D: alsa-sink.c: Requested volume: 0: 13% 1: 13%
D: alsa-sink.c: Got hardware volume: 0: 0% 1: 0%
D: alsa-sink.c: Calculated software volume: 0: 0% 1: 0%
(accurate-enough=no)
And here is something for ~40dB:
D: alsa-sink.c: Requested volume: 0: 19% 1: 19%
D: alsa-sink.c: Got hardware volume: 0: 19% 1: 19%
D: alsa-sink.c: Calculated software volume: 0: 99% 1: 99%
(accurate-enough=yes)
In this case the accurate-enough checks succeed vs before when they fail.
D: alsa-mixer.c: Activating path analog-output
D: alsa-mixer.c: Path analog-output (Analog Output), direction=1,
priority=99, probed=yes, supported=yes, has_mute=yes, has_volume=yes,
has_dB=yes, min_volume=0, max_volume=31, min_dB=-97.5, max_dB=0
D: alsa-mixer.c: Element Master, direction=1, switch=1, volume=1,
enumeration=0, required=0, required_absent=0, mask=0x3600000000f66,
n_channels=2, override_map=yes
D: alsa-mixer.c: Element PCM, direction=1, switch=0, volume=1,
enumeration=0, required=0, required_absent=0, mask=0x3600000000f66,
n_channels=2, override_map=yes
I: alsa-sink.c: Hardware volume ranges from -97.50 dB to 0.00 dB.
I: alsa-sink.c: No particular base volume set, fixing to 0 dB
I: alsa-sink.c: Using hardware volume control. Hardware dB scale supported.
I: alsa-sink.c: Using hardware mute control.
D: alsa-util.c: snd_pcm_dump():
D: alsa-util.c: Soft volume PCM
D: alsa-util.c: Control: PCM Playback Volume
D: alsa-util.c: min_dB: -51
D: alsa-util.c: max_dB: 0
D: alsa-util.c: resolution: 256
D: alsa-util.c: Its setup is:
D: alsa-util.c: stream : PLAYBACK
D: alsa-util.c: access : MMAP_INTERLEAVED
D: alsa-util.c: format : S16_LE
D: alsa-util.c: subformat : STD
D: alsa-util.c: channels : 2
D: alsa-util.c: rate : 44100
D: alsa-util.c: exact rate : 44100 (44100/1)
D: alsa-util.c: msbits : 16
D: alsa-util.c: buffer_size : 16384
D: alsa-util.c: period_size : 8192
D: alsa-util.c: period_time : 185759
D: alsa-util.c: tstamp_mode : ENABLE
D: alsa-util.c: period_step : 1
D: alsa-util.c: avail_min : 15502
D: alsa-util.c: period_event : 0
D: alsa-util.c: start_threshold : -1
D: alsa-util.c: stop_threshold : 4611686018427387904
D: alsa-util.c: silence_threshold: 0
D: alsa-util.c: silence_size : 0
D: alsa-util.c: boundary : 4611686018427387904
D: alsa-util.c: Slave: Hardware PCM card 1 'HDA Intel' device 0 subdevice 0
D: alsa-util.c: Its setup is:
D: alsa-util.c: stream : PLAYBACK
D: alsa-util.c: access : MMAP_INTERLEAVED
D: alsa-util.c: format : S16_LE
D: alsa-util.c: subformat : STD
D: alsa-util.c: channels : 2
D: alsa-util.c: rate : 44100
D: alsa-util.c: exact rate : 44100 (44100/1)
D: alsa-util.c: msbits : 16
D: alsa-util.c: buffer_size : 16384
D: alsa-util.c: period_size : 8192
D: alsa-util.c: period_time : 185759
D: alsa-util.c: tstamp_mode : ENABLE
D: alsa-util.c: period_step : 1
D: alsa-util.c: avail_min : 15502
D: alsa-util.c: period_event : 0
D: alsa-util.c: start_threshold : -1
D: alsa-util.c: stop_threshold : 4611686018427387904
D: alsa-util.c: silence_threshold: 0
D: alsa-util.c: silence_size : 0
D: alsa-util.c: boundary : 4611686018427387904
D: alsa-util.c: appl_ptr : 0
D: alsa-util.c: hw_ptr : 0
I'll try and work out why PA still insists on setting Master to 0 aka
-99999.99dB :D
Many thanks for the patch.
Col
--
Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/
Day Job:
Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
Mageia Contributor [http://www.mageia.org/]
PulseAudio Hacker [http://www.pulseaudio.org/]
Trac Hacker [http://trac.edgewall.org/]
More information about the Alsa-devel
mailing list