From: Jaroslav Kysela Date: Mon, 14 May 2001 15:21:18 +0000 (+0000) Subject: Reverted back the previous read/write_areas code X-Git-Tag: v1.0.3~835 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=00c749f080c143a46b964941be9d27907a299722;p=alsa-lib.git Reverted back the previous read/write_areas code --- diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c index 8ab00e28..c8d588d9 100644 --- a/src/pcm/pcm_mmap.c +++ b/src/pcm/pcm_mmap.c @@ -86,27 +86,19 @@ static snd_pcm_uframes_t snd_pcm_mmap_write_areas(snd_pcm_t *pcm, snd_pcm_uframes_t size) { snd_pcm_uframes_t xfer = size; - int res; + assert(snd_pcm_mmap_playback_avail(pcm) >= size); while (size > 0) { const snd_pcm_channel_area_t *pcm_areas; snd_pcm_uframes_t pcm_offset; snd_pcm_uframes_t frames = size; snd_pcm_mmap_begin(pcm, &pcm_areas, &pcm_offset, &frames); - if (frames > 0) - snd_pcm_areas_copy(pcm_areas, pcm_offset, - areas, offset, - pcm->channels, - frames, pcm->format); + snd_pcm_areas_copy(pcm_areas, pcm_offset, + areas, offset, + pcm->channels, + frames, pcm->format); snd_pcm_mmap_commit(pcm, pcm_offset, frames); - if (frames == 0) { - if (pcm->mode & SND_PCM_NONBLOCK) - return xfer; - if ((res = snd_pcm_wait(pcm, -1)) < 0) - return xfer > 0 ? xfer : res; - } else { - offset += frames; - size -= frames; - } + offset += frames; + size -= frames; } return xfer; } @@ -117,27 +109,19 @@ static snd_pcm_uframes_t snd_pcm_mmap_read_areas(snd_pcm_t *pcm, snd_pcm_uframes_t size) { snd_pcm_uframes_t xfer = size; - int res; + assert(snd_pcm_mmap_capture_avail(pcm) >= size); while (size > 0) { const snd_pcm_channel_area_t *pcm_areas; snd_pcm_uframes_t pcm_offset; snd_pcm_uframes_t frames = size; snd_pcm_mmap_begin(pcm, &pcm_areas, &pcm_offset, &frames); - if (frames > 0) - snd_pcm_areas_copy(areas, offset, - pcm_areas, pcm_offset, - pcm->channels, - frames, pcm->format); + snd_pcm_areas_copy(areas, offset, + pcm_areas, pcm_offset, + pcm->channels, + frames, pcm->format); snd_pcm_mmap_commit(pcm, pcm_offset, frames); - if (frames == 0) { - if (pcm->mode & SND_PCM_NONBLOCK) - return xfer; - if ((res = snd_pcm_wait(pcm, -1)) < 0) - return xfer > 0 ? xfer : res; - } else { - offset += frames; - size -= frames; - } + offset += frames; + size -= frames; } return xfer; }