Subject: eap(4) and ess(4) and mixer volume values
To: None <tech-kern@netbsd.org>
From: Matthias Scheler <tron@zhadum.de>
List: tech-kern
Date: 08/15/2000 21:51:12
	Hello,

eap(4) and ess(4) both strip bits from the volume value passed to them
by audio(4). eap(4) e.g. strips 3 bits from the volume value:

tron@lyssa:~>mixerctl -w outputs.master=42,77
outputs.master: 224,224 -> 40,72

As a result of set applications the continously get and set the volume
value (e.g. "fxtv" or the "realplayer-7.0nb2" package) slowly reduce the
volume. In theory they should use the stripped value but because of some
rounding error - maybe caused by the OSS audio layer - they don't.

So far I know two ways to fix eap(4):

(a) Always set the 3 lower bits in the volume value returned by a get
    operation. That fixes the problem with "fxtv" completely for me.

(b) Store the original value of the last set operation and return it
    on a get operation. With this patch "fxtv" reduces the volume
    some amount until and stops at a lower volume value.

I wonder which of the above methods is correct - (b) looks more cleanly
while (a) works better - or if the problem must be fixed somewhere else.

	Kind regards

-- 
Matthias Scheler                            http://www.sighardstrasse.de/~tron/