[alsa-cvslog] alsa-utils: ALSA utilities repository branch, master now at v1.0.24.2-11-gc8415ac
Brought to you by:
perex
From: <nor...@al...> - 2011-06-03 10:46:06
|
Hello, This is an automated email from the git hooks/update script, it was generated because a ref change was pushed to the repository. Updating branch, master, via c8415acdacabe64344d450f4ee56fd2b69016376 (commit) via a3ebe640a74d4a0e8acd15e31dd83c210b3c1be4 (commit) via d67a965aec800483ba48d6de736cb3851163e678 (commit) from f30fbe3901da0f57a6b40102ae1c3ab3a9ff6744 (commit) - Log ----------------------------------------------------------------- commit c8415acdacabe64344d450f4ee56fd2b69016376 Author: Takashi Iwai <ti...@su...> AuthorDate: Fri Jun 3 12:45:13 2011 +0200 Commit: Takashi Iwai <ti...@su...> CommitDate: Fri Jun 3 12:45:13 2011 +0200 Add alsaucm to .gitignore Signed-off-by: Takashi Iwai <ti...@su...> commit a3ebe640a74d4a0e8acd15e31dd83c210b3c1be4 Author: Takashi Iwai <ti...@su...> AuthorDate: Fri Jun 3 12:44:17 2011 +0200 Commit: Takashi Iwai <ti...@su...> CommitDate: Fri Jun 3 12:44:17 2011 +0200 aplay: Avoid recursive signal handling When abort() is issued in snd_pcm_close() path, it may loop recursively and crash. Signed-off-by: Takashi Iwai <ti...@su...> commit d67a965aec800483ba48d6de736cb3851163e678 Author: Takashi Iwai <ti...@su...> AuthorDate: Fri Jun 3 12:41:26 2011 +0200 Commit: Takashi Iwai <ti...@su...> CommitDate: Fri Jun 3 12:41:26 2011 +0200 aplay: Add -i option for interactive mode The recent addition of pause/resume control via keyboard brought a problem when aplay/arecord is invoked in background. For avoiding regressions, it's safer to use non-interactive mode as default and enable the new feature via an option. Tested-by: Stephen Warren <sw...@nv...> Signed-off-by: Takashi Iwai <ti...@su...> ----------------------------------------------------------------------- Diffstat: .gitignore | 1 + aplay/aplay.1 | 4 ++++ aplay/aplay.c | 20 +++++++++++++++++++- 3 files changed, 24 insertions(+), 1 deletions(-) Patch -------------- (max 1500 lines) diff --git a/.gitignore b/.gitignore index d17c89a..546ec6b 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ seq/aseqdump/aseqdump seq/aseqnet/aseqnet speaker-test/speaker-test alsaloop/alsaloop +alsaucm/alsaucm include/aconfig.h* include/stamp-* diff --git a/aplay/aplay.1 b/aplay/aplay.1 index b6caf0b..8ccf556 100644 --- a/aplay/aplay.1 +++ b/aplay/aplay.1 @@ -137,6 +137,10 @@ by typing aplay. Record. This is the default if the program is invoked by typing arecord. .TP +\fI\-i, \-\-interactive\fP +Allow interactive operation via stdin. +Currently only pause/resume via space or enter key is implemented. +.TP \fI\-\-disable\-resample\fP Disable automatic rate resample. .TP diff --git a/aplay/aplay.c b/aplay/aplay.c index c09f23c..72852b0 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -103,6 +103,7 @@ static int avail_min = -1; static int start_delay = 0; static int stop_delay = 0; static int monotonic = 0; +static int interactive = 0; static int can_pause = 0; static int verbose = 0; static int vumeter = VUMETER_NONE; @@ -200,6 +201,7 @@ _("Usage: %s [OPTION]... [FILE]...\n" "-v, --verbose show PCM structure and setup (accumulative)\n" "-V, --vumeter=TYPE enable VU meter (TYPE: mono or stereo)\n" "-I, --separate-channels one file for each channel\n" +"-i, --interactive allow interactive operation from stdin\n" " --disable-resample disable automatic rate resample\n" " --disable-channels disable automatic channel conversions\n" " --disable-format disable automatic format conversions\n" @@ -356,6 +358,12 @@ static void prg_exit(int code) static void signal_handler(int sig) { + static int in_aborting; + + if (in_aborting) + return; + + in_aborting = 1; if (verbose==2) putchar('\n'); if (!quiet_mode) @@ -404,7 +412,7 @@ enum { int main(int argc, char *argv[]) { int option_index; - static const char short_options[] = "hnlLD:qt:c:f:r:d:MNF:A:R:T:B:vV:IPC"; + static const char short_options[] = "hnlLD:qt:c:f:r:d:MNF:A:R:T:B:vV:IPCi"; static const struct option long_options[] = { {"help", 0, 0, 'h'}, {"version", 0, 0, OPT_VERSION}, @@ -442,6 +450,7 @@ int main(int argc, char *argv[]) {"max-file-time", 1, 0, OPT_MAX_FILE_TIME}, {"process-id-file", 1, 0, OPT_PROCESS_ID_FILE}, {"use-strftime", 0, 0, OPT_USE_STRFTIME}, + {"interactive", 0, 0, 'i'}, {0, 0, 0, 0} }; char *pcm_name = "default"; @@ -608,6 +617,9 @@ int main(int argc, char *argv[]) if (file_type == FORMAT_DEFAULT) file_type = FORMAT_WAVE; break; + case 'i': + interactive = 1; + break; case OPT_DISABLE_RESAMPLE: open_mode |= SND_PCM_NO_AUTO_RESAMPLE; break; @@ -1206,6 +1218,8 @@ static void init_stdin(void) struct termios term; long flags; + if (!interactive) + return; tcgetattr(fileno(stdin), &term); term_c_lflag = term.c_lflag; if (fd == fileno(stdin)) @@ -1221,6 +1235,8 @@ static void done_stdin(void) { struct termios term; + if (!interactive) + return; if (fd == fileno(stdin) || term_c_lflag == -1) return; tcgetattr(fileno(stdin), &term); @@ -1258,6 +1274,8 @@ static void check_stdin(void) { unsigned char b; + if (!interactive) + return; if (fd != fileno(stdin)) { while (read(fileno(stdin), &b, 1) == 1) { if (b == ' ' || b == '\r') { ------- End of patch hooks/update --- Git Source Code Management System hooks/update refs/heads/master \ f30fbe3901da0f57a6b40102ae1c3ab3a9ff6744 \ c8415acdacabe64344d450f4ee56fd2b69016376 |