summaryrefslogtreecommitdiff
path: root/speaker-test
diff options
context:
space:
mode:
authorDavid Henningsson <david.henningsson@canonical.com>2013-06-10 16:42:48 +0200
committerJaroslav Kysela <perex@perex.cz>2013-06-14 14:05:23 +0200
commit7ac9508c4e20097290b322c661f550e7c24bfa44 (patch)
tree9cae6e046cd37338245d917c5f7969fb79400586 /speaker-test
parent9fe90a020ccd2662120b498e9a5cdd4ea1b959ba (diff)
downloadalsa-utils-7ac9508c4e20097290b322c661f550e7c24bfa44.tar.gz
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>
Diffstat (limited to 'speaker-test')
-rw-r--r--speaker-test/speaker-test.c14
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);
}
}