]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplay - Show available formats
authorArnout Engelen <alsa2@bzzt.net>
Sun, 18 Oct 2009 19:34:30 +0000 (21:34 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 2 Nov 2009 15:44:06 +0000 (16:44 +0100)
Report available sample formats in aplay/arecord when currently selected
one doesn't work.

Signed-off-by: Arnout Engelen <alsa2@bzzt.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
aplay/aplay.c

index c7c82a16c30706169f74abb9915d96294dadb070..af6fedebaee6fc4cdebf0f447f43b313e321b560 100644 (file)
@@ -941,6 +941,17 @@ static int test_au(int fd, void *buffer)
        return 0;
 }
 
+static void show_available_sample_formats(snd_pcm_hw_params_t* params)
+{
+       snd_pcm_format_t format;
+
+       fprintf(stderr, "Available formats:\n");
+       for (format = 0; format < SND_PCM_FORMAT_LAST; format++) {
+               if (snd_pcm_hw_params_test_format(handle, params, format) == 0)
+                       fprintf(stderr, "- %s\n", snd_pcm_format_name(format));
+       }
+}
+
 static void set_params(void)
 {
        snd_pcm_hw_params_t *params;
@@ -977,6 +988,7 @@ static void set_params(void)
        err = snd_pcm_hw_params_set_format(handle, params, hwparams.format);
        if (err < 0) {
                error(_("Sample format non available"));
+               show_available_sample_formats(params);
                exit(EXIT_FAILURE);
        }
        err = snd_pcm_hw_params_set_channels(handle, params, hwparams.channels);