summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pcm/vchan.c
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2001-12-23 13:10:29 +0000
committercg <cg@FreeBSD.org>2001-12-23 13:10:29 +0000
commit00857bfbafe09eb20e712aa948be702875f2f358 (patch)
treeb1f437028404cc78e8f8aa1247d51bb6dd25f0a1 /sys/dev/sound/pcm/vchan.c
parent841620acfcbed42c07f784aad83444604eb3fdf1 (diff)
downloadFreeBSD-src-00857bfbafe09eb20e712aa948be702875f2f358.zip
FreeBSD-src-00857bfbafe09eb20e712aa948be702875f2f358.tar.gz
make mmapped vchans work
Diffstat (limited to 'sys/dev/sound/pcm/vchan.c')
-rw-r--r--sys/dev/sound/pcm/vchan.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c
index 46b3061..52b7a90 100644
--- a/sys/dev/sound/pcm/vchan.c
+++ b/sys/dev/sound/pcm/vchan.c
@@ -94,6 +94,8 @@ feed_vchan_s16(struct pcm_feeder *f, struct pcm_channel *c, u_int8_t *b, u_int32
SLIST_FOREACH(cce, &c->children, link) {
ch = cce->channel;
if (ch->flags & CHN_F_TRIGGERED) {
+ if (ch->flags & CHN_F_MAPPED)
+ sndbuf_acquire(ch->bufsoft, NULL, sndbuf_getfree(ch->bufsoft));
cnt = FEEDER_FEED(ch->feeder, ch, (u_int8_t *)tmp, count, ch->bufsoft);
vchan_mix_s16(dst, tmp, cnt / 2);
}
OpenPOWER on IntegriCloud