snd_pcm_uframes_t frames,
const snd_pcm_format_t format);
+/**
+ * \brief get the address of the given PCM channel area
+ * \param area PCM channel area
+ * \param offset Offset in frames
+ *
+ * Returns the pointer corresponding to the given offset on the channel area.
+ */
+static inline void *snd_pcm_channel_area_addr(const snd_pcm_channel_area_t *area, snd_pcm_uframes_t offset)
+{
+ return (char *)area->addr + (area->first + area->step * offset) / 8;
+}
+
+/**
+ * \brief get the step size of the given PCM channel area in bytes
+ * \param area PCM channel area
+ *
+ * Returns the step size in bytes from the given channel area.
+ */
+static inline unsigned int snd_pcm_channel_area_step(const snd_pcm_channel_area_t *area)
+{
+ return area->step / 8;
+}
+
/** \} */
/**
return snd_pcm_mmap_capture_delay(pcm);
}
-static inline void *snd_pcm_channel_area_addr(const snd_pcm_channel_area_t *area, snd_pcm_uframes_t offset)
-{
- unsigned int bitofs = area->first + area->step * offset;
- assert(bitofs % 8 == 0);
- return (char *) area->addr + bitofs / 8;
-}
-
-static inline unsigned int snd_pcm_channel_area_step(const snd_pcm_channel_area_t *area)
-{
- assert(area->step % 8 == 0);
- return area->step / 8;
-}
-
static inline snd_pcm_sframes_t _snd_pcm_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size)
{
/* lock handled in the callback */