Commit Graph

27 Commits

Author SHA1 Message Date
wiz
a71e78c796 Bump date for previous, and break lines
so that macros only affect what they should.
2004-01-31 21:33:08 +00:00
fredb
7f674884ad Fix a couple of long-standing bugs in the volume control(s) part of the
audio device interface:

1) When attempting to match the appropriate mixer control, we weren't
checking the class label, but only the second level label, so for
devices that had both an "inputs.cd" and a "record.cd", for example,
we could never do the right thing except by chance. For this reason,
evidently, all the record masters were labeled (by the underlying
drivers) either "record.record" or "record.volume", to distinguish
from "outputs.master". We'll now accept "record.master", and document
that as the the new preferred way.

2) More importantly, the model was deficient. Selecting a port on many
chips completely disables most of the level controls, which doesn't play
nice with other applications which are trying to use the interface. Now,
selecting a port simply sets which mixer input control shall be changed,
setting state in the audio layer. In other words, the "mixerout" port
is really selected all the time, enabling the final stage mixer, and
setting "gain" sets the level of the appropriate input. It should be
possible for separate applications to each control the mic, dac, and cd
inputs at the same time using this interface, simply by reiterating their
port selections with each change, but applications that don't bother to
do that aren't any worse off than they were before.

The user is expected to set the master output with another application,
dedicated to that task. Though it is now meaningful to select "no port"
with the audio device interface, to manipulate the master output, there's
no particular reason for an audio device consumer to do that. (I added
the capability in order to restore the initial state of the audio device,
for testing purposes. It might also be useful to users of broken binary-
only applications.)

Observe that the mixer device interface (and so, "mixerctl") still
retains all capabilities, including the ability to set the actual input
port on the chip, overriding the level controls. No change is being made
to the mixer device interface. The mixer device simply presents all the
controls on the chip, with no attempt at abstraction, so there are no
bugs there.

The upshot is, that applications that have been trying to use the audio
device interface to change the volume, such as mplayer, now "just work".

I've tested these changes extensively with "eso" and "eap" since first
proposing them on tech-kern last January, and somewhat with "esm" and a
few others. This closes both PR kern/10221, and PR kern/17159.
2004-01-31 00:07:56 +00:00
kleink
2320944ad7 Bring audio(9) back in sync with audio_if.h; from Murray Armfield in
PR misc/21432.
2003-05-05 20:52:52 +00:00
wiz
68caa698b2 Respect the law: Use A-law and mu-law as spellings as far as easily possible.
Inspired by Igor Sobrado in PR 19680.
2003-04-06 18:20:07 +00:00
wiz
770eef2122 New sentence, new line. 2002-10-14 13:43:14 +00:00
isaki
ae114ad44f add factor_denom. 2002-06-04 14:09:34 +00:00
kent
abc0e4d655 Fix a typo 2002-03-13 03:46:55 +00:00
kent
d1b86e1e52 Update struct audio_params and description of set_params().
Feel free to correct my poor English ;-)
2002-03-11 15:09:51 +00:00
augustss
3d2be4cf9b Fix pasto in type of dev_ioctl method. 2001-10-03 20:48:41 +00:00
augustss
8972205779 Document a new method, dev_ioctl, for passing ioctl() down to the hardware
driver.
2001-10-02 23:58:03 +00:00
wiz
6539335131 Fix typos, punctuation and whitespace. 2001-06-21 11:59:00 +00:00
ad
bcd6512016 Fix a couple of oversights. 2000-07-24 15:00:07 +00:00
kleink
31e08c3362 Missed in previous: remove midi goo from argument list as well. 2000-02-17 21:25:47 +00:00
kleink
018c206251 * Nuke obsoleted midi interface from audio_attach_mi().
* Document trgger_{in,out}put().
Fixes PR kern/9341.
2000-02-11 22:56:15 +00:00
kleink
f5326607ab allocm, freem: one step closer to reality. 1999-06-16 14:19:27 +00:00
kleink
40a25851dc Sync round_buffersize() with reality. 1999-06-12 20:10:55 +00:00
augustss
456ec1a005 Make the copyrights conform to the standard. 1999-04-13 20:25:28 +00:00
mycroft
ee89805a27 Remove blank lines. 1999-03-24 06:46:30 +00:00
garbled
e4c16bfb11 More .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-16 00:40:46 +00:00
ross
7c7c171d13 Add David Brownlee's new intro pages, with editing. (PR #534[23])
Also, while here, expand apparently incorrectly .Dd month abbreviations.
(I thought about doing this in tmac/doc-common...heh...that would have
allowed a possible reverse map back to abbreviations.)
1998-04-22 07:14:30 +00:00
augustss
d389f63196 Layout changes. 1997-10-19 19:45:46 +00:00
augustss
7de69494f6 Small clarification. 1997-10-19 19:14:34 +00:00
augustss
1e12628b98 Update for SunOS compatibility. 1997-10-19 07:40:26 +00:00
augustss
e0bd22c96a Fix pastos. 1997-10-13 21:30:57 +00:00
augustss
bf9ad9a53c Fix typos. 1997-10-11 15:33:26 +00:00
jtc
516fb1f380 Fix tipo inherited from old version of TNF copyright form.
s/REGENTS/FOUNDATION/.
1997-10-08 21:59:52 +00:00
augustss
bf1f51a5d1 Initial version of the documentation of the interface between the
low and high level audio drivers, the audio_hw_if struct.
1997-08-24 22:46:41 +00:00