From: Takashi Iwai Date: Tue, 5 Apr 2005 15:48:01 +0000 (+0000) Subject: Fix channel_info callbacks of hooks, file and plug plugins X-Git-Tag: v1.0.9rc3~22 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=e5b91844bf550734d61c8c50e10944e27ac70530;p=alsa-lib.git Fix channel_info callbacks of hooks, file and plug plugins Fixed channel_info callbacks of hooks, file and plug plugins (BTS #1034). snd_pcm_generic_channel_info_slave() is added. --- diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c index 0947708e..3f876088 100644 --- a/src/pcm/pcm_file.c +++ b/src/pcm/pcm_file.c @@ -343,7 +343,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, + .channel_info = snd_pcm_generic_channel_info_slave, .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 9cf2505f..7c26f5b4 100644 --- a/src/pcm/pcm_generic.c +++ b/src/pcm/pcm_generic.c @@ -102,6 +102,12 @@ 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); +} int snd_pcm_generic_status(snd_pcm_t *pcm, snd_pcm_status_t * status) { diff --git a/src/pcm/pcm_generic.h b/src/pcm/pcm_generic.h index bb086c9d..2d2b052a 100644 --- a/src/pcm/pcm_generic.h +++ b/src/pcm/pcm_generic.h @@ -34,6 +34,7 @@ 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 e2eaaedb..608478b5 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, + .channel_info = snd_pcm_generic_channel_info_slave, .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 0c18e7e2..7ff34ff7 100644 --- a/src/pcm/pcm_plug.c +++ b/src/pcm/pcm_plug.c @@ -945,7 +945,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, + .channel_info = snd_pcm_generic_channel_info_slave, .dump = snd_pcm_plug_dump, .nonblock = snd_pcm_generic_nonblock, .async = snd_pcm_generic_async,