]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Set PCM name properly in empty and asym plugins
authorTakashi Iwai <tiwai@suse.de>
Mon, 26 Nov 2007 11:29:37 +0000 (12:29 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 26 Nov 2007 11:29:37 +0000 (12:29 +0100)
The PCM name isn't set properly on empty and asym plugins due to its call
of snd_pcm_open_slave().  Now a new function snd_pcm_open_named_slave()
is created and make snd_pcm_open_slave() an inline function calling the
new one with name=NULL.

src/pcm/pcm.c
src/pcm/pcm_asym.c
src/pcm/pcm_empty.c
src/pcm/pcm_local.h

index 142b4c626de1dfd63f03d27f770a4a44b5dbd745..2e36cc18e161f43c9aedc9de2b76dc1c35a41837 100644 (file)
@@ -2226,9 +2226,10 @@ int snd_pcm_free(snd_pcm_t *pcm)
        return 0;
 }
 
-int snd_pcm_open_slave(snd_pcm_t **pcmp, snd_config_t *root,
-                      snd_config_t *conf, snd_pcm_stream_t stream,
-                      int mode, snd_config_t *parent_conf)
+int snd_pcm_open_named_slave(snd_pcm_t **pcmp, const char *name,
+                            snd_config_t *root,
+                            snd_config_t *conf, snd_pcm_stream_t stream,
+                            int mode, snd_config_t *parent_conf)
 {
        const char *str;
        int hop;
@@ -2238,7 +2239,7 @@ int snd_pcm_open_slave(snd_pcm_t **pcmp, snd_config_t *root,
        if (snd_config_get_string(conf, &str) >= 0)
                return snd_pcm_open_noupdate(pcmp, root, str, stream, mode,
                                             hop + 1);
-       return snd_pcm_open_conf(pcmp, NULL, root, conf, stream, mode);
+       return snd_pcm_open_conf(pcmp, name, root, conf, stream, mode);
 }
 #endif
 
index 660f3107ed96000b32809967cae80aea3694c161..9c32b1b94c6fa9f91d79ae1bc22412a3ed52c7a4 100644 (file)
@@ -109,7 +109,8 @@ int _snd_pcm_asym_open(snd_pcm_t **pcmp, const char *name ATTRIBUTE_UNUSED,
        err = snd_pcm_slave_conf(root, slave, &sconf, 0);
        if (err < 0)
                return err;
-       err = snd_pcm_open_slave(pcmp, root, sconf, stream, mode, conf);
+       err = snd_pcm_open_named_slave(pcmp, name, root, sconf, stream,
+                                      mode, conf);
        snd_config_delete(sconf);
        return err;
 }
index 8daf9c36ece937f744717b111598fd11a4a1954d..070850cd8775221c7fadcbbdc8d45254cc6cdcd0 100644 (file)
@@ -100,7 +100,8 @@ int _snd_pcm_empty_open(snd_pcm_t **pcmp, const char *name ATTRIBUTE_UNUSED,
        err = snd_pcm_slave_conf(root, slave, &sconf, 0);
        if (err < 0)
                return err;
-       err = snd_pcm_open_slave(pcmp, root, sconf, stream, mode, conf);
+       err = snd_pcm_open_named_slave(pcmp, name, root, sconf, stream,
+                                      mode, conf);
        snd_config_delete(sconf);
        return err;
 }
index fd5dbb679c3a14e4155c8e6aab5ffd2f44e4d279..f2816c6aad0700950eea22138a6d4dd809c08d00 100644 (file)
@@ -749,9 +749,18 @@ int snd_pcm_slave_conf(snd_config_t *root, snd_config_t *conf,
 
 #define SND_PCM_APPEND (1<<8)
 
-int snd_pcm_open_slave(snd_pcm_t **pcmp, snd_config_t *root,
-                      snd_config_t *conf, snd_pcm_stream_t stream,
-                      int mode, snd_config_t *parent_conf);
+int snd_pcm_open_named_slave(snd_pcm_t **pcmp, const char *name,
+                            snd_config_t *root,
+                            snd_config_t *conf, snd_pcm_stream_t stream,
+                            int mode, snd_config_t *parent_conf);
+static inline int
+snd_pcm_open_slave(snd_pcm_t **pcmp, snd_config_t *root,
+                  snd_config_t *conf, snd_pcm_stream_t stream,
+                  int mode, snd_config_t *parent_conf)
+{
+       return snd_pcm_open_named_slave(pcmp, NULL, root, conf, stream,
+                                       mode, parent_conf);
+}
 int snd_pcm_conf_generic_id(const char *id);
 
 int snd_pcm_hw_open_fd(snd_pcm_t **pcmp, const char *name, int fd, int mmap_emulation, int sync_ptr_ioctl);