diff options
author | jkh <jkh@FreeBSD.org> | 1995-09-15 22:04:03 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1995-09-15 22:04:03 +0000 |
commit | 00ca76f2e5f379e064149dc6f23ed8863c8650ee (patch) | |
tree | e5c3243a52e546b7abba156c505953d535ca6036 /sys/i386/isa/sound/gus_wave.c | |
parent | fff68644b8faafbab317d8690de623b685fd2af7 (diff) | |
download | FreeBSD-src-00ca76f2e5f379e064149dc6f23ed8863c8650ee.zip FreeBSD-src-00ca76f2e5f379e064149dc6f23ed8863c8650ee.tar.gz |
Make dsp0 work for playback.
Submitted by: Alain Kalker <alain@Wit401402.student.utwente.nl>
Diffstat (limited to 'sys/i386/isa/sound/gus_wave.c')
-rw-r--r-- | sys/i386/isa/sound/gus_wave.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/i386/isa/sound/gus_wave.c b/sys/i386/isa/sound/gus_wave.c index b131096..0f24596 100644 --- a/sys/i386/isa/sound/gus_wave.c +++ b/sys/i386/isa/sound/gus_wave.c @@ -2414,17 +2414,24 @@ gus_copy_from_user (int dev, char *localbuf, int localoffs, int i; len /= 4; - localoffs /= 4; + localoffs /= 2; out_left = (short *) &localbuf[localoffs]; out_right = out_left + (pcm_bsize / 2); for (i = 0; i < len; i++) { +#ifdef __FreeBSD__ + GET_SHORT_FROM_USER (*out_left++, userbuf, in_left); + in_left += 2; + GET_SHORT_FROM_USER (*out_right++, userbuf, in_right); + in_right += 2; +#else GET_SHORT_FROM_USER (*out_left++, (short *) userbuf, in_left); in_left += 2; GET_SHORT_FROM_USER (*out_right++, (short *) userbuf, in_right); in_right += 2; +#endif } } } |