Hi Mikel, On Fri, Aug 31, 2012 at 1:50 PM, Mikel Astiz <mikel.astiz.oss at gmail.com> wrote: > From: Mikel Astiz <mikel.astiz at bmw-carit.de> > > 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 Ack 1-21, for 22 I would wait until we have it implement in BlueZ. -- Luiz Augusto von Dentz