From ceefe393b3e9e0e4ddd675615150151a7768e696 Mon Sep 17 00:00:00 2001 From: greg Date: Mon, 17 Mar 2003 04:15:02 +0000 Subject: [PATCH] add -s option to rec for stereo git-svn-id: file:///home/svn/nwr/trunk@32 103c2249-d0a5-da11-ade6-0050bffea3d9 --- go | 2 +- rec.1 | 5 ++++- rec.cpp | 23 ++++++++++++++++++----- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/go b/go index b302ea3..5aae36f 100755 --- a/go +++ b/go @@ -1,3 +1,3 @@ #!/bin/sh -./rec - | ./squelch 10 | ./splitter ./streamer './decode -' './log /public/greg/nwr' +./rec -s - | ./demux "./splitter ./streamer './decode -' './log /public/greg/nwr/wxk27'" "cat >/dev/null" diff --git a/rec.1 b/rec.1 index c61d9ff..24e2966 100644 --- a/rec.1 +++ b/rec.1 @@ -2,7 +2,7 @@ .SH NAME rec \- record from audio device .SH SYNOPSIS -.B rec +.B rec [-s] .I file .SH DESCRIPTION .B rec @@ -11,6 +11,9 @@ opens an audio device and writes sample data to If .I file is \-, then write to stdout. +.SH OPTIONS +.IP -s +Record both left and right stereo channels. .SH FILES .I /dev/dsp .RS diff --git a/rec.cpp b/rec.cpp index 7cd3781..9b831f6 100644 --- a/rec.cpp +++ b/rec.cpp @@ -7,11 +7,24 @@ int main(int argc, char *argv[]) { + bool stereo = false; + int a = 1; + while (a < argc && argv[a][0] == '-' && argv[a][1] != 0) { + switch (argv[a][1]) { + case 's': + stereo = true; + break; + default: + fprintf(stderr, "%s: unknown option %c\n", argv[0], argv[a][1]); + exit(1); + } + a++; + } FILE *f; - if (strcmp(argv[1], "-") == 0) { + if (strcmp(argv[a], "-") == 0) { f = stdout; } else { - f = fopen(argv[1], "wb"); + f = fopen(argv[a], "wb"); if (f == NULL) { perror("fopen"); exit(1); @@ -31,13 +44,13 @@ int main(int argc, char *argv[]) perror("ioctl: SNDCTL_DSP_SETFMT"); exit(1); } - sndparam = 0; + sndparam = stereo; if (ioctl(fd, SNDCTL_DSP_STEREO, &sndparam) == -1) { perror("ioctl: SNDCTL_DSP_STEREO"); exit(1); } - if (sndparam != 0) { - fprintf(stderr, "gen: Error, cannot set the channel number to 0\n"); + if (sndparam != stereo) { + fprintf(stderr, "rec: Error, cannot set the channel number to %d\n", stereo); exit(1); } int sample_rate = 11025;