ref: e588f34341a53e9a3cd1f319050a02eaeb99b663
parent: 518af042028c91e17c4b29aaf4b55c3c56c9f0e2
author: robs <robs>
date: Wed Aug 19 14:39:48 EDT 2009
Fix simultaneous play & rec not working; const correctness fix
--- a/ChangeLog
+++ b/ChangeLog
@@ -49,6 +49,7 @@
o Fix build so that grouped files (e.g. play -r 6k "*.vox" plays all
at 6k) works. (robs)
+ o Fix simultaneous play & rec not working. (robs)
Internal improvements:
--- a/sox.1
+++ b/sox.1
@@ -131,8 +131,9 @@
.EE
records half an hour of stereo audio, and
.EX
- rec -M take1.aiff take1-dub.aiff
+ play -q take1.aiff & rec -M take1.aiff take1-dub.aiff
.EE
+(with POSIX shell and where supported by hardware)
records a new track in a multi-track recording. Finally,
.EX
.ne 3
--- a/src/sox.c
+++ b/src/sox.c
@@ -1628,7 +1628,7 @@
optimize_trim();
#ifdef HAVE_TERMIOS_H /* so we can be fully interactive. */
- if (!interactive && is_player && stdin_is_a_tty) {+ if (show_progress && !interactive && is_player && stdin_is_a_tty) {struct termios modified_termios;
tcgetattr(fileno(stdin), &original_termios);
@@ -1761,7 +1761,7 @@
static void usage(char const * message)
{size_t i;
- static char const * lines[] = {+ static char const * const lines[] = {"SPECIAL FILENAMES (infile, outfile):",
"- Pipe/redirect input/output (stdin/stdout); may need -t",
"-d, --default-device Use the default audio device (where available)",
@@ -1989,55 +1989,55 @@
free(text);
}
-static char *getoptstr = "+ab:c:de:fghimnopqr:st:uv:xABC:DGLMNRSTUV::X12348";
+static char const * const getoptstr =
+ "+ab:c:de:fghimnopqr:st:uv:xABC:DGLMNRSTUV::X12348";
-static struct option long_options[] =
- {- {"add-comment" , required_argument, NULL, 0},- {"buffer" , required_argument, NULL, 0},- {"combine" , required_argument, NULL, 0},- {"comment-file" , required_argument, NULL, 0},- {"comment" , required_argument, NULL, 0},- {"endian" , required_argument, NULL, 0},- {"input-buffer" , required_argument, NULL, 0},- {"interactive" , no_argument, NULL, 0},- {"help-effect" , required_argument, NULL, 0},- {"help-format" , required_argument, NULL, 0},- {"no-glob" , no_argument, NULL, 0},- {"plot" , required_argument, NULL, 0},- {"replay-gain" , required_argument, NULL, 0},- {"version" , no_argument, NULL, 0},- {"output" , required_argument, NULL, 0},- {"effects-file" , required_argument, NULL, 0},- {"temp" , required_argument, NULL, 0},- {"single-threaded" , no_argument, NULL, 0},- {"ignore-length" , no_argument, NULL, 0},- {"norm" , no_argument, NULL, 0},- {"magic" , no_argument, NULL, 0},- {"play-rate-arg" , required_argument, NULL, 0},- {"clobber" , no_argument, NULL, 0},- {"no-clobber" , no_argument, NULL, 0},+static struct option const long_options[] = {+ {"add-comment" , required_argument, NULL, 0},+ {"buffer" , required_argument, NULL, 0},+ {"combine" , required_argument, NULL, 0},+ {"comment-file" , required_argument, NULL, 0},+ {"comment" , required_argument, NULL, 0},+ {"endian" , required_argument, NULL, 0},+ {"input-buffer" , required_argument, NULL, 0},+ {"interactive" , no_argument, NULL, 0},+ {"help-effect" , required_argument, NULL, 0},+ {"help-format" , required_argument, NULL, 0},+ {"no-glob" , no_argument, NULL, 0},+ {"plot" , required_argument, NULL, 0},+ {"replay-gain" , required_argument, NULL, 0},+ {"version" , no_argument, NULL, 0},+ {"output" , required_argument, NULL, 0},+ {"effects-file" , required_argument, NULL, 0},+ {"temp" , required_argument, NULL, 0},+ {"single-threaded" , no_argument, NULL, 0},+ {"ignore-length" , no_argument, NULL, 0},+ {"norm" , no_argument, NULL, 0},+ {"magic" , no_argument, NULL, 0},+ {"play-rate-arg" , required_argument, NULL, 0},+ {"clobber" , no_argument, NULL, 0},+ {"no-clobber" , no_argument, NULL, 0},- {"bits" , required_argument, NULL, 'b'},- {"channels" , required_argument, NULL, 'c'},- {"compression" , required_argument, NULL, 'C'},- {"default-device" , no_argument, NULL, 'd'},- {"no-dither" , no_argument, NULL, 'D'},- {"encoding" , required_argument, NULL, 'e'},- {"help" , no_argument, NULL, 'h'},- {"null" , no_argument, NULL, 'n'},- {"no-show-progress", no_argument, NULL, 'q'},- {"pipe" , no_argument, NULL, 'p'},- {"rate" , required_argument, NULL, 'r'},- {"reverse-bits" , no_argument, NULL, 'X'},- {"reverse-nibbles" , no_argument, NULL, 'N'},- {"show-progress" , no_argument, NULL, 'S'},- {"type" , required_argument, NULL, 't'},- {"volume" , required_argument, NULL, 'v'},- {"guard" , no_argument, NULL, 'G'},+ {"bits" , required_argument, NULL, 'b'},+ {"channels" , required_argument, NULL, 'c'},+ {"compression" , required_argument, NULL, 'C'},+ {"default-device" , no_argument, NULL, 'd'},+ {"no-dither" , no_argument, NULL, 'D'},+ {"encoding" , required_argument, NULL, 'e'},+ {"help" , no_argument, NULL, 'h'},+ {"null" , no_argument, NULL, 'n'},+ {"no-show-progress", no_argument, NULL, 'q'},+ {"pipe" , no_argument, NULL, 'p'},+ {"rate" , required_argument, NULL, 'r'},+ {"reverse-bits" , no_argument, NULL, 'X'},+ {"reverse-nibbles" , no_argument, NULL, 'N'},+ {"show-progress" , no_argument, NULL, 'S'},+ {"type" , required_argument, NULL, 't'},+ {"volume" , required_argument, NULL, 'v'},+ {"guard" , no_argument, NULL, 'G'},- {NULL, 0, NULL, 0}- };
+ {NULL, 0, NULL, 0}+};
static int opt_index(int val)
{--
⑨