From f434087e42bca15fae938f6cc01d2875c4c7728b Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Sun, 3 Nov 2013 15:05:34 +0200 Subject: [PATCH] card: Only set active_profile with available profile When a card is being created and no profile has been assigned pa_card_new will attempt to select one from the list but it does that without checking the available flag which can lead to select profiles not available. --- src/pulsecore/card.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c index e6e08364b..4ae16c2f3 100644 --- a/src/pulsecore/card.c +++ b/src/pulsecore/card.c @@ -195,9 +195,14 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { c->save_profile = data->save_profile; if (!c->active_profile) { - PA_HASHMAP_FOREACH(profile, c->profiles, state) + PA_HASHMAP_FOREACH(profile, c->profiles, state) { + if (profile->available == PA_AVAILABLE_NO) + continue; + if (!c->active_profile || profile->priority > c->active_profile->priority) c->active_profile = profile; + } + pa_assert(c->active_profile); } c->userdata = NULL;