diff --git a/android/hal-msg.h b/android/hal-msg.h
index 0987eec..350cec1 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
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 8fb2563..c8dcdec 100644
--- a/android/hal-pan.c
+++ b/android/hal-pan.c
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,