Subject: Re: 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/16/2000 06:44:33
In article <3999C763.B2F089DC@augustsson.net>,
	Lennart Augustsson <lennart@augustsson.net> writes:
 What happens if you do
>     mixerctl -w outputs.master=40,72

That works fine:

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

> When doing OSS emulation there is addition trouble, since OSS uses a range
> of 0-99 for its controls (as opposed to NetBSD's 0-255). So now you can
> lose bits in that conversion too, and that might be bad.

Yes, and that happens:

i		TO_OSSVOL(i)	FROM_OSSVOL(TO_OSSVOL(i))
000		000		000
001		000		000
002		000		000(*)
003		001		002
004		001		002
005		001		002(*)
006		002		005
007		002		005(*)
008		003		007
009		003		007
010		003		007
011		004		010
[...]

We should improve the conversion formula so that the values marked
with (*) return the value of the next conversion.

> Maybe the right thing to do is to let the OSS emulation remember what
> values you have set and return them.

How do you want to do that? The OSS library would have to track the used
audio devices.

What I still don't understand is how a bug in our OSS library can affect
the "realplayer" package. I suppose it was really a bug in "7.0nb2"
which got fixed in "7.0nb3".

	Kind regards

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