[pulseaudio-discuss] [PATCH 1/4] card: Ensure we still pick a profile even if it's unavailable.

Colin Guthrie colin at mageia.org
Fri Nov 15 00:33:37 PST 2013


f434087e42b introduced the potential to not select a card profile if
all the profiles were marked as unavailable.

While this is very unlikely, it's a theoretical posibility, so if the
initial choice of a profile fails, try harder.
---
 src/pulsecore/card.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index 4ae16c2..03c0bb6 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -202,6 +202,12 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
             if (!c->active_profile || profile->priority > c->active_profile->priority)
                 c->active_profile = profile;
         }
+        /* If all profiles are not available, then we still need to pick one */
+        if (!c->active_profile) {
+            PA_HASHMAP_FOREACH(profile, c->profiles, state)
+                if (!c->active_profile || profile->priority > c->active_profile->priority)
+                    c->active_profile = profile;
+        }
         pa_assert(c->active_profile);
     }
 
-- 
1.8.4.3



More information about the pulseaudio-discuss mailing list