]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fixes for PCM loopback..
authorJaroslav Kysela <perex@perex.cz>
Fri, 20 Aug 1999 20:16:46 +0000 (20:16 +0000)
committerJaroslav Kysela <perex@perex.cz>
Fri, 20 Aug 1999 20:16:46 +0000 (20:16 +0000)
include/pcm.h
src/pcm/pcm_loopback.c

index 73856f603dfd55020fb0b82249bb7d1812bea1e1..69707810348867ef9a7d6e9d0da7ba5dd33e9620 100644 (file)
@@ -49,7 +49,7 @@ ssize_t snd_pcm_read(snd_pcm_t *handle, void *buffer, size_t size);
 extern "C" {
 #endif
 
-int snd_pcm_loopback_open(snd_pcm_loopback_t **handle, int card, int device, int mode);
+int snd_pcm_loopback_open(snd_pcm_loopback_t **handle, int card, int device, int subchn, int mode);
 int snd_pcm_loopback_close(snd_pcm_loopback_t *handle);
 int snd_pcm_loopback_file_descriptor(snd_pcm_loopback_t *handle);
 int snd_pcm_loopback_block_mode(snd_pcm_loopback_t *handle, int enable);
index 3da41c7bfc0f94123b6b1e6b3c0e995354beea1b..d9b035459a6b3bfe9b20f502a28f9c9eb27599e5 100644 (file)
@@ -28,7 +28,7 @@
 #include <sys/ioctl.h>
 #include "asoundlib.h"
 
-#define SND_FILE_PCM_LB                "/proc/asound/%i/pcm%i%s"
+#define SND_FILE_PCM_LB                "/proc/asound/%i/pcmloopD%iS%i%s"
 #define SND_PCM_LB_VERSION_MAX SND_PROTOCOL_VERSION( 1, 0, 0 )
 
 struct snd_pcm_loopback {
@@ -37,7 +37,7 @@ struct snd_pcm_loopback {
        int fd;
 } ;
 
-int snd_pcm_loopback_open(snd_pcm_loopback_t **handle, int card, int device, int mode)
+int snd_pcm_loopback_open(snd_pcm_loopback_t **handle, int card, int device, int subchn, int mode)
 {
        int fd, ver;
        char filename[32];
@@ -47,8 +47,8 @@ int snd_pcm_loopback_open(snd_pcm_loopback_t **handle, int card, int device, int
 
        if (card < 0 || card >= SND_CARDS)
                return -EINVAL;
-       sprintf(filename, SND_FILE_PCM_LB, card, device,
-               mode == SND_PCM_LB_OPEN_CAPTURE ? "r" : "p");
+       sprintf(filename, SND_FILE_PCM_LB, card, device, subchn,
+               mode == SND_PCM_LB_OPEN_CAPTURE ? "c" : "p");
        if ((fd = open(filename, mode)) < 0) {
                snd_card_load(card);
                if ((fd = open(filename, mode)) < 0)