34 lines
1.2 KiB
Diff
34 lines
1.2 KiB
Diff
|
From 79d8cf24785fc52a3d0cee48590143fb409201b8 Mon Sep 17 00:00:00 2001
|
||
|
From: Dylan Van Assche <me@dylanvanassche.be>
|
||
|
Date: Thu, 14 Apr 2022 19:15:34 +0200
|
||
|
Subject: [PATCH 10/26] bluetooth: support AT+BCC
|
||
|
|
||
|
HFs send AT+BCC to (re)start codec negotiations.
|
||
|
Support this command by (re)setting the codec negotiations state and
|
||
|
reply OK.
|
||
|
---
|
||
|
src/modules/bluetooth/backend-native.c | 7 ++++++-
|
||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/modules/bluetooth/backend-native.c b/src/modules/bluetooth/backend-native.c
|
||
|
index 394c2a4da..89a174f9a 100644
|
||
|
--- a/src/modules/bluetooth/backend-native.c
|
||
|
+++ b/src/modules/bluetooth/backend-native.c
|
||
|
@@ -666,7 +666,12 @@ static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf
|
||
|
c->selected_codec = 1;
|
||
|
|
||
|
/* stateful negotiation */
|
||
|
- if (c->state == 0 && sscanf(buf, "AT+BRSF=%d", &val) == 1) {
|
||
|
+ if (strstr(buf, "AT+BCC")) {
|
||
|
+ pa_log_debug("HF asked to start codec negotiations");
|
||
|
+ c->state = 0;
|
||
|
+ return true;
|
||
|
+ }
|
||
|
+ else if (c->state == 0 && sscanf(buf, "AT+BRSF=%d", &val) == 1) {
|
||
|
c->capabilities = val;
|
||
|
pa_log_info("HFP capabilities returns 0x%x", val);
|
||
|
rfcomm_write_response(fd, "+BRSF: %d", hfp_features);
|
||
|
--
|
||
|
2.35.1
|
||
|
|