No description
Find a file
James Bottomley 66ed99a13d bluetooth: separate HSP and HFP
When all headsets supported both HSP and HFP, life was good and we
only needed to implement HSP in the native backend.  Unfortunately
some headsets have started supporting HFP only.  Unfortuantely, we
can't simply switch to HFP only because that might break older HSP
only headsets meaning we need to support both HSP and HFP separately.

This patch separates them from a joint profile to being two separate
ones.  The older one retains the headset_head_unit name, meaning any
saved parameters will still select this (keeping us backward
compatible).  It also introduces a new headset_handsfree.

For headsets that support both HSP and HFP, the two profiles will
become separately visible and selectable.  This will only matter once
we start adding features to HFP that HSP can't support (like wideband
audio).

Signed-off-by: <James.Bottomley@HansenPartnership.com>

---
v6:

- merge profile switching fixes patch from Rodrigo Araujo

v5:

- rename option to enable_native_hfp_hf
- don't call profile_done for HFP_HF unless it was initialised

v3:

- Update for PA 11.0

v2:

- fold in review feedback
- add global disable option for not registering HFP

v3:

- change parameter to enable_profile_hfp
- update device_supports_profile to be aware of hfp/hsp exclusivity
- change parameter to enable_profile_hfp_hf

bluetooth: separate HSP and HFP (to me merged with this patch)

Hi.

First, just to say that your patches are going great. Finally I can use
the microphone of my HFP only headset (a version of a Bluedio T2+).

So far, I've only encontered one problem: the auto_switch option of
module_bluetooth_policy stops working. Dug through the code and I think
you missed a few spots were you have to hangle the new headset_handsfree
profile in module_bluetooth_policy.c

Applying the following after applying your v5 patches fixed the issue
for me, now when I start making a VOIP call the profile switches to
headset_handsfree and the mic works automatically, and when the call
finishes it reverts back to a2dp.

Thanks and best regards.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491>
2021-02-23 06:54:39 +00:00
.gitlab doc: Add some contributor guidelines 2021-01-04 15:30:38 +00:00
coverity build: Add Coverity scan model 2017-03-06 08:22:33 +01:00
doc message-params: Allow parameter strings to contain escaped curly braces 2020-12-03 14:41:39 +00:00
doxygen pactl: Implement list message-handlers 2020-12-03 14:41:39 +00:00
m4 .gitignore: add m4/extern-inline.m4 and remove-ptcdate.sed 2018-06-21 06:29:32 +05:30
man man: clarify pactl command arguments 2020-12-07 11:47:56 +00:00
po build-sys: drop gconf support 2021-02-12 17:05:07 +00:00
scripts buildsys: meson: implement update-map-file target 2021-01-18 17:57:41 +00:00
shell-completion fix handling of symbolic port names in zsh completion 2021-02-15 15:06:35 +00:00
src bluetooth: separate HSP and HFP 2021-02-23 06:54:39 +00:00
vala meson: Install vala apis 2019-06-08 11:57:00 +02:00
.gitignore gitignore: Add install/ for local prefixed installs 2021-01-19 10:57:17 -05:00
.gitlab-ci.yml ci: Fix comment 2020-10-13 17:14:00 +03:00
.mailmap add a .mailmap file for git shortlog 2009-02-04 22:41:45 +01:00
autogen.sh update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
bootstrap.sh bootstrap.sh: don't set sysconfdir and localstatedir configure options 2019-08-13 16:49:31 +03:00
CODE_OF_CONDUCT.md Adopt a Code of Conduct 2018-09-26 02:39:00 +00:00
configure.ac build-sys: drop gconf support 2021-02-12 17:05:07 +00:00
CONTRIBUTING.md doc: Add some contributor guidelines 2021-01-04 15:30:38 +00:00
git-version-gen git-version-gen: Avoid further processing when tarball-version is present 2015-10-20 16:55:23 +02:00
GPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
LGPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
libpulse-mainloop-glib.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse-simple.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
LICENSE qpaeq: change license from AGPL to LGPL v2.1 2017-09-19 21:29:44 +03:00
Makefile.am build-sys: Add doxygen/meson.build to distfiles 2020-09-20 19:10:03 -04:00
meson.build build-sys: meson: support elogind alternative for module-systemd-login 2021-02-12 20:34:11 +03:00
meson_options.txt build-sys: meson: support elogind alternative for module-systemd-login 2021-02-12 20:34:11 +03:00
NEWS Update NEWS 2021-01-16 20:18:58 +02:00
orc.mak build-sys: Move ORC_SOURCE definitions outside of "if HAVE_ORC" 2014-01-24 22:56:27 +02:00
PROTOCOL protocol-native: add message sending capability 2020-12-03 14:41:39 +00:00
pulseaudio-text.svg merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
pulseaudio.supp Add a Valgrind suppression file 2014-09-21 11:00:51 +03:00
pulseaudio.svg Add PulseAudio logo to tree. 2006-08-28 06:25:41 +00:00
PulseAudioConfig.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
PulseAudioConfigVersion.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
README doc: Update README to point to GitLab 2018-07-30 17:44:20 +05:30
todo build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30

PULSEAUDIO SOUND SERVER

WEB SITE:
	http://pulseaudio.org/

GIT:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git

GitLab:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio

MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

GIT COMMITS MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs

IRC:
	#pulseaudio on irc.freenode.org

FRESHMEAT:
	http://freshmeat.net/projects/pulseaudio/

OHLOH:
	http://www.ohloh.net/projects/4038

AUTHORS:
	Several

HACKING:
	In order to run pulseaudio from the build dir __OPTIMIZE__ should be
	disabled (look at src/pulsecore/core-util.h::pa_run_from_build_tree()),
	this can be done by passing "CFLAGS=-O0" to the configure script:
	  ./autogen.sh
	  CFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure
	  make
	  ./src/pulseaudio -n -F src/default.pa -p $(pwd)/src/

SPELLING:
        PulseAudio