From c1d06bda17f1ef206b86bb41eebdcf43916ee64b Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 23 Jan 2008 12:26:22 +0100 Subject: [PATCH] Allow auto-config for dsnoop and dshare plugins --- src/pcm/pcm_dshare.c | 5 ++++- src/pcm/pcm_dsnoop.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c index b7afa3c7..8d403547 100644 --- a/src/pcm/pcm_dshare.c +++ b/src/pcm/pcm_dshare.c @@ -894,7 +894,7 @@ int _snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name, bsize = psize = -1; params.periods = 3; err = snd_pcm_slave_conf(root, dopen.slave, &sconf, 8, - SND_PCM_HW_PARAM_FORMAT, 0, ¶ms.format, + SND_PCM_HW_PARAM_FORMAT, SCONF_UNCHANGED, ¶ms.format, SND_PCM_HW_PARAM_RATE, 0, ¶ms.rate, SND_PCM_HW_PARAM_CHANNELS, 0, ¶ms.channels, SND_PCM_HW_PARAM_PERIOD_TIME, 0, ¶ms.period_time, @@ -909,6 +909,9 @@ int _snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name, if (psize == -1 && params.period_time == -1) params.period_time = 125000; /* 0.125 seconds */ + if (params.format == -2) + params.format = SND_PCM_FORMAT_UNKNOWN; + params.period_size = psize; params.buffer_size = bsize; diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c index 5eaca3f5..e9ea81bf 100644 --- a/src/pcm/pcm_dsnoop.c +++ b/src/pcm/pcm_dsnoop.c @@ -766,7 +766,7 @@ int _snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name, bsize = psize = -1; params.periods = 3; err = snd_pcm_slave_conf(root, dopen.slave, &sconf, 8, - SND_PCM_HW_PARAM_FORMAT, 0, ¶ms.format, + SND_PCM_HW_PARAM_FORMAT, SCONF_UNCHANGED, ¶ms.format, SND_PCM_HW_PARAM_RATE, 0, ¶ms.rate, SND_PCM_HW_PARAM_CHANNELS, 0, ¶ms.channels, SND_PCM_HW_PARAM_PERIOD_TIME, 0, ¶ms.period_time, @@ -781,6 +781,9 @@ int _snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name, if (psize == -1 && params.period_time == -1) params.period_time = 125000; /* 0.125 seconds */ + if (params.format == -2) + params.format = SND_PCM_FORMAT_UNKNOWN; + params.period_size = psize; params.buffer_size = bsize; -- 2.47.1