From 134f27a201c679a3653dc2037dd2ada7556c3ea8 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sun, 3 Jan 2021 08:52:59 +0100 Subject: [PATCH] alsa: log warning for unhandled formats When we can't enumerate a single supported format, log a warning with the supported formats and access. See #526 --- spa/plugins/alsa/alsa-pcm.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c index 23bcd90a1..4c1639c3d 100644 --- a/spa/plugins/alsa/alsa-pcm.c +++ b/spa/plugins/alsa/alsa-pcm.c @@ -335,6 +335,25 @@ spa_alsa_enum_format(struct state *state, int seq, uint32_t start, uint32_t num, } } } + if (j == 0) { + char buf[1024]; + int i, offs; + + for (i = 0, offs = 0; i <= SND_PCM_FORMAT_LAST; i++) { + if (snd_pcm_format_mask_test(fmask, (snd_pcm_format_t)i)) + offs += snprintf(&buf[offs], sizeof(buf) - offs, + "%s ", snd_pcm_format_name((snd_pcm_format_t)i)); + } + spa_log_warn(state->log, "unsupported card: formats:%s", buf); + + for (i = 0, offs = 0; i <= SND_PCM_ACCESS_LAST; i++) { + if (snd_pcm_access_mask_test(amask, (snd_pcm_access_t)i)) + offs += snprintf(&buf[offs], sizeof(buf) - offs, + "%s ", snd_pcm_access_name((snd_pcm_access_t)i)); + } + spa_log_warn(state->log, "unsupported card: access:%s", buf); + return -ENOTSUP; + } if (j > 1) choice->body.type = SPA_CHOICE_Enum; spa_pod_builder_pop(&b, &f[1]);