Fixed channel_info callbacks of hooks, file and plug plugins (BTS #1034).
snd_pcm_generic_channel_info_slave() is added.
.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,
{
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)
{
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);
.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,
.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,