snd_pcm_sframes_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size) { assert(pcm); assert(size == 0 || buffer); if (CHECK_SANITY(! pcm->setup)) { SNDMSG("PCM not set up"); return -EIO; } if (pcm->access != SND_PCM_ACCESS_RW_INTERLEAVED) { SNDMSG("invalid access type %s", snd_pcm_access_name(pcm->access)); return -EINVAL; } return _snd_pcm_readi(pcm, buffer, size); }