On Mon, 2012-12-03 at 11:03 +0100, Mikel Astiz wrote: > From: Mikel Astiz <mikel.astiz at bmw-carit.de> > > This second proposal is similar to v0 with the following improvements as suggested by Tanu: > 1. setup_stream() is called directly from thread_func() to avoid a race condition. > 2. The profile switch to "hsp" or "a2dp" now fails if the bt_transport_acquire() fails. This avoids the unlikely but still undesired situation of PA_SUSPEND_IDLE state, which the user could not easily fix. > > From original cover-letter: > > Current module-bluetooth-device relies on module-suspend-on-idle with regard to when the audio-stream (SCO) gets resumed/suspended. The bluetooth card assumes that SCO should be down (i.e. saving battery and radio bandwidth) until somebody starts to use it. > > This can be considered a regresion in case some average users have PulseAudio without module-suspend-on-idle. Therefore, the simplest solution -only affecting the use headsets- would be to start SCO by default, and wait until it gets suspended some seconds later. > > Mikel Astiz (3): > bluetooth: Trivially refactor to call setup_stream() directly > bluetooth: Do not setup stream before thread starts > bluetooth: Request headset audio during profile switch > > src/modules/bluetooth/module-bluetooth-device.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) Thanks, all applied. -- Tanu