From 7088f1923386f8b055cc62c5291eab6779918735 Mon Sep 17 00:00:00 2001 From: Abramo Bagnara Date: Fri, 29 Sep 2000 13:50:42 +0000 Subject: [PATCH] Fixed mmap emulation --- src/pcm/pcm.c | 8 ++++---- src/pcm/pcm_local.h | 20 ++++++++++++++++++++ src/pcm/pcm_mmap.c | 8 ++++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index b87ea036..00c35c94 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -219,7 +219,7 @@ ssize_t snd_pcm_writei(snd_pcm_t *pcm, const void *buffer, size_t size) assert(pcm->valid_setup); assert(pcm->setup.xfer_mode == SND_PCM_XFER_INTERLEAVED); assert(!pcm->mmap_data); - return pcm->fast_ops->writei(pcm->fast_op_arg, buffer, size); + return _snd_pcm_writei(pcm, buffer, size); } ssize_t snd_pcm_writen(snd_pcm_t *pcm, void **bufs, size_t size) @@ -229,7 +229,7 @@ ssize_t snd_pcm_writen(snd_pcm_t *pcm, void **bufs, size_t size) assert(pcm->valid_setup); assert(pcm->setup.xfer_mode == SND_PCM_XFER_NONINTERLEAVED); assert(!pcm->mmap_data); - return pcm->fast_ops->writen(pcm->fast_op_arg, bufs, size); + return _snd_pcm_writen(pcm, bufs, size); } ssize_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, size_t size) @@ -239,7 +239,7 @@ ssize_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, size_t size) assert(pcm->valid_setup); assert(pcm->setup.xfer_mode == SND_PCM_XFER_INTERLEAVED); assert(!pcm->mmap_data); - return pcm->fast_ops->readi(pcm->fast_op_arg, buffer, size); + return _snd_pcm_readi(pcm, buffer, size); } ssize_t snd_pcm_readn(snd_pcm_t *pcm, void **bufs, size_t size) @@ -249,7 +249,7 @@ ssize_t snd_pcm_readn(snd_pcm_t *pcm, void **bufs, size_t size) assert(pcm->valid_setup); assert(pcm->setup.xfer_mode == SND_PCM_XFER_NONINTERLEAVED); assert(!pcm->mmap_data); - return pcm->fast_ops->readn(pcm->fast_op_arg, bufs, size); + return _snd_pcm_readn(pcm, bufs, size); } ssize_t snd_pcm_writev(snd_pcm_t *pcm, const struct iovec *vector, int count) diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h index 7f49e42c..acb6ea5c 100644 --- a/src/pcm/pcm_local.h +++ b/src/pcm/pcm_local.h @@ -149,3 +149,23 @@ static inline size_t snd_pcm_channel_area_step(snd_pcm_channel_area_t *area) return area->step / 8; } +static inline ssize_t _snd_pcm_writei(snd_pcm_t *pcm, const void *buffer, size_t size) +{ + return pcm->fast_ops->writei(pcm->fast_op_arg, buffer, size); +} + +static inline ssize_t _snd_pcm_writen(snd_pcm_t *pcm, void **bufs, size_t size) +{ + return pcm->fast_ops->writen(pcm->fast_op_arg, bufs, size); +} + +static inline ssize_t _snd_pcm_readi(snd_pcm_t *pcm, void *buffer, size_t size) +{ + return pcm->fast_ops->readi(pcm->fast_op_arg, buffer, size); +} + +static inline ssize_t _snd_pcm_readn(snd_pcm_t *pcm, void **bufs, size_t size) +{ + return pcm->fast_ops->readn(pcm->fast_op_arg, bufs, size); +} + diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c index 4f05e93e..3f016167 100644 --- a/src/pcm/pcm_mmap.c +++ b/src/pcm/pcm_mmap.c @@ -436,7 +436,7 @@ ssize_t snd_pcm_write_mmap(snd_pcm_t *pcm, size_t size) snd_pcm_channel_area_t *a = pcm->mmap_areas; char *buf = snd_pcm_channel_area_addr(a, offset); assert(pcm->setup.mmap_shape == SND_PCM_MMAP_INTERLEAVED); - err = snd_pcm_writei(pcm, buf, frames); + err = _snd_pcm_writei(pcm, buf, size); } else { size_t channels = pcm->setup.format.channels; unsigned int c; @@ -446,7 +446,7 @@ ssize_t snd_pcm_write_mmap(snd_pcm_t *pcm, size_t size) snd_pcm_channel_area_t *a = &pcm->mmap_areas[c]; bufs[c] = snd_pcm_channel_area_addr(a, offset); } - err = snd_pcm_writen(pcm, bufs, frames); + err = _snd_pcm_writen(pcm, bufs, size); } if (err < 0) break; @@ -472,7 +472,7 @@ ssize_t snd_pcm_read_mmap(snd_pcm_t *pcm, size_t size) snd_pcm_channel_area_t *a = pcm->mmap_areas; char *buf = snd_pcm_channel_area_addr(a, offset); assert(pcm->setup.mmap_shape == SND_PCM_MMAP_INTERLEAVED); - err = snd_pcm_readi(pcm, buf, frames); + err = _snd_pcm_readi(pcm, buf, size); } else { size_t channels = pcm->setup.format.channels; unsigned int c; @@ -482,7 +482,7 @@ ssize_t snd_pcm_read_mmap(snd_pcm_t *pcm, size_t size) snd_pcm_channel_area_t *a = &pcm->mmap_areas[c]; bufs[c] = snd_pcm_channel_area_addr(a, offset); } - err = snd_pcm_readn(pcm, bufs, frames); + err = _snd_pcm_readn(pcm->fast_op_arg, bufs, size); } if (err < 0) break; -- 2.47.1