diff options
author | Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com> | 2013-11-13 11:25:27 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-11-13 13:15:11 +0200 |
commit | a7579647d7ba58b7199d5551dbca96e1af3c6fe7 (patch) | |
tree | fc061d172706a8c957f7f426692efb856ec473d3 /android/hal-pan.c | |
parent | fcf2331ada5d09140393f35bbd2d634803407320 (diff) | |
download | bluez-a7579647d7ba58b7199d5551dbca96e1af3c6fe7.tar.gz |
android/pan: Handle connection and control state notifications
Diffstat (limited to 'android/hal-pan.c')
-rw-r--r-- | android/hal-pan.c | 31 |
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) |