{
snd_pcm_surround_t *surr = pcm->private_data;
if (surr->pcms == 1)
- return snd_pcm_writei(pcm, buffer, size);
- if (pcm->running_areas == NULL) {
- int err;
- if ((err = snd_pcm_mmap(pcm)) < 0)
- return err;
- }
+ return snd_pcm_writei(surr->pcm[0], buffer, size);
return snd_pcm_mmap_writei(pcm, buffer, size);
}
{
snd_pcm_surround_t *surr = pcm->private_data;
if (surr->pcms == 1)
- return snd_pcm_readi(pcm, buffer, size);
- /* TODO: convert two or three stereo streams to one interleaved stream */
- return -EIO;
+ return snd_pcm_readi(surr->pcm[0], buffer, size);
+ return snd_pcm_mmap_readi(pcm, buffer, size);
}
static snd_pcm_sframes_t snd_pcm_surround_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)