]> git.alsa-project.org Git - alsa-utils.git/commitdiff
alsaloop: fix -a option and slave mode processing
authorJaroslav Kysela <perex@perex.cz>
Wed, 6 Oct 2010 18:34:03 +0000 (20:34 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 6 Oct 2010 18:34:03 +0000 (20:34 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
alsaloop/alsaloop.c
alsaloop/pcmjob.c
alsaloop/test.sh

index 743e0ef4c0948f67dd69965909b2227ae9f037ae..48bd21a2f061d12dd80137ec8eb8ee8d152539a6 100644 (file)
@@ -424,9 +424,9 @@ static int parse_config(int argc, char *argv[], snd_output_t *output)
                case 'a':
                        if (optarg[0] == 'a')
                                arg_slave = SLAVE_TYPE_AUTO;
-                       else if (strcasecmp(optarg, "off"))
+                       else if (strcasecmp(optarg, "on") == 0)
                                arg_slave = SLAVE_TYPE_ON;
-                       else if (strcasecmp(optarg, "on"))
+                       else if (strcasecmp(optarg, "off") == 0)
                                arg_slave = SLAVE_TYPE_OFF;
                        else
                                arg_slave = atoi(optarg);
index 47256e092eb2ed03fad858cc6e0ae268a2520aef..51d9ea60c9fb6ecda05fd0ba06cb9554cc9aadb1 100644 (file)
@@ -1432,6 +1432,8 @@ int pcmjob_pollfds_handle(struct loopback *loop, struct pollfd *fds)
        }
        if (verbose > 9)
                snd_output_printf(loop->output, "%s: prevents = 0x%x, crevents = 0x%x\n", loop->id, prevents, crevents);
+       if (prevents == 0 && crevents == 0)
+               goto __pcm_end;
        do {
                ccount = readit(capt);
                buf_add(loop, ccount);
@@ -1520,6 +1522,7 @@ int pcmjob_pollfds_handle(struct loopback *loop, struct pollfd *fds)
                else
                        snd_output_printf(loop->output, "%s: end delay %li\n", capt->id, cdelay);
        }
+      __pcm_end:
        if (verbose > 13) {
                getcurtimestamp(&loop->tstamp_end);
                snd_output_printf(loop->output, "%s: processing time %lius\n", capt->id, timediff(loop->tstamp_end, loop->tstamp_start));
index bc424800f2f0b070b58c133e0c243034419bc52a..a1d4dbe2e58263b57e8f5f8cc24607b1f0eb425f 100755 (executable)
@@ -28,19 +28,19 @@ EOF
 }
 
 test3() {
-  echo "TEST2"
+  echo "TEST3"
 cat > $CFGFILE <<EOF
--C hw:1,0,0 -P dmix:0 --tlatency 50000 --thread 0 \
+-C hw:1,0,0 -P plug:dmix:0 --tlatency 50000 --thread 0 \
     --mixer "name='Master Playback Volume'@name='Master Playback Volume'" \
     --mixer "name='Master Playback Switch'@name='Master Playback Switch'" \
     --mixer "name='PCM Playback Volume'"
--C hw:1,0,1 -P dmix:0 --tlatency 50000 --thread 1
--C hw:1,0,2 -P dmix:0 --tlatency 50000 --thread 2
--C hw:1,0,3 -P dmix:0 --tlatency 50000 --thread 3
--C hw:1,0,4 -P dmix:0 --tlatency 50000 --thread 4
--C hw:1,0,5 -P dmix:0 --tlatency 50000 --thread 5
--C hw:1,0,6 -P dmix:0 --tlatency 50000 --thread 6
--C hw:1,0,7 -P dmix:0 --tlatency 50000 --thread 7
+-C hw:1,0,1 -P plug:dmix:0 --tlatency 50000 --thread 1
+-C hw:1,0,2 -P plug:dmix:0 --tlatency 50000 --thread 2
+-C hw:1,0,3 -P plug:dmix:0 --tlatency 50000 --thread 3
+-C hw:1,0,4 -P plug:dmix:0 --tlatency 50000 --thread 4
+-C hw:1,0,5 -P plug:dmix:0 --tlatency 50000 --thread 5
+-C hw:1,0,6 -P plug:dmix:0 --tlatency 50000 --thread 6
+-C hw:1,0,7 -P plug:dmix:0 --tlatency 50000 --thread 7
 EOF
   $DBG ./alsaloop --config $CFGFILE
 }