[pulseaudio-discuss] [PATCH v1 2/3] bluetooth: Disable profile auto-switch policy for headsets

Mikel Astiz mikel.astiz.oss at gmail.com
Mon Nov 26 09:32:08 PST 2012


From: Mikel Astiz <mikel.astiz at bmw-carit.de>

Given that headsets have just one single port exposing whether the
audio is streaming (playing) or not, it's not possible that
module-bluetooth-policy would distinguish A2DP/HSP cases, and thus
the automatic selection of the card profile is not deterministic.

For this reason, disable the policy entirely for headsets and focus
only on HFGW and A2DP source profiles.
---
 src/modules/bluetooth/module-bluetooth-policy.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/modules/bluetooth/module-bluetooth-policy.c b/src/modules/bluetooth/module-bluetooth-policy.c
index 87a5716..f0bffe9 100644
--- a/src/modules/bluetooth/module-bluetooth-policy.c
+++ b/src/modules/bluetooth/module-bluetooth-policy.c
@@ -187,6 +187,10 @@ static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port
     if (!s || !pa_streq(s, "bluetooth"))
         return PA_HOOK_OK;
 
+    /* Do not automatically switch profiles for headsets, just in case */
+    if (pa_hashmap_get(port->profiles, "hsp") || pa_hashmap_get(port->profiles, "a2dp"))
+        return PA_HOOK_OK;
+
     is_active_profile = card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name);
 
     if (is_active_profile && port->available == PA_PORT_AVAILABLE_YES)
-- 
1.7.11.7



More information about the pulseaudio-discuss mailing list