From: Abramo Bagnara Date: Thu, 13 Apr 2000 11:45:39 +0000 (+0000) Subject: Avoided useless writev use X-Git-Tag: v1.0.3~1292 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=2c07d4f1ea86ae943d69420514d282a3382785c8;p=alsa-lib.git Avoided useless writev use --- diff --git a/src/pcm/plugin/block.c b/src/pcm/plugin/block.c index 6c0e609e..c0fea45b 100644 --- a/src/pcm/plugin/block.c +++ b/src/pcm/plugin/block.c @@ -57,9 +57,7 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin, if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0) return result; if (plugin->src_format.interleave) { - vec->iov_base = src_voices->addr; - vec->iov_len = result; - count = 1; + result = snd_pcm_write(plugin->handle, src_voices->addr, result); } else { count = plugin->src_format.voices; result /= count; @@ -67,8 +65,8 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin, vec[voice].iov_base = src_voices[voice].addr; vec[voice].iov_len = result; } + result = snd_pcm_writev(plugin->handle, vec, count); } - result = snd_pcm_writev(plugin->handle, vec, count); if (result < 0) return result; return snd_pcm_plugin_src_size_to_samples(plugin, result); @@ -78,9 +76,7 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin, if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0) return result; if (plugin->dst_format.interleave) { - vec->iov_base = dst_voices->addr; - vec->iov_len = result; - count = 1; + result = snd_pcm_read(plugin->handle, dst_voices->addr, result); } else { count = plugin->dst_format.voices; result /= count; @@ -88,8 +84,8 @@ static ssize_t block_transfer(snd_pcm_plugin_t *plugin, vec[voice].iov_base = dst_voices[voice].addr; vec[voice].iov_len = result; } + result = snd_pcm_readv(plugin->handle, vec, count); } - result = snd_pcm_readv(plugin->handle, vec, count); return snd_pcm_plugin_dst_size_to_samples(plugin, result); } else { return -EINVAL; diff --git a/src/pcm/plugin/stream.c b/src/pcm/plugin/stream.c index 963a6973..68c0db87 100644 --- a/src/pcm/plugin/stream.c +++ b/src/pcm/plugin/stream.c @@ -57,9 +57,7 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin, if ((result = snd_pcm_plugin_src_samples_to_size(plugin, samples)) < 0) return result; if (plugin->src_format.interleave) { - vec->iov_base = src_voices->addr; - vec->iov_len = result; - count = 1; + result = snd_pcm_write(plugin->handle, src_voices->addr, result); } else { count = plugin->src_format.voices; result /= count; @@ -67,8 +65,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin, vec[voice].iov_base = src_voices[voice].addr; vec[voice].iov_len = result; } + result = snd_pcm_writev(plugin->handle, vec, count); } - result = snd_pcm_writev(plugin->handle, vec, count); if (result < 0) return result; return snd_pcm_plugin_src_size_to_samples(plugin, result); @@ -78,9 +76,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin, if ((result = snd_pcm_plugin_dst_samples_to_size(plugin, samples)) < 0) return result; if (plugin->dst_format.interleave) { - vec->iov_base = dst_voices->addr; - vec->iov_len = result; - count = 1; + result = snd_pcm_read(plugin->handle, dst_voices->addr, result); + } else { count = plugin->dst_format.voices; result /= count; @@ -88,8 +85,8 @@ static ssize_t stream_transfer(snd_pcm_plugin_t *plugin, vec[voice].iov_base = dst_voices[voice].addr; vec[voice].iov_len = result; } + result = snd_pcm_readv(plugin->handle, vec, count); } - result = snd_pcm_readv(plugin->handle, vec, count); return snd_pcm_plugin_dst_size_to_samples(plugin, result); } else { return -EINVAL;