} while (0)
static void connection_state_callback(bt_bdaddr_t *bd_addr, bthh_connection_state_t state);
-static void hid_info_callback(bt_bdaddr_t *bd_addr, bthh_hid_info_t hid_info);
+static void hid_info_callback(bt_bdaddr_t *bd_addr, bthh_hid_info_t *hid_info);
static void get_protocol_mode_callback(bt_bdaddr_t *bd_addr, bthh_status_t hh_status, bthh_protocol_mode_t mode);
static void idle_time_callback(bt_bdaddr_t *bd_addr, bthh_status_t hh_status, int idle_rate);
static void get_report_callback(bt_bdaddr_t *bd_addr, bthh_status_t hh_status, uint8_t* rpt_data, int rpt_size);
static const bthh_interface_t * hid_api;
static bthh_callbacks_t sBluetoothHidCallbacks = {
- sizeof(sBluetoothHidCallbacks),
- connection_state_callback,
- hid_info_callback,
- get_protocol_mode_callback,
- idle_time_callback,
- get_report_callback,
- virtual_unplug_callback,
- handshake_callback,
+ .size = sizeof(sBluetoothHidCallbacks),
+ .connection_state_cb = connection_state_callback,
+ .hid_info_cb = hid_info_callback,
+ .protocol_mode_cb = get_protocol_mode_callback,
+ .idle_time_cb = idle_time_callback,
+ .get_report_cb = get_report_callback,
+ .virtual_unplug_cb = virtual_unplug_callback,
+ .handshake_cb = handshake_callback,
};
oal_status_t hid_enable(void)
int ret;
bdstr_t bdstr;
- API_TRACE("len: %d", strlen(report));
+ API_TRACE("len: %zd", strlen(report));
CHECK_OAL_HID_ENABLED();
OAL_CHECK_PARAMETER(address, return);
OAL_CHECK_PARAMETER(report, return);
BT_DBG("%d", state);
+ if (!event)
+ return;
memcpy(event->address.addr, bd_addr->address, BT_ADDRESS_BYTES_NUM);
event->status = OAL_STATUS_SUCCESS;
break;
case BTHH_CONN_STATE_CONNECTING:
case BTHH_CONN_STATE_DISCONNECTING:
+ g_free(event);
return;
case BTHH_CONN_STATE_FAILED_MOUSE_FROM_HOST:
event_type = OAL_EVENT_HID_DISCONNECTED;
case BTHH_CONN_STATE_UNKNOWN:
default:
BT_ERR("Unhandled Connection state %d", state);
+ g_free(event);
return;
}
send_event_bda_trace(event_type, event, sizeof(event_hid_conn_t), (bt_address_t*)bd_addr);
}
-static void hid_info_callback(bt_bdaddr_t *bd_addr, bthh_hid_info_t hid_info)
+static void hid_info_callback(bt_bdaddr_t *bd_addr, bthh_hid_info_t *hid_info)
{
BT_INFO("");
}