summaryrefslogtreecommitdiff
path: root/android/hal-pan.c
diff options
context:
space:
mode:
authorRavi kumar Veeramally <ravikumar.veeramally@linux.intel.com>2013-11-13 11:25:27 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2013-11-13 13:15:11 +0200
commita7579647d7ba58b7199d5551dbca96e1af3c6fe7 (patch)
treefc061d172706a8c957f7f426692efb856ec473d3 /android/hal-pan.c
parentfcf2331ada5d09140393f35bbd2d634803407320 (diff)
downloadbluez-a7579647d7ba58b7199d5551dbca96e1af3c6fe7.tar.gz
android/pan: Handle connection and control state notifications
Diffstat (limited to 'android/hal-pan.c')
-rw-r--r--android/hal-pan.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/android/hal-pan.c b/android/hal-pan.c
index 851c5d2ab..2bc560e2c 100644
--- a/android/hal-pan.c
+++ b/android/hal-pan.c
@@ -31,10 +31,41 @@ static bool interface_ready(void)
return cbs != NULL;
}
+static void handle_conn_state(void *buf)
+{
+ struct hal_ev_pan_conn_state *ev = buf;
+
+ if (cbs->connection_state_cb)
+ cbs->connection_state_cb(ev->state, ev->status,
+ (bt_bdaddr_t *) ev->bdaddr,
+ ev->local_role, ev->remote_role);
+}
+
+static void handle_ctrl_state(void *buf)
+{
+ struct hal_ev_pan_ctrl_state *ev = buf;
+
+ if (cbs->control_state_cb)
+ cbs->control_state_cb(ev->state, ev->status,
+ ev->local_role, (char *)ev->name);
+}
+
void bt_notify_pan(uint8_t opcode, void *buf, uint16_t len)
{
if (!interface_ready())
return;
+
+ switch (opcode) {
+ case HAL_EV_PAN_CONN_STATE:
+ handle_conn_state(buf);
+ break;
+ case HAL_EV_PAN_CTRL_STATE:
+ handle_ctrl_state(buf);
+ break;
+ default:
+ DBG("Unhandled callback opcode=0x%x", opcode);
+ break;
+ }
}
static bt_status_t pan_enable(int local_role)