]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplay - option to dump HW parameters
authorPavel Hofman <pavel.hofman@ivitera.com>
Mon, 5 Mar 2012 21:27:00 +0000 (21:27 +0000)
committerTakashi Iwai <tiwai@suse.de>
Tue, 6 Mar 2012 09:42:17 +0000 (10:42 +0100)
Dumping HW parameters of the current device with snd_pcm_hw_params_dump,
a new option --dump-hw-params added.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
aplay/aplay.1
aplay/aplay.c

index 2acaed5388815e89cf66eed83aa419b3ad503710..0195322f75fca514593160b805375686e0dddcef 100644 (file)
@@ -184,6 +184,13 @@ the month, %H hour, %M minute and %S second.  In addition, %v is
 the file number, starting at 1.  When this option is specified,
 intermediate directories for the output file are created automatically.
 This option has no effect if \-\-separate\-channels is specified.
+.TP
+\fI\-\-dump\-hw\-params\fP
+Dump hw_params of the device preconfigured status to stderr. The dump
+lists capabilities of the selected device such as supported formats,
+sampling rates, numbers of channels, period and buffer bytes/sizes/times.
+For raw device hw:X this option basically lists hardware capabilities of
+the soundcard.
 
 .SH SIGNALS
 When recording, SIGINT, SIGTERM and SIGABRT will close the output 
index 73a954477edce762e9d362adab4c9f816c65a7b5..0633cbd76df475bf9c37eddd0160dc5934f11a06 100644 (file)
@@ -129,6 +129,7 @@ static int max_file_time = 0;
 static int use_strftime = 0;
 volatile static int recycle_capture_file = 0;
 static long term_c_lflag = -1;
+static int dump_hw_params = 0;
 
 static int fd = -1;
 static off64_t pbrec_count = LLONG_MAX, fdcount;
@@ -223,7 +224,8 @@ _("Usage: %s [OPTION]... [FILE]...\n"
 "    --max-file-time=#   start another output file when the old file has recorded\n"
 "                        for this many seconds\n"
 "    --process-id-file   write the process ID here\n"
-"    --use-strftime      apply the strftime facility to the output file name\n")
+"    --use-strftime      apply the strftime facility to the output file name\n"
+"    --dump-hw-params    dump hw_params of the device\n")
                , command);
        printf(_("Recognized sample formats are:"));
        for (k = 0; k < SND_PCM_FORMAT_LAST; ++k) {
@@ -416,7 +418,8 @@ enum {
        OPT_TEST_NOWAIT,
        OPT_MAX_FILE_TIME,
        OPT_PROCESS_ID_FILE,
-       OPT_USE_STRFTIME
+       OPT_USE_STRFTIME,
+       OPT_DUMP_HWPARAMS
 };
 
 int main(int argc, char *argv[])
@@ -461,6 +464,7 @@ int main(int argc, char *argv[])
                {"process-id-file", 1, 0, OPT_PROCESS_ID_FILE},
                {"use-strftime", 0, 0, OPT_USE_STRFTIME},
                {"interactive", 0, 0, 'i'},
+               {"dump-hw-params", 0, 0, OPT_DUMP_HWPARAMS},
                {0, 0, 0, 0}
        };
        char *pcm_name = "default";
@@ -662,6 +666,9 @@ int main(int argc, char *argv[])
                case OPT_USE_STRFTIME:
                        use_strftime = 1;
                        break;
+               case OPT_DUMP_HWPARAMS:
+                       dump_hw_params = 1;
+                       break;
                default:
                        fprintf(stderr, _("Try `%s --help' for more information.\n"), command);
                        return 1;
@@ -1059,6 +1066,13 @@ static void set_params(void)
                error(_("Broken configuration for this PCM: no configurations available"));
                prg_exit(EXIT_FAILURE);
        }
+       if (dump_hw_params) {
+               fprintf(stderr, _("HW Params of device \"%s\":\n"),
+                       snd_pcm_name(handle));
+               fprintf(stderr, "--------------------\n");
+               snd_pcm_hw_params_dump(params, log);
+               fprintf(stderr, "--------------------\n");
+       }
        if (mmap_flag) {
                snd_pcm_access_mask_t *mask = alloca(snd_pcm_access_mask_sizeof());
                snd_pcm_access_mask_none(mask);