diff options
author | 2010-07-15 03:43:11 +0000 | |
---|---|---|
committer | 2010-07-15 03:43:11 +0000 | |
commit | 1657931791df6f774accbb48ba9d42eac31d77d9 (patch) | |
tree | f169ff6fea6eb5c7ec3fbe461df83e1dd60f66e3 /sys/dev/isa/ess.c | |
parent | limit the pools from 14 bits down. We cannot use PAGE_SIZE because it (diff) | |
download | wireguard-openbsd-1657931791df6f774accbb48ba9d42eac31d77d9.tar.xz wireguard-openbsd-1657931791df6f774accbb48ba9d42eac31d77d9.zip |
add two new members to structs audio_encoding and audio_prinfo.
for both structs, the new members are 'bps' and 'msb', which
describe the number of bytes per sample and data alignment in the
sample, respectively. drivers must properly set these fields in
the 'query_encoding', 'set_parameters' and 'get_default_params'
hardware interface methods.
discussed with ratchov, deraadt
Diffstat (limited to 'sys/dev/isa/ess.c')
-rw-r--r-- | sys/dev/isa/ess.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/sys/dev/isa/ess.c b/sys/dev/isa/ess.c index fd54aa49b50..c285986ee03 100644 --- a/sys/dev/isa/ess.c +++ b/sys/dev/isa/ess.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ess.c,v 1.15 2010/06/30 20:39:02 blambert Exp $ */ +/* $OpenBSD: ess.c,v 1.16 2010/07/15 03:43:11 jakemsr Exp $ */ /* $NetBSD: ess.c,v 1.44.4.1 1999/06/21 01:18:00 thorpej Exp $ */ /* @@ -1141,52 +1141,55 @@ ess_query_encoding(addr, fp) fp->encoding = AUDIO_ENCODING_ULINEAR; fp->precision = 8; fp->flags = 0; - return (0); + break; case 1: strlcpy(fp->name, AudioEmulaw, sizeof fp->name); fp->encoding = AUDIO_ENCODING_ULAW; fp->precision = 8; fp->flags = AUDIO_ENCODINGFLAG_EMULATED; - return (0); + break; case 2: strlcpy(fp->name, AudioEalaw, sizeof fp->name); fp->encoding = AUDIO_ENCODING_ALAW; fp->precision = 8; fp->flags = AUDIO_ENCODINGFLAG_EMULATED; - return (0); + break; case 3: strlcpy(fp->name, AudioEslinear, sizeof fp->name); fp->encoding = AUDIO_ENCODING_SLINEAR; fp->precision = 8; fp->flags = 0; - return (0); + break; case 4: strlcpy(fp->name, AudioEslinear_le, sizeof fp->name); fp->encoding = AUDIO_ENCODING_SLINEAR_LE; fp->precision = 16; fp->flags = 0; - return (0); + break; case 5: strlcpy(fp->name, AudioEulinear_le, sizeof fp->name); fp->encoding = AUDIO_ENCODING_ULINEAR_LE; fp->precision = 16; fp->flags = 0; - return (0); + break; case 6: strlcpy(fp->name, AudioEslinear_be, sizeof fp->name); fp->encoding = AUDIO_ENCODING_SLINEAR_BE; fp->precision = 16; fp->flags = AUDIO_ENCODINGFLAG_EMULATED; - return (0); + break; case 7: strlcpy(fp->name, AudioEulinear_be, sizeof fp->name); fp->encoding = AUDIO_ENCODING_ULINEAR_BE; fp->precision = 16; fp->flags = AUDIO_ENCODINGFLAG_EMULATED; - return (0); + break; default: return EINVAL; } + fp->bps = AUDIO_BPS(fp->precision); + fp->msb = 1; + return (0); } @@ -1266,6 +1269,8 @@ ess_set_params(addr, setmode, usemode, play, rec) default: return (EINVAL); } + p->bps = AUDIO_BPS(p->precision); + p->msb = 1; } if (usemode == AUMODE_RECORD) |