From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> This patchset revisits the mapping between Bluetooth (BT) and PulseAudio (PA) states, as well as how the PA infrastructure and APIs fit the BT use-cases, including desktop and IVI use-cases. The topic has already been discussed several times in the mailing-list and IRC. This third proposal (v2) basically includes bugfixes and minor refactorings. The most relevant changes are: 1. Suspend case: now PA_SUSPEND_USER is used to represent audio stream is down (patches v2 12/22 and 15/22), instead of PA_SUSPEND_IDLE as in v1. The exception is when doing gateway role, where we start with PA_SUSPEND_IDLE (see patch v2 20/22). 2. Bug in patch v1 03/18: the patch was less trivial than it seemed first, and has now been rewriten into v2 11/22. 3. Patch v1 16/18 has been dropped since it's not essential now that PA_SUSPEND_USER is being used. Therefore, the updated grouping of the patches would be as follows: - Patches 1..9 propose minor changes, refactoring for later patches and some minor fixes (grouped in the beginning for readability). - Patches 10..15 implement the new proposal for module-bluetooth-device. This is the main contribution of the patchset. - Patches 16..21 focus on the integration with other modules. - Patch 22 is experimental and should not be applied yet. Looking forward for your comments. Mikel Astiz (22): bluetooth: Remove return value of bt_transport_config() bluetooth: Remove return value of setup_stream() bluetooth: Refactor code to helper function bluetooth: Refactor parsing of signal PropertyChanged bluetooth: Fix wrongly set "phone" role for HFGW bluetooth: Fix using garbage memory bluetooth: Fix check if transport exists before acquire sink,source: Support creating suspended sinks and sources bluetooth: Provide dummy set_port callbacks bluetooth: Support port availability flag bluetooth: Config MTU transport after acquire bluetooth: Set profile even if transport not acquired bluetooth: Do not acquire transport during profile change bluetooth: Acquire transport when becomes available bluetooth: Release transport when not available bluetooth: Do not switch to HFGW automatically bluetooth: Do not set profile in bluetooth-discover bluetooth: Avoid suspend-on-idle for HFGW bluetooth: Avoid suspend-on-idle for A2DP source bluetooth: Let suspend-on-idle request audio in headset bluetooth: Add port availability transition policies bluetooth-experimental: Fix race condition using accesstype "?" src/modules/bluetooth/bluetooth-util.c | 1 - src/modules/bluetooth/module-bluetooth-device.c | 437 ++++++++++++++++----- src/modules/bluetooth/module-bluetooth-discover.c | 14 - src/modules/bluetooth/module-bluetooth-policy.c | 94 +++++- src/pulsecore/sink.c | 7 +- src/pulsecore/sink.h | 2 + src/pulsecore/source.c | 7 +- src/pulsecore/source.h | 2 + 8 files changed, 444 insertions(+), 120 deletions(-) -- 1.7.7.6