Currently speaker-test only uses channel names retrieved by snd_pcm_chmap_long_name() when a channel map has been manually set.
However, the device may provide a default (or fixed) channel map that differs from the traditional ALSA map, in which case wrong channel names are shown.
Fix that by always using the name from the channel map when a channel map is present.
Note that the names retrieved by snd_pcm_chmap_long_name() are not currently localized via gettext.
Also note that Linux kernel HDMI driver reported wrong default channel maps before 56cac413dd6d43af8355f5d1f90a199b540f73fc ("ALSA: hda - hdmi: Fix reported channel map on common default layouts").
Signed-off-by: Anssi Hannula anssi.hannula@iki.fi --- speaker-test/speaker-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c index 274007d..82cc3b1 100644 --- a/speaker-test/speaker-test.c +++ b/speaker-test/speaker-test.c @@ -254,7 +254,7 @@ static int get_speaker_channel(int chn) static const char *get_channel_name(int chn) { #ifdef CONFIG_SUPPORT_CHMAP - if (channel_map_set && chn < channel_map->channels) { + if (channel_map && chn < channel_map->channels) { const char *name = snd_pcm_chmap_long_name(channel_map->pos[chn]); return name ? name : "Unknown"; }