speaker-test: add --force-frequency option to allow hz outside range

Signed-off-by: Erik Ackermann <kurterikackermann@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Erik Ackermann 2014-02-25 11:45:24 -08:00 committed by Takashi Iwai
parent 360878f9c3
commit 3b1ee6b325
4 changed files with 20 additions and 3 deletions

View file

@ -1487,6 +1487,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-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,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n" "-W,--wavdir\tSpecify the directory containing WAV files\n"
"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n" "\n"
msgstr "" msgstr ""
"Verwendung: speaker-test [Option]...\n" "Verwendung: speaker-test [Option]...\n"
@ -1504,6 +1505,7 @@ msgstr ""
"-s,--speaker teste einen einzelnen Lautsprecher; 1=links, 2=rechts, usw.\n" "-s,--speaker teste einen einzelnen Lautsprecher; 1=links, 2=rechts, usw.\n"
"-w,--wavfile benutze WAV-Datei als Testton\n" "-w,--wavfile benutze WAV-Datei als Testton\n"
"-W,--wavdir benutze Verzeichnis mit darin enthaltenen WAV-Dateien\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" "\n"
#: speaker-test/speaker-test.c:921 #: speaker-test/speaker-test.c:921

View file

@ -1474,6 +1474,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-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,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n" "-W,--wavdir\tSpecify the directory containing WAV files\n"
"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n" "\n"
msgstr "" msgstr ""
"Utilisation: speaker-test [OPTION]...\n" "Utilisation: speaker-test [OPTION]...\n"
@ -1492,6 +1493,7 @@ msgstr ""
"\t\tValeurs 1=Gauche, 2=Droite, et c.\n" "\t\tValeurs 1=Gauche, 2=Droite, et c.\n"
"-w,--wavfile\tUtiliser le fichier WAV spécifié pour le test\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" "-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" "\n"
#: ../speaker-test/speaker-test.c:852 #: ../speaker-test/speaker-test.c:852

View file

@ -1429,6 +1429,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n" "-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,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n" "-W,--wavdir\tSpecify the directory containing WAV files\n"
"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n" "\n"
msgstr "" msgstr ""
"使用法: speaker-test [オプション]...\n" "使用法: speaker-test [オプション]...\n"
@ -1447,6 +1448,7 @@ msgstr ""
"-s,--speaker 単一スピーカーテスト 1=左 または 2=右\n" "-s,--speaker 単一スピーカーテスト 1=左 または 2=右\n"
"-w,--wavfile 指定のWAVファイルをテスト音源として使用\n" "-w,--wavfile 指定のWAVファイルをテスト音源として使用\n"
"-W,--wavdir WAVファイルのあるディレクトリを指定\n" "-W,--wavdir WAVファイルのあるディレクトリを指定\n"
"-X,--force-frequency\t30-8000Hz範囲外許可\n"
"\n" "\n"
#: speaker-test/speaker-test.c:835 #: speaker-test/speaker-test.c:835

View file

@ -106,6 +106,7 @@ static snd_pcm_uframes_t period_size;
static const char *given_test_wav_file = NULL; static const char *given_test_wav_file = NULL;
static char *wav_file_dir = SOUNDSDIR; static char *wav_file_dir = SOUNDSDIR;
static int debug = 0; static int debug = 0;
static int force_frequency = 0;
static int in_aborting = 0; static int in_aborting = 0;
static snd_pcm_t *pcm_handle = NULL; 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,--wavfile Use the given WAV file as a test sound\n"
"-W,--wavdir Specify the directory containing WAV files\n" "-W,--wavdir Specify the directory containing WAV files\n"
"-m,--chmap Specify the channel map to override\n" "-m,--chmap Specify the channel map to override\n"
"-X,--force-frequency force frequencies outside the 30-8000hz range\n"
"\n")); "\n"));
printf(_("Recognized sample formats are:")); printf(_("Recognized sample formats are:"));
for (fmt = supported_formats; *fmt >= 0; fmt++) { for (fmt = supported_formats; *fmt >= 0; fmt++) {
@ -1057,6 +1059,7 @@ int main(int argc, char *argv[]) {
{"wavfile", 1, NULL, 'w'}, {"wavfile", 1, NULL, 'w'},
{"wavdir", 1, NULL, 'W'}, {"wavdir", 1, NULL, 'W'},
{"debug", 0, NULL, 'd'}, {"debug", 0, NULL, 'd'},
{"force-frequency", 0, NULL, 'X'},
#ifdef CONFIG_SUPPORT_CHMAP #ifdef CONFIG_SUPPORT_CHMAP
{"chmap", 1, NULL, 'm'}, {"chmap", 1, NULL, 'm'},
#endif #endif
@ -1078,7 +1081,7 @@ int main(int argc, char *argv[]) {
while (1) { while (1) {
int c; 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 #ifdef CONFIG_SUPPORT_CHMAP
"m:" "m:"
#endif #endif
@ -1114,8 +1117,6 @@ int main(int argc, char *argv[]) {
break; break;
case 'f': case 'f':
freq = atof(optarg); freq = atof(optarg);
freq = freq < 30.0 ? 30.0 : freq;
freq = freq > 5000.0 ? 5000.0 : freq;
break; break;
case 'b': case 'b':
buffer_time = atoi(optarg); buffer_time = atoi(optarg);
@ -1173,6 +1174,9 @@ int main(int argc, char *argv[]) {
case 'd': case 'd':
debug = 1; debug = 1;
break; break;
case 'X':
force_frequency = 1;
break;
#ifdef CONFIG_SUPPORT_CHMAP #ifdef CONFIG_SUPPORT_CHMAP
case 'm': case 'm':
chmap = optarg; chmap = optarg;
@ -1190,6 +1194,13 @@ int main(int argc, char *argv[]) {
exit(EXIT_SUCCESS); 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) if (test_type == TEST_WAV)
format = SND_PCM_FORMAT_S16_LE; /* fixed format */ format = SND_PCM_FORMAT_S16_LE; /* fixed format */