[pulseaudio-commits] src/modules

Tanu Kaskinen tanuk at kemper.freedesktop.org
Sun Sep 3 09:51:15 UTC 2017


 src/modules/bluetooth/module-bluez5-device.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

New commits:
commit 44d03c0a46a819dcee468a1393286b2be1689983
Author: Georg Chini <georg at chini.tk>
Date:   Sat Sep 2 21:46:04 2017 +0200

    bluez5-device: lower sink/source priority for Audio gateway or a2dp source
    
    When a phone is connected via bluetooth and switches to HFP, the sinks
    and sources will have higher priority than the built-in devices.
    Therefore they are chosen as default and module-bluetooth-policy will
    incorrectly insert loopback modules that loop the phone back to itself.
    
    This patch fixes the problem by lowering the priority of sink and source
    if PulseAudio is in the headset role. The priority is also lowered if the
    device is an a2dp source. In both cases it does not make sense to make the
    source or sink default unless there is no other sound device available.

diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
index 12a49848..c0e681b1 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
@@ -1607,6 +1607,12 @@ static int start_thread(struct userdata *u) {
     if (u->sink) {
         pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq);
         pa_sink_set_rtpoll(u->sink, u->rtpoll);
+
+        /* If we are in the headset role, the sink should not become default
+         * unless there is no other sound device available. */
+        if (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY)
+            u->sink->priority = 1500;
+
         pa_sink_put(u->sink);
 
         if (u->sink->set_volume)
@@ -1616,6 +1622,13 @@ static int start_thread(struct userdata *u) {
     if (u->source) {
         pa_source_set_asyncmsgq(u->source, u->thread_mq.inq);
         pa_source_set_rtpoll(u->source, u->rtpoll);
+
+        /* If we are in the headset role or the device is an a2dp source,
+         * the source should not become default unless there is no other
+         * sound device available. */
+        if (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY || u->profile == PA_BLUETOOTH_PROFILE_A2DP_SOURCE)
+            u->source->priority = 1500;
+
         pa_source_put(u->source);
 
         if (u->source->set_volume)



More information about the pulseaudio-commits mailing list