when using record mode, allow file to save data to to be passed on the command line

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@675 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2006-04-10 19:42:14 +00:00
parent 6a3b8aeb3f
commit 93327083d9

View file

@ -517,25 +517,25 @@ int main(int argc, char *argv[]) {
fprintf(stderr, "Opening a %s stream with sample specification '%s'.\n", mode == RECORD ? "recording" : "playback", t);
}
if (optind+1 < argc) {
fprintf(stderr, "Too many arguments.\n");
goto quit;
}
if (optind+1 == argc) {
int fd;
if ((fd = open(argv[optind], O_RDONLY)) < 0) {
fprintf(stderr, "open(): %s\n", strerror(errno));
if (!(optind >= argc)) {
if (optind+1 == argc) {
int fd;
if ((fd = open(argv[optind], mode == PLAYBACK ? O_RDONLY : O_WRONLY|O_TRUNC|O_CREAT)) < 0) {
fprintf(stderr, "open(): %s\n", strerror(errno));
goto quit;
}
if (dup2(fd, mode == PLAYBACK ? 0 : 1) < 0) {
fprintf(stderr, "dup2(): %s\n", strerror(errno));
goto quit;
}
close(fd);
} else {
fprintf(stderr, "Too many arguments.\n");
goto quit;
}
if (dup2(fd, 0) < 0) {
fprintf(stderr, "dup2(): %s\n", strerror(errno));
goto quit;
}
close(fd);
}
/* Set up a new main loop */