diff options
| author | riz <riz@NetBSD.org> | 2011-02-28 16:56:39 +0000 |
|---|---|---|
| committer | riz <riz@NetBSD.org> | 2011-02-28 16:56:39 +0000 |
| commit | 312e8da08d3f251a9b10c70b1b09baebfcd04d82 (patch) | |
| tree | d69cdc74e53e162a24e4fb8323508c0313c8922f /sys/dev | |
| parent | d66470fa8a16a7101193cc81c358557a8b7fffb5 (diff) | |
Use le16enc()/be16enc() to encode LE/BE values back into the audio stream.
This fixes the tests/dev/audio test on my macppc box.
While I'm here, use le16dec()/be16dec() directly instead of rewriting them.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pad/padvol.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/dev/pad/padvol.c b/sys/dev/pad/padvol.c index 975a32fe88b..21d23923901 100644 --- a/sys/dev/pad/padvol.c +++ b/sys/dev/pad/padvol.c @@ -1,4 +1,4 @@ -/* $NetBSD: padvol.c,v 1.4 2009/09/07 18:23:06 jmcneill Exp $ */ +/* $NetBSD: padvol.c,v 1.5 2011/02/28 16:56:39 riz Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: padvol.c,v 1.4 2009/09/07 18:23:06 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: padvol.c,v 1.5 2011/02/28 16:56:39 riz Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -35,6 +35,7 @@ __KERNEL_RCSID(0, "$NetBSD: padvol.c,v 1.4 2009/09/07 18:23:06 jmcneill Exp $"); #include <sys/condvar.h> #include <sys/kmem.h> #include <sys/device.h> +#include <sys/endian.h> #include <dev/audiovar.h> #include <dev/auconv.h> @@ -88,9 +89,9 @@ PAD_DEFINE_FILTER(pad_vol_slinear16_le) m = (dst->end - dst->start) & ~1; m = min(m, max_used); FILTER_LOOP_PROLOGUE(this->src, 2, dst, 2, m) { - j = (s[1] << 8 | s[0]); + j = le16dec(s); wp = (int16_t *)d; - *wp = ((j * sc->sc_swvol) / 255); + le16enc(wp, (j * sc->sc_swvol) / 255); } FILTER_LOOP_EPILOGUE(this->src, dst); return 0; @@ -114,9 +115,9 @@ PAD_DEFINE_FILTER(pad_vol_slinear16_be) m = (dst->end - dst->start) & ~1; m = min(m, max_used); FILTER_LOOP_PROLOGUE(this->src, 2, dst, 2, m) { - j = (s[0] << 8 | s[1]); + j = be16dec(s); wp = (int16_t *)d; - *wp = ((j * sc->sc_swvol) / 255); + be16enc(wp, (j * sc->sc_swvol) / 255); } FILTER_LOOP_EPILOGUE(this->src, dst); return 0; |
