diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-01-23 12:26:22 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-01-23 12:26:22 +0100 |
commit | c1d06bda17f1ef206b86bb41eebdcf43916ee64b (patch) | |
tree | 6d140bdda53b08bb07721ed0da241e3961ee6881 | |
parent | d902c124b485fed87abb2aba291864606e75cd68 (diff) | |
download | alsa-lib-c1d06bda17f1ef206b86bb41eebdcf43916ee64b.tar.gz |
Allow auto-config for dsnoop and dshare plugins
-rw-r--r-- | src/pcm/pcm_dshare.c | 5 | ||||
-rw-r--r-- | 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; |