File 0007-aplay-Show-usage-if-no-parameter-is-passed.patch of Package alsa-utils

From c6614dbdab1cbe541e7d6cd29f3922510e0b6981 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <fabio.estevam@freescale.com>
Date: Tue, 13 Nov 2012 10:05:39 -0200
Subject: [PATCH 7/9] aplay: Show usage if no parameter is passed

When aplay/arecord are called without any argument the application hangs forever.

Instead of hanging, print the usage and exit.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 aplay/aplay.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/aplay/aplay.c b/aplay/aplay.c
index 741979a..f35f603 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -493,6 +493,7 @@ int main(int argc, char *argv[])
 	int tmp, err, c;
 	int do_device_list = 0, do_pcm_list = 0;
 	snd_pcm_info_t *info;
+	FILE *direction;
 
 #ifdef ENABLE_NLS
 	setlocale(LC_ALL, "");
@@ -511,14 +512,21 @@ int main(int argc, char *argv[])
 		file_type = FORMAT_WAVE;
 		command = "arecord";
 		start_delay = 1;
+		direction = stdout;
 	} else if (strstr(argv[0], "aplay")) {
 		stream = SND_PCM_STREAM_PLAYBACK;
 		command = "aplay";
+		direction = stdin;
 	} else {
 		error(_("command should be named either arecord or aplay"));
 		return 1;
 	}
 
+	if (isatty(fileno(direction)) && (argc == 1)) {
+		usage(command);
+		return 1;
+	}
+
 	chunk_size = -1;
 	rhwparams.format = DEFAULT_FORMAT;
 	rhwparams.rate = DEFAULT_SPEED;
-- 
1.8.0.1
openSUSE Build Service is sponsored by