f9c7ffa9b6
PulseAudio is used for handling all audio on postmarketOS. This also involves Bluetooth audio such as A2DP, HSP and HFP audio. In the case of HFP/HSP, the HF and AG can interact with each other through AT commands defined in the Bluetooth HFP 1.8 spec. This set of patches implements HFP support to allow Bluetooth devices to accept/reject/hangup calls, dial numbers, DTMF tone generation, query signal strength, roaming status, service status, AG battery level, call status, etc. More details in the upstream MR: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/693 Available in edge for testing this merge request with a broader user base. Not intended for backporting to stable branches. [ci:skip-build]: already built successfully in CI
110 lines
3.7 KiB
Diff
110 lines
3.7 KiB
Diff
From 355c4cc3f70abee505d2aad0a37d453a44ead1c2 Mon Sep 17 00:00:00 2001
|
|
From: Dylan Van Assche <me@dylanvanassche.be>
|
|
Date: Wed, 6 Apr 2022 08:15:13 +0200
|
|
Subject: [PATCH 01/26] bluez5-util: move pa_bluetooth_discovery to header
|
|
|
|
---
|
|
src/modules/bluetooth/bluez5-util.c | 23 -----------------------
|
|
src/modules/bluetooth/bluez5-util.h | 24 ++++++++++++++++++++++++
|
|
src/modules/meson.build | 2 +-
|
|
3 files changed, 25 insertions(+), 24 deletions(-)
|
|
|
|
diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
|
|
index 83f2932e9..2f8d6faf1 100644
|
|
--- a/src/modules/bluetooth/bluez5-util.c
|
|
+++ b/src/modules/bluetooth/bluez5-util.c
|
|
@@ -31,7 +31,6 @@
|
|
#include <pulsecore/core.h>
|
|
#include <pulsecore/core-error.h>
|
|
#include <pulsecore/core-util.h>
|
|
-#include <pulsecore/dbus-shared.h>
|
|
#include <pulsecore/log.h>
|
|
#include <pulsecore/macro.h>
|
|
#include <pulsecore/refcnt.h>
|
|
@@ -128,28 +127,6 @@ static uint16_t volume_to_a2dp_gain(pa_volume_t volume) {
|
|
return gain;
|
|
}
|
|
|
|
-struct pa_bluetooth_discovery {
|
|
- PA_REFCNT_DECLARE;
|
|
-
|
|
- pa_core *core;
|
|
- pa_dbus_connection *connection;
|
|
- bool filter_added;
|
|
- bool matches_added;
|
|
- bool objects_listed;
|
|
- pa_hook hooks[PA_BLUETOOTH_HOOK_MAX];
|
|
- pa_hashmap *adapters;
|
|
- pa_hashmap *devices;
|
|
- pa_hashmap *transports;
|
|
- pa_bluetooth_profile_status_t profiles_status[PA_BLUETOOTH_PROFILE_COUNT];
|
|
-
|
|
- int headset_backend;
|
|
- pa_bluetooth_backend *ofono_backend, *native_backend;
|
|
- PA_LLIST_HEAD(pa_dbus_pending, pending);
|
|
- bool enable_native_hsp_hs;
|
|
- bool enable_native_hfp_hf;
|
|
- bool enable_msbc;
|
|
-};
|
|
-
|
|
static pa_dbus_pending* send_and_add_to_pending(pa_bluetooth_discovery *y, DBusMessage *m,
|
|
DBusPendingCallNotifyFunction func, void *call_data) {
|
|
pa_dbus_pending *p;
|
|
diff --git a/src/modules/bluetooth/bluez5-util.h b/src/modules/bluetooth/bluez5-util.h
|
|
index 86eb6301e..f899d9d0c 100644
|
|
--- a/src/modules/bluetooth/bluez5-util.h
|
|
+++ b/src/modules/bluetooth/bluez5-util.h
|
|
@@ -22,6 +22,7 @@
|
|
***/
|
|
|
|
#include <pulsecore/core.h>
|
|
+#include <pulsecore/dbus-shared.h>
|
|
|
|
#include "a2dp-codec-util.h"
|
|
|
|
@@ -134,6 +135,29 @@ struct pa_bluetooth_transport {
|
|
void *userdata;
|
|
};
|
|
|
|
+struct pa_bluetooth_discovery {
|
|
+ PA_REFCNT_DECLARE;
|
|
+
|
|
+ pa_core *core;
|
|
+ pa_dbus_connection *connection;
|
|
+ bool filter_added;
|
|
+ bool matches_added;
|
|
+ bool objects_listed;
|
|
+ pa_hook hooks[PA_BLUETOOTH_HOOK_MAX];
|
|
+ pa_hashmap *adapters;
|
|
+ pa_hashmap *devices;
|
|
+ pa_hashmap *transports;
|
|
+ pa_bluetooth_profile_status_t profiles_status[PA_BLUETOOTH_PROFILE_COUNT];
|
|
+
|
|
+ int headset_backend;
|
|
+ pa_bluetooth_backend *ofono_backend, *native_backend;
|
|
+ PA_LLIST_HEAD(pa_dbus_pending, pending);
|
|
+ bool enable_native_hsp_hs;
|
|
+ bool enable_native_hfp_hf;
|
|
+ bool enable_msbc;
|
|
+};
|
|
+
|
|
+
|
|
struct pa_bluetooth_device {
|
|
pa_bluetooth_discovery *discovery;
|
|
pa_bluetooth_adapter *adapter;
|
|
diff --git a/src/modules/meson.build b/src/modules/meson.build
|
|
index 1ae172971..08c754948 100644
|
|
--- a/src/modules/meson.build
|
|
+++ b/src/modules/meson.build
|
|
@@ -123,7 +123,7 @@ if cdata.has('HAVE_BLUEZ_5')
|
|
all_modules += [
|
|
[ 'module-bluetooth-discover', 'bluetooth/module-bluetooth-discover.c' ],
|
|
[ 'module-bluetooth-policy', 'bluetooth/module-bluetooth-policy.c', [], [], [dbus_dep] ],
|
|
- [ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [], libbluez5_util ],
|
|
+ [ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [dbus_dep], libbluez5_util ],
|
|
[ 'module-bluez5-discover', 'bluetooth/module-bluez5-discover.c', [], [], [dbus_dep], libbluez5_util ],
|
|
]
|
|
endif
|
|
--
|
|
2.35.1
|
|
|