From b3f8a4b99bcf6dc42347c7bb633d702f49c89dc8 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 11 Jan 2021 15:39:48 +0100 Subject: [PATCH] acp: update pcm proplist for UCM as well Update the properties we get from the pcm handle right before we close the handle. Also set properties on the UCM devices. See #524 --- spa/plugins/alsa/acp/alsa-mixer.c | 4 ++-- spa/plugins/alsa/acp/alsa-ucm.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/spa/plugins/alsa/acp/alsa-mixer.c b/spa/plugins/alsa/acp/alsa-mixer.c index 217617943..c950e12e0 100644 --- a/spa/plugins/alsa/acp/alsa-mixer.c +++ b/spa/plugins/alsa/acp/alsa-mixer.c @@ -4995,6 +4995,7 @@ static void profile_finalize_probing(pa_alsa_profile *to_be_finalized, pa_alsa_p if (next && next->output_mappings && pa_idxset_get_by_data(next->output_mappings, m, NULL)) continue; + pa_alsa_init_proplist_pcm(NULL, m->output_proplist, m->output_pcm); snd_pcm_close(m->output_pcm); m->output_pcm = NULL; } @@ -5014,6 +5015,7 @@ static void profile_finalize_probing(pa_alsa_profile *to_be_finalized, pa_alsa_p if (next && next->input_mappings && pa_idxset_get_by_data(next->input_mappings, m, NULL)) continue; + pa_alsa_init_proplist_pcm(NULL, m->input_proplist, m->input_pcm); snd_pcm_close(m->input_pcm); m->input_pcm = NULL; } @@ -5239,7 +5241,6 @@ void pa_alsa_profile_set_probe( if (m->output_pcm) { found_output |= !p->fallback_output; mapping_paths_probe(m, p, PA_ALSA_DIRECTION_OUTPUT, used_paths, mixers); - pa_alsa_init_proplist_pcm(NULL, m->output_proplist, m->output_pcm); } if (p->input_mappings) @@ -5247,7 +5248,6 @@ void pa_alsa_profile_set_probe( if (m->input_pcm) { found_input |= !p->fallback_input; mapping_paths_probe(m, p, PA_ALSA_DIRECTION_INPUT, used_paths, mixers); - pa_alsa_init_proplist_pcm(NULL, m->input_proplist, m->input_pcm); } } diff --git a/spa/plugins/alsa/acp/alsa-ucm.c b/spa/plugins/alsa/acp/alsa-ucm.c index 8bfa298c6..65ad9ea02 100644 --- a/spa/plugins/alsa/acp/alsa-ucm.c +++ b/spa/plugins/alsa/acp/alsa-ucm.c @@ -1905,6 +1905,7 @@ static void profile_finalize_probing(pa_alsa_profile *p) { if (!m->output_pcm) continue; + pa_alsa_init_proplist_pcm(NULL, m->output_proplist, m->output_pcm); snd_pcm_close(m->output_pcm); m->output_pcm = NULL; } @@ -1916,6 +1917,7 @@ static void profile_finalize_probing(pa_alsa_profile *p) { if (!m->input_pcm) continue; + pa_alsa_init_proplist_pcm(NULL, m->input_proplist, m->input_pcm); snd_pcm_close(m->input_pcm); m->input_pcm = NULL; }