summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-01-23 12:26:22 +0100
committerTakashi Iwai <tiwai@suse.de>2008-01-23 12:26:22 +0100
commitc1d06bda17f1ef206b86bb41eebdcf43916ee64b (patch)
tree6d140bdda53b08bb07721ed0da241e3961ee6881
parentd902c124b485fed87abb2aba291864606e75cd68 (diff)
downloadalsa-lib-c1d06bda17f1ef206b86bb41eebdcf43916ee64b.tar.gz
Allow auto-config for dsnoop and dshare plugins
-rw-r--r--src/pcm/pcm_dshare.c5
-rw-r--r--src/pcm/pcm_dsnoop.c5
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, &params.format,
+ SND_PCM_HW_PARAM_FORMAT, SCONF_UNCHANGED, &params.format,
SND_PCM_HW_PARAM_RATE, 0, &params.rate,
SND_PCM_HW_PARAM_CHANNELS, 0, &params.channels,
SND_PCM_HW_PARAM_PERIOD_TIME, 0, &params.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, &params.format,
+ SND_PCM_HW_PARAM_FORMAT, SCONF_UNCHANGED, &params.format,
SND_PCM_HW_PARAM_RATE, 0, &params.rate,
SND_PCM_HW_PARAM_CHANNELS, 0, &params.channels,
SND_PCM_HW_PARAM_PERIOD_TIME, 0, &params.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;