From 209f302f7be5a7760e5e941b4f609976715ad778 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 28 Oct 2013 14:09:04 +0200 Subject: [PATCH] android/hal-pan: Add implementation of .get_local_role --- android/hal-msg.h | 5 +++++ android/hal-pan.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/android/hal-msg.h b/android/hal-msg.h index 0987eec48..350cec1d6 100644 --- a/android/hal-msg.h +++ b/android/hal-msg.h @@ -297,6 +297,11 @@ struct hal_cmd_pan_enable { uint8_t local_role; } __attribute__((packed)); +#define HAL_OP_PAN_GET_ROLE 0x02 +struct hal_rsp_pan_get_role { + uint8_t local_role; +} __attribute__((packed)); + /* Notifications and confirmations */ diff --git a/android/hal-pan.c b/android/hal-pan.c index 8fb2563cd..c8dcdec75 100644 --- a/android/hal-pan.c +++ b/android/hal-pan.c @@ -47,12 +47,21 @@ static bt_status_t pan_enable(int local_role) static int pan_get_local_role(void) { + struct hal_rsp_pan_get_role rsp; + size_t len = sizeof(rsp); + bt_status_t status; + DBG(""); if (!interface_ready()) return BTPAN_ROLE_NONE; - return BTPAN_ROLE_NONE; + status = hal_ipc_cmd(HAL_SERVICE_ID_PAN, HAL_OP_PAN_GET_ROLE, 0, NULL, + &len, &rsp, NULL); + if (status != BT_STATUS_SUCCESS) + return BTPAN_ROLE_NONE; + + return rsp.local_role; } static bt_status_t pan_connect(const bt_bdaddr_t *bd_addr, int local_role, -- 2.47.3