diff options
author | David Henningsson <david.henningsson@canonical.com> | 2013-06-10 16:42:48 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2013-06-14 14:05:23 +0200 |
commit | 7ac9508c4e20097290b322c661f550e7c24bfa44 (patch) | |
tree | 9cae6e046cd37338245d917c5f7969fb79400586 | |
parent | 9fe90a020ccd2662120b498e9a5cdd4ea1b959ba (diff) |
speaker-test: Fix wrong wave file played back in chmap setup
When explicitly specifying channel maps, we need to use that when
loading wave files so the correct file is played back.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r-- | speaker-test/speaker-test.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index a41b5bd..d35065f 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -771,8 +771,16 @@ static int setup_wav_file(int chn) if (given_test_wav_file) return check_wav_file(chn, given_test_wav_file); - else - return check_wav_file(chn, wavs[chn]); + +#ifdef CONFIG_SUPPORT_CHMAP + if (channel_map_set && chn < channel_map->channels) { + int channel = channel_map->pos[chn] - SND_CHMAP_FL; + if (channel >= 0 && channel < MAX_CHANNELS) + return check_wav_file(chn, wavs[channel]); + } +#endif + + return check_wav_file(chn, wavs[chn]); } static int read_wav(uint16_t *buf, int channel, int offset, int bufsize) @@ -1179,7 +1187,7 @@ int main(int argc, char *argv[]) { if (test_type == TEST_WAV) { for (chn = 0; chn < channels; chn++) { - if (setup_wav_file(chn) < 0) + if (setup_wav_file(get_speaker_channel(chn)) < 0) prg_exit(EXIT_FAILURE); } } |