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)
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)
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)
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)
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);
+}
+
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;
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;
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;
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;