linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Fix missing HFP WBS callback
@ 2015-08-28 10:40 Will Wang
  2015-08-28 10:40 ` [PATCH v2 1/3] android/hal-ipc-api: " Will Wang
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Will Wang @ 2015-08-28 10:40 UTC (permalink / raw)
  To: marcel, gustavo, johan.hedberg; +Cc: linux-bluetooth, Will Wang

Hi,

This set of patches:
- Add HFP Wideband speech(WBS) callback function for Android.
- Add a new opcode 0x91 for WBS Command notification.

v1->v2:
- Move #if into function to avoid breaking compilation
  on Android KitKat.

The patches has been tested on Nexus 5 with Android 5.0.1 Lollipop,
and passed the PTS test "TC_AG_ACC_BI_12_I", the Android framework
outputs log such as:

08-20 18:29:39.932 E/BluetoothHeadsetServiceJni( 1442): mozzz: wbs_callback
...
08-20 18:29:39.933 D/HeadsetStateMachine( 1442): EVENT_TYPE_WBS codec is 1
08-20 18:29:39.935 D/HeadsetStateMachine( 1442): AudioManager.setParameters bt_wbs=off for PTS-HFP-MOZILLA-TPE-PC - 00:1B:DC:07:2F:9A
08-20 18:29:39.936 D/audio_hw_primary(  215): adev_set_parameters: enter: bt_wbs=off

Thanks Szymon Janc(:sjanc)'s speedy reply of the patch process questions
on IRC, and Shawn Huang(:shawnjohnjr)'s technical support.


Will Wang (3):
  android/hal-ipc-api: Fix missing HFP WBS callback
  android/hal-handsfree: Fix missing HFP WBS callback
  android/handsfree: Fix missing HFP WBS callback

 android/hal-handsfree.c | 12 ++++++++++++
 android/hal-ipc-api.txt |  8 ++++++++
 android/hal-msg.h       |  6 ++++++
 android/handsfree.c     |  8 ++++++++
 4 files changed, 34 insertions(+)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/3] android/hal-ipc-api: Fix missing HFP WBS callback
  2015-08-28 10:40 [PATCH v2 0/3] Fix missing HFP WBS callback Will Wang
@ 2015-08-28 10:40 ` Will Wang
  2015-08-28 10:40 ` [PATCH v2 2/3] android/hal-handsfree: " Will Wang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Will Wang @ 2015-08-28 10:40 UTC (permalink / raw)
  To: marcel, gustavo, johan.hedberg; +Cc: linux-bluetooth, Will Wang

Add definition of HFP WBS Command notification
---
 android/hal-ipc-api.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/android/hal-ipc-api.txt b/android/hal-ipc-api.txt
index 503b47a..e3b7798 100644
--- a/android/hal-ipc-api.txt
+++ b/android/hal-ipc-api.txt
@@ -1068,6 +1068,14 @@ Notifications:
 
 		Notification parameters: Remote address (6 octets)
 
+	Opcode 0x91 - WBS Command notification
+
+		Notification parameters: WBS types (1 octet)
+		                         Remote address (6 octets)
+
+		Valid WBS types: 0x00 = None
+		                 0x01 = No
+		                 0x02 = Yes
 
 Bluetooth Advanced Audio HAL (ID 6)
 Bluetooth Advanced Audio Sink HAL (ID 13)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/3] android/hal-handsfree: Fix missing HFP WBS callback
  2015-08-28 10:40 [PATCH v2 0/3] Fix missing HFP WBS callback Will Wang
  2015-08-28 10:40 ` [PATCH v2 1/3] android/hal-ipc-api: " Will Wang
@ 2015-08-28 10:40 ` Will Wang
  2015-08-28 10:40 ` [PATCH v2 3/3] android/handsfree: " Will Wang
  2015-09-01 19:05 ` [PATCH v2 0/3] " Szymon Janc
  3 siblings, 0 replies; 5+ messages in thread
From: Will Wang @ 2015-08-28 10:40 UTC (permalink / raw)
  To: marcel, gustavo, johan.hedberg; +Cc: linux-bluetooth, Will Wang

---
 android/hal-handsfree.c | 12 ++++++++++++
 android/hal-msg.h       |  6 ++++++
 2 files changed, 18 insertions(+)

diff --git a/android/hal-handsfree.c b/android/hal-handsfree.c
index 279b26a..3847901 100644
--- a/android/hal-handsfree.c
+++ b/android/hal-handsfree.c
@@ -153,6 +153,16 @@ static void handle_nrec(void *buf, uint16_t len, int fd)
 #endif
 }
 
+static void handle_wbs(void *buf, uint16_t len, int fd)
+{
+#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
+	struct hal_ev_handsfree_wbs *ev = buf;
+
+	if (cbs->wbs_cb)
+		cbs->wbs_cb(ev->wbs, (bt_bdaddr_t *) (ev->bdaddr));
+#endif
+}
+
 static void handle_chld(void *buf, uint16_t len, int fd)
 {
 	struct hal_ev_handsfree_chld *ev = buf;
@@ -289,6 +299,8 @@ static const struct hal_ipc_handler ev_handlers[] = {
 	/* HAL_EV_HANDSFREE_HSP_KEY_PRESS */
 	{ handle_hsp_key_press, false,
 				sizeof(struct hal_ev_handsfree_hsp_key_press) },
+	/* HAL_EV_HANDSFREE_WBS */
+	{ handle_wbs, false, sizeof(struct hal_ev_handsfree_wbs) },
 };
 
 static uint8_t get_mode(void)
diff --git a/android/hal-msg.h b/android/hal-msg.h
index 698f45a..ea79fa7 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -1638,6 +1638,12 @@ struct hal_ev_handsfree_hsp_key_press {
 	uint8_t bdaddr[6];
 } __attribute__((packed));
 
+#define HAL_EV_HANDSFREE_WBS		0x91
+struct hal_ev_handsfree_wbs {
+	uint8_t wbs;
+	uint8_t bdaddr[6];
+} __attribute__((packed));
+
 #define HAL_AVRCP_FEATURE_NONE			0x00
 #define HAL_AVRCP_FEATURE_METADATA		0x01
 #define HAL_AVRCP_FEATURE_ABSOLUTE_VOLUME	0x02
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 3/3] android/handsfree: Fix missing HFP WBS callback
  2015-08-28 10:40 [PATCH v2 0/3] Fix missing HFP WBS callback Will Wang
  2015-08-28 10:40 ` [PATCH v2 1/3] android/hal-ipc-api: " Will Wang
  2015-08-28 10:40 ` [PATCH v2 2/3] android/hal-handsfree: " Will Wang
@ 2015-08-28 10:40 ` Will Wang
  2015-09-01 19:05 ` [PATCH v2 0/3] " Szymon Janc
  3 siblings, 0 replies; 5+ messages in thread
From: Will Wang @ 2015-08-28 10:40 UTC (permalink / raw)
  To: marcel, gustavo, johan.hedberg; +Cc: linux-bluetooth, Will Wang

---
 android/handsfree.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/android/handsfree.c b/android/handsfree.c
index f297926..919728e 100644
--- a/android/handsfree.c
+++ b/android/handsfree.c
@@ -1067,6 +1067,7 @@ static void at_cmd_bcs(struct hfp_context *result, enum hfp_gw_cmd_type type,
 								void *user_data)
 {
 	struct hf_device *dev = user_data;
+	struct hal_ev_handsfree_wbs ev;
 	unsigned int val;
 
 	DBG("");
@@ -1085,6 +1086,13 @@ static void at_cmd_bcs(struct hfp_context *result, enum hfp_gw_cmd_type type,
 			break;
 		}
 
+		ev.wbs = val;
+		bdaddr2android(&dev->bdaddr, ev.bdaddr);
+
+		ipc_send_notif(hal_ipc, HAL_SERVICE_ID_HANDSFREE,
+					HAL_EV_HANDSFREE_WBS, sizeof(ev), &ev);
+
+
 		dev->proposed_codec = 0;
 		dev->negotiated_codec = val;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/3] Fix missing HFP WBS callback
  2015-08-28 10:40 [PATCH v2 0/3] Fix missing HFP WBS callback Will Wang
                   ` (2 preceding siblings ...)
  2015-08-28 10:40 ` [PATCH v2 3/3] android/handsfree: " Will Wang
@ 2015-09-01 19:05 ` Szymon Janc
  3 siblings, 0 replies; 5+ messages in thread
From: Szymon Janc @ 2015-09-01 19:05 UTC (permalink / raw)
  To: Will Wang; +Cc: marcel, gustavo, johan.hedberg, linux-bluetooth

Hi Will,

On Friday, August 28, 2015 06:40:27 PM Will Wang wrote:
> Hi,
> 
> This set of patches:
> - Add HFP Wideband speech(WBS) callback function for Android.
> - Add a new opcode 0x91 for WBS Command notification.
> 
> v1->v2:
> - Move #if into function to avoid breaking compilation
>   on Android KitKat.
> 
> The patches has been tested on Nexus 5 with Android 5.0.1 Lollipop,
> and passed the PTS test "TC_AG_ACC_BI_12_I", the Android framework
> outputs log such as:
> 
> 08-20 18:29:39.932 E/BluetoothHeadsetServiceJni( 1442): mozzz: wbs_callback
> ...
> 08-20 18:29:39.933 D/HeadsetStateMachine( 1442): EVENT_TYPE_WBS codec is 1
> 08-20 18:29:39.935 D/HeadsetStateMachine( 1442): AudioManager.setParameters
> bt_wbs=off for PTS-HFP-MOZILLA-TPE-PC - 00:1B:DC:07:2F:9A 08-20
> 18:29:39.936 D/audio_hw_primary(  215): adev_set_parameters: enter:
> bt_wbs=off
> 
> Thanks Szymon Janc(:sjanc)'s speedy reply of the patch process questions
> on IRC, and Shawn Huang(:shawnjohnjr)'s technical support.
> 
> 
> Will Wang (3):
>   android/hal-ipc-api: Fix missing HFP WBS callback
>   android/hal-handsfree: Fix missing HFP WBS callback
>   android/handsfree: Fix missing HFP WBS callback
> 
>  android/hal-handsfree.c | 12 ++++++++++++
>  android/hal-ipc-api.txt |  8 ++++++++
>  android/hal-msg.h       |  6 ++++++
>  android/handsfree.c     |  8 ++++++++
>  4 files changed, 34 insertions(+)

Patches applied, thanks.

-- 
BR
Szymon Janc

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-01 19:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28 10:40 [PATCH v2 0/3] Fix missing HFP WBS callback Will Wang
2015-08-28 10:40 ` [PATCH v2 1/3] android/hal-ipc-api: " Will Wang
2015-08-28 10:40 ` [PATCH v2 2/3] android/hal-handsfree: " Will Wang
2015-08-28 10:40 ` [PATCH v2 3/3] android/handsfree: " Will Wang
2015-09-01 19:05 ` [PATCH v2 0/3] " Szymon Janc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).