From 3b1ee6b325926336564c73c5c22831b59f404805 Mon Sep 17 00:00:00 2001 From: Erik Ackermann Date: Tue, 25 Feb 2014 11:45:24 -0800 Subject: [PATCH] speaker-test: add --force-frequency option to allow hz outside range Signed-off-by: Erik Ackermann Signed-off-by: Takashi Iwai --- po/de.po | 2 ++ po/fr.po | 2 ++ po/ja.po | 2 ++ speaker-test/speaker-test.c | 17 ++++++++++++++--- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/po/de.po b/po/de.po index 0c47c65..586bde2 100644 --- a/po/de.po +++ b/po/de.po @@ -1487,6 +1487,7 @@ msgid "" "-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-w,--wavfile\tUse the given WAV file as a test sound\n" "-W,--wavdir\tSpecify the directory containing WAV files\n" +"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n" "\n" msgstr "" "Verwendung: speaker-test [Option]...\n" @@ -1504,6 +1505,7 @@ msgstr "" "-s,--speaker teste einen einzelnen Lautsprecher; 1=links, 2=rechts, usw.\n" "-w,--wavfile benutze WAV-Datei als Testton\n" "-W,--wavdir benutze Verzeichnis mit darin enthaltenen WAV-Dateien\n" +"-X,--force-frequency\termöglichen Frequenzen außerhalb der 30-8000Hz Bereich\n" "\n" #: speaker-test/speaker-test.c:921 diff --git a/po/fr.po b/po/fr.po index a6028a4..876c9a3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1474,6 +1474,7 @@ msgid "" "-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-w,--wavfile\tUse the given WAV file as a test sound\n" "-W,--wavdir\tSpecify the directory containing WAV files\n" +"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n" "\n" msgstr "" "Utilisation: speaker-test [OPTION]...\n" @@ -1492,6 +1493,7 @@ msgstr "" "\t\tValeurs 1=Gauche, 2=Droite, et c.\n" "-w,--wavfile\tUtiliser le fichier WAV spécifié pour le test\n" "-w,--wavdir\tSpécifier le répertoire contenant les fichiers WAV\n" +"-X,--force-frequency\tpermettre fréquences en dehors de la gamme 30-8000Hz\n" "\n" #: ../speaker-test/speaker-test.c:852 diff --git a/po/ja.po b/po/ja.po index 2c234f4..d8ef706 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1429,6 +1429,7 @@ msgid "" "-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-w,--wavfile\tUse the given WAV file as a test sound\n" "-W,--wavdir\tSpecify the directory containing WAV files\n" +"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n" "\n" msgstr "" "使用法: speaker-test [オプション]...\n" @@ -1447,6 +1448,7 @@ msgstr "" "-s,--speaker 単一スピーカーテスト 1=左 または 2=右\n" "-w,--wavfile 指定のWAVファイルをテスト音源として使用\n" "-W,--wavdir WAVファイルのあるディレクトリを指定\n" +"-X,--force-frequency\t30-8000Hz範囲外許可\n" "\n" #: speaker-test/speaker-test.c:835 diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index 261f399..61396f2 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -106,6 +106,7 @@ static snd_pcm_uframes_t period_size; static const char *given_test_wav_file = NULL; static char *wav_file_dir = SOUNDSDIR; static int debug = 0; +static int force_frequency = 0; static int in_aborting = 0; static snd_pcm_t *pcm_handle = NULL; @@ -1015,6 +1016,7 @@ static void help(void) "-w,--wavfile Use the given WAV file as a test sound\n" "-W,--wavdir Specify the directory containing WAV files\n" "-m,--chmap Specify the channel map to override\n" + "-X,--force-frequency force frequencies outside the 30-8000hz range\n" "\n")); printf(_("Recognized sample formats are:")); for (fmt = supported_formats; *fmt >= 0; fmt++) { @@ -1057,6 +1059,7 @@ int main(int argc, char *argv[]) { {"wavfile", 1, NULL, 'w'}, {"wavdir", 1, NULL, 'W'}, {"debug", 0, NULL, 'd'}, + {"force-frequency", 0, NULL, 'X'}, #ifdef CONFIG_SUPPORT_CHMAP {"chmap", 1, NULL, 'm'}, #endif @@ -1078,7 +1081,7 @@ int main(int argc, char *argv[]) { while (1) { int c; - if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d" + if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d:X" #ifdef CONFIG_SUPPORT_CHMAP "m:" #endif @@ -1114,8 +1117,6 @@ int main(int argc, char *argv[]) { break; case 'f': freq = atof(optarg); - freq = freq < 30.0 ? 30.0 : freq; - freq = freq > 5000.0 ? 5000.0 : freq; break; case 'b': buffer_time = atoi(optarg); @@ -1173,6 +1174,9 @@ int main(int argc, char *argv[]) { case 'd': debug = 1; break; + case 'X': + force_frequency = 1; + break; #ifdef CONFIG_SUPPORT_CHMAP case 'm': chmap = optarg; @@ -1190,6 +1194,13 @@ int main(int argc, char *argv[]) { exit(EXIT_SUCCESS); } + if (!force_frequency) { + freq = freq < 30.0 ? 30.0 : freq; + freq = freq > 8000.0 ? 8000.0 : freq; + } else { + freq = freq < 1.0 ? 1.0 : freq; + } + if (test_type == TEST_WAV) format = SND_PCM_FORMAT_S16_LE; /* fixed format */