]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fixed mmap emulation
authorAbramo Bagnara <abramo@alsa-project.org>
Fri, 29 Sep 2000 13:50:42 +0000 (13:50 +0000)
committerAbramo Bagnara <abramo@alsa-project.org>
Fri, 29 Sep 2000 13:50:42 +0000 (13:50 +0000)
src/pcm/pcm.c
src/pcm/pcm_local.h
src/pcm/pcm_mmap.c

index b87ea036ab1f64f668c1b14711f6054d555a2642..00c35c9424386f314f74a30604a97f4b480d6dc1 100644 (file)
@@ -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)
index 7f49e42c47d4bd2d465ac7de8966d0d6fcc17c18..acb6ea5cd0ddc6914a42c77d7ffc679d5346e869 100644 (file)
@@ -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);
+}
+
index 4f05e93e6cfc9cdd5d41f7d7b0145fd3f8cc9a2d..3f016167c2db05a4cc17f1e6119b490b415eaf5d 100644 (file)
@@ -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;