[pulseaudio-discuss] [RFC 00/24] Add support for Bluetooth HFP Handsfree Unit implemented in oFono

jprvita at gmail.com jprvita at gmail.com
Tue Mar 26 22:16:39 PDT 2013


From: João Paulo Rechi Vita <jprvita at openbossa.org>

The Bluetooth Handsfree Profile (HFP), role Hansfree (HF), is used when we want
to work as a Hands-free unit to control audio calls performed by an Audio
Gateway (AG), generally a cellular phone.

After the release of BlueZ 5, which added support for external profiles, the
HFP implementation has been moved out of BlueZ and implemented in oFono. A new
D-Bus API has been defined to enable the IPC between oFono's Handsfree Audio
Manager, which takes care of the Bluetooth HFP modems, and a Handsfree Audio
Agent, which in our particular case is PulseAudio.

This series implements support for the HFP HF role in the card representing the
Bluetooth device through a new card profile, "Handsfree Audio Gateway", which
is the name of the role performed by the remote device.

At the moment HFP up to 1.6 is supported, but without wideband speech. Wideband
speech support work is in progress. Also, this series works with kernels < 3.8,
since handling of defer setup of SCO sockets is also a WIP.

This series is based on top of Mikel Astiz' work to add BlueZ 5 support to the
bluetooth modules.

João Paulo Rechi Vita (24):
  bluetooth: Remove unnecessary braces
  bluetooth: Fix identation
  bluetooth: Improve code readability
  bluetooth: Track org.ofono service
  bluetooth: Register Handsfree Audio Agent object path on the bus
  bluetooth: Register Handsfree Audio Agent with oFono
  bluetooth: Unregister Handsfree Audio Agent with oFono
  bluetooth: Implement Handsfree Audio Agent Release()
  bluetooth: List HF cards from oFono
  bluetooth: Parse HF cards properties
  bluetooth: Add new profile type PROFILE_HFP_AG
  bluetooth: Create a pa_bluetooth_transport for each HF card
  bluetooth: Track org.ofono.HandsfreeAudioManager.CardAdded
  bluetooth: Track org.ofono.HandsfreeAudioManager.CardRemoved
  bluetooth: Do not track new UUIDs
  bluetooth: Create card profiles based on transport
  bluetooth: Create card profile for PROFILE_HFP_AG
  bluetooth: Configure transport for PROFILE_HFP_AG
  bluetooth: Create sink and source for PROFILE_HFP_AG
  bluetooth: Implement Handsfree Audio Agent NewConnection()
  bluetooth: Fix stream setup for PROFILE_HFP_AG
  bluetooth: Make the I/O thread aware of PROFILE_HFP_AG
  bluetooth: Suspend source and sink for PROFILE_HFP_AG
  bluetooth: Load module-loopback for hfp_ag

 src/modules/bluetooth/bluetooth-util.c          | 480 ++++++++++++++++++++++--
 src/modules/bluetooth/bluetooth-util.h          |   2 +-
 src/modules/bluetooth/module-bluetooth-device.c | 141 +++----
 src/modules/bluetooth/module-bluetooth-policy.c |   4 +
 4 files changed, 530 insertions(+), 97 deletions(-)

-- 
1.7.11.7



More information about the pulseaudio-discuss mailing list