From e5b91844bf550734d61c8c50e10944e27ac70530 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 5 Apr 2005 15:48:01 +0000 Subject: [PATCH] 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. --- src/pcm/pcm_file.c | 2 +- src/pcm/pcm_generic.c | 6 ++++++ src/pcm/pcm_generic.h | 1 + src/pcm/pcm_hooks.c | 2 +- src/pcm/pcm_plug.c | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) 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, -- 2.47.1