]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Allow auto-config for dsnoop and dshare plugins
authorTakashi Iwai <tiwai@suse.de>
Wed, 23 Jan 2008 11:26:22 +0000 (12:26 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 23 Jan 2008 11:26:22 +0000 (12:26 +0100)
src/pcm/pcm_dshare.c
src/pcm/pcm_dsnoop.c

index b7afa3c72e9e1399605f0478426379bed8bb44d2..8d403547183d8b07d7d936573c69726fe18cd85e 100644 (file)
@@ -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;
 
index 5eaca3f57d3f1756d744e14d991a1836a5b19b45..e9ea81bf66cccf538284a04add98afe75ad84188 100644 (file)
@@ -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;