From: Takashi Iwai Date: Thu, 19 May 2005 16:50:24 +0000 (+0000) Subject: Fix generic channel_info callbacks X-Git-Tag: v1.0.9rc4~11 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=18053076e22add4cf591424465a55643788e604a;p=alsa-lib.git Fix generic channel_info callbacks Fixed generic channel_info callbacks for many plugins. The allocation of unnecessary internal buffers is avoided. --- diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c index 38c6577a..a77ae409 100644 --- a/src/pcm/pcm_file.c +++ b/src/pcm/pcm_file.c @@ -344,7 +344,7 @@ static snd_pcm_ops_t snd_pcm_file_ops = { .hw_params = snd_pcm_file_hw_params, .hw_free = snd_pcm_file_hw_free, .sw_params = snd_pcm_generic_sw_params, - .channel_info = snd_pcm_generic_channel_info_slave, + .channel_info = snd_pcm_generic_channel_info, .dump = snd_pcm_file_dump, .nonblock = snd_pcm_generic_nonblock, .async = snd_pcm_generic_async, diff --git a/src/pcm/pcm_generic.c b/src/pcm/pcm_generic.c index c06f765d..10f9bea0 100644 --- a/src/pcm/pcm_generic.c +++ b/src/pcm/pcm_generic.c @@ -111,11 +111,6 @@ int snd_pcm_generic_prepare(snd_pcm_t *pcm) } int snd_pcm_generic_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t *info) -{ - return snd_pcm_channel_info_shm(pcm, info, -1); -} - -int snd_pcm_generic_channel_info_slave(snd_pcm_t *pcm, snd_pcm_channel_info_t *info) { snd_pcm_generic_t *generic = pcm->private_data; return snd_pcm_channel_info(generic->slave, info); diff --git a/src/pcm/pcm_generic.h b/src/pcm/pcm_generic.h index 19e20fd6..6acb6131 100644 --- a/src/pcm/pcm_generic.h +++ b/src/pcm/pcm_generic.h @@ -36,7 +36,6 @@ int snd_pcm_generic_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params); int snd_pcm_generic_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); int snd_pcm_generic_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); int snd_pcm_generic_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t * info); -int snd_pcm_generic_channel_info_slave(snd_pcm_t *pcm, snd_pcm_channel_info_t * info); int snd_pcm_generic_status(snd_pcm_t *pcm, snd_pcm_status_t * status); snd_pcm_state_t snd_pcm_generic_state(snd_pcm_t *pcm); int snd_pcm_generic_prepare(snd_pcm_t *pcm); diff --git a/src/pcm/pcm_hooks.c b/src/pcm/pcm_hooks.c index 8e6a83b1..340e8272 100644 --- a/src/pcm/pcm_hooks.c +++ b/src/pcm/pcm_hooks.c @@ -126,7 +126,7 @@ static snd_pcm_ops_t snd_pcm_hooks_ops = { .hw_params = snd_pcm_hooks_hw_params, .hw_free = snd_pcm_hooks_hw_free, .sw_params = snd_pcm_generic_sw_params, - .channel_info = snd_pcm_generic_channel_info_slave, + .channel_info = snd_pcm_generic_channel_info, .dump = snd_pcm_hooks_dump, .nonblock = snd_pcm_generic_nonblock, .async = snd_pcm_generic_async, diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c index 53ba4430..656196ab 100644 --- a/src/pcm/pcm_plug.c +++ b/src/pcm/pcm_plug.c @@ -949,7 +949,7 @@ static snd_pcm_ops_t snd_pcm_plug_ops = { .hw_params = snd_pcm_plug_hw_params, .hw_free = snd_pcm_plug_hw_free, .sw_params = snd_pcm_generic_sw_params, - .channel_info = snd_pcm_generic_channel_info_slave, + .channel_info = snd_pcm_generic_channel_info, .dump = snd_pcm_plug_dump, .nonblock = snd_pcm_generic_nonblock, .async = snd_pcm_generic_async, diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c index df43e3eb..80480bfc 100644 --- a/src/pcm/pcm_rate.c +++ b/src/pcm/pcm_rate.c @@ -620,6 +620,11 @@ static int snd_pcm_rate_hw_free(snd_pcm_t *pcm) return snd_pcm_hw_free(rate->gen.slave); } +int snd_pcm_rate_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t * info) +{ + return snd_pcm_channel_info_shm(pcm, info, -1); +} + static void recalc(snd_pcm_t *pcm, snd_pcm_uframes_t *val) { snd_pcm_rate_t *rate = pcm->private_data; @@ -1374,7 +1379,7 @@ static snd_pcm_ops_t snd_pcm_rate_ops = { .hw_params = snd_pcm_rate_hw_params, .hw_free = snd_pcm_rate_hw_free, .sw_params = snd_pcm_rate_sw_params, - .channel_info = snd_pcm_generic_channel_info, + .channel_info = snd_pcm_rate_channel_info, .dump = snd_pcm_rate_dump, .nonblock = snd_pcm_generic_nonblock, .async = snd_pcm_generic_async,