NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xsrc/52341: xset doesn't properly adjust bell volume



>Number:         52341
>Category:       xsrc
>Synopsis:       xset doesn't properly adjust bell volume
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    xsrc-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 26 06:45:00 +0000 2017
>Originator:     Paul Goyette
>Release:        NetBSD 8.99.1
>Organization:
+------------------+--------------------------+----------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
+------------------+--------------------------+----------------------------+
>Environment:
	
	
System: NetBSD speedy.whooppee.com 8.99.1 NetBSD 8.99.1 (SPEEDY 2017-06-18 08:18:56 UTC) #0: Sun Jun 18 09:27:50 UTC 2017 paul%speedy.whooppee.com@localhost:/build/netbsd-local/obj/amd64/sys/arch/amd64/compile/SPEEDY amd64
Architecture: x86_64
Machine: amd64
>Description:
According to the documentation, the command "xset b 40" should set the
base volume of the bell to 40% of maximum.  However, it does not work as
indicated.  Instead of affecting the bell volume, the command actually
alters the _duration_ of the bell tone.

With some debug printf()s in the spkr_audio_tone() routine, we see that

	                                         Pitch  Dur.  Vol.
	wsconsctl -w bell.volume=50   -->        xxx    xxxx   50%
	xset b            sets default values of 400Hz, 20ms,  50%
	xset b 40         sets new values of     400Hz, 16ms,  50%
	xset b 80         sets new values of     400Hz, 32ms,  50%
	wsconsctl -w bell.volume=100  -->        xxx    xxxx  100%
	xset b            sets default values of 400Hz, 20ms, 100%

Note that none of the xset commands (not even "xset b" which should set
everything to defaults) affects the volume of the bell.  In all cases,
the volume argument passed to spkr_audio_tone() is the value set by the
wsconsctl(8) command.

Note that previously this didn't matter much, as the only hardware that
generated bell tones (at least for x86 PCs) was the tinny little hardware
speaker which doesn't have any volume control.  This only becomes an
issue now because we have the "synthesized" speaker (spkr@audio) and the
associated wsbell(4) devices which _can_ control volume.
	
>How-To-Repeat:
See above
	
>Fix:
Unknown - I couldn't find my way around the xsrc stuff.
	

>Unformatted:
 	
 	


Home | Main Index | Thread Index | Old Index