Loading system/bta/hh/bta_hh_act.cc +39 −16 Original line number Diff line number Diff line Loading @@ -1017,33 +1017,56 @@ static uint8_t convert_api_sndcmd_param(const tBTA_HH_CMD_DATA& api_sndcmd) { } void bta_hh_write_dev_act(tBTA_HH_DEV_CB* p_cb, const tBTA_HH_DATA* p_data) { tBTA_HH_CBDATA cbdata = {BTA_HH_OK, 0}; uint16_t event = (p_data->api_sndcmd.t_type - HID_TRANS_GET_REPORT) + BTA_HH_GET_RPT_EVT; if (p_cb->is_le_device) bta_hh_le_write_dev_act(p_cb, p_data); else { cbdata.handle = p_cb->hid_handle; else { /* match up BTE/BTA report/boot mode def */ const uint8_t api_sndcmd_param = convert_api_sndcmd_param(p_data->api_sndcmd); if (HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type, api_sndcmd_param, p_data->api_sndcmd.data, tHID_STATUS status = HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type, api_sndcmd_param, p_data->api_sndcmd.data, p_data->api_sndcmd.rpt_id, p_data->api_sndcmd.p_data) != HID_SUCCESS) { APPL_TRACE_ERROR("HID_HostWriteDev Error "); cbdata.status = BTA_HH_ERR; p_data->api_sndcmd.p_data); if (status != HID_SUCCESS) { LOG_ERROR("HID_HostWriteDev Error, status: %d", status); if (p_data->api_sndcmd.t_type != HID_TRANS_CONTROL && p_data->api_sndcmd.t_type != HID_TRANS_DATA) (*bta_hh_cb.p_cback)(event, (tBTA_HH*)&cbdata); else if (api_sndcmd_param == BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG) (*bta_hh_cb.p_cback)(BTA_HH_VC_UNPLUG_EVT, (tBTA_HH*)&cbdata); p_data->api_sndcmd.t_type != HID_TRANS_DATA) { BT_HDR cbhdr = { .event = BTA_HH_GET_RPT_EVT, .len = 0, .offset = 0, .layer_specific = 0, }; tBTA_HH cbdata = { .hs_data = { .status = BTA_HH_ERR, .handle = p_cb->hid_handle, .rsp_data = { .p_rpt_data = &cbhdr, }, }, }; (*bta_hh_cb.p_cback)(event, &cbdata); } else if (api_sndcmd_param == BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG) { tBTA_HH cbdata = { .dev_status = { .status = BTA_HH_ERR, .handle = p_cb->hid_handle, }, }; (*bta_hh_cb.p_cback)(BTA_HH_VC_UNPLUG_EVT, &cbdata); } else { LOG_ERROR("skipped executing callback in hid host error handling. " "command type: %d, param: %d", p_data->api_sndcmd.t_type, p_data->api_sndcmd.param); } } else { switch (p_data->api_sndcmd.t_type) { case HID_TRANS_SET_PROTOCOL: Loading Loading
system/bta/hh/bta_hh_act.cc +39 −16 Original line number Diff line number Diff line Loading @@ -1017,33 +1017,56 @@ static uint8_t convert_api_sndcmd_param(const tBTA_HH_CMD_DATA& api_sndcmd) { } void bta_hh_write_dev_act(tBTA_HH_DEV_CB* p_cb, const tBTA_HH_DATA* p_data) { tBTA_HH_CBDATA cbdata = {BTA_HH_OK, 0}; uint16_t event = (p_data->api_sndcmd.t_type - HID_TRANS_GET_REPORT) + BTA_HH_GET_RPT_EVT; if (p_cb->is_le_device) bta_hh_le_write_dev_act(p_cb, p_data); else { cbdata.handle = p_cb->hid_handle; else { /* match up BTE/BTA report/boot mode def */ const uint8_t api_sndcmd_param = convert_api_sndcmd_param(p_data->api_sndcmd); if (HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type, api_sndcmd_param, p_data->api_sndcmd.data, tHID_STATUS status = HID_HostWriteDev(p_cb->hid_handle, p_data->api_sndcmd.t_type, api_sndcmd_param, p_data->api_sndcmd.data, p_data->api_sndcmd.rpt_id, p_data->api_sndcmd.p_data) != HID_SUCCESS) { APPL_TRACE_ERROR("HID_HostWriteDev Error "); cbdata.status = BTA_HH_ERR; p_data->api_sndcmd.p_data); if (status != HID_SUCCESS) { LOG_ERROR("HID_HostWriteDev Error, status: %d", status); if (p_data->api_sndcmd.t_type != HID_TRANS_CONTROL && p_data->api_sndcmd.t_type != HID_TRANS_DATA) (*bta_hh_cb.p_cback)(event, (tBTA_HH*)&cbdata); else if (api_sndcmd_param == BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG) (*bta_hh_cb.p_cback)(BTA_HH_VC_UNPLUG_EVT, (tBTA_HH*)&cbdata); p_data->api_sndcmd.t_type != HID_TRANS_DATA) { BT_HDR cbhdr = { .event = BTA_HH_GET_RPT_EVT, .len = 0, .offset = 0, .layer_specific = 0, }; tBTA_HH cbdata = { .hs_data = { .status = BTA_HH_ERR, .handle = p_cb->hid_handle, .rsp_data = { .p_rpt_data = &cbhdr, }, }, }; (*bta_hh_cb.p_cback)(event, &cbdata); } else if (api_sndcmd_param == BTA_HH_CTRL_VIRTUAL_CABLE_UNPLUG) { tBTA_HH cbdata = { .dev_status = { .status = BTA_HH_ERR, .handle = p_cb->hid_handle, }, }; (*bta_hh_cb.p_cback)(BTA_HH_VC_UNPLUG_EVT, &cbdata); } else { LOG_ERROR("skipped executing callback in hid host error handling. " "command type: %d, param: %d", p_data->api_sndcmd.t_type, p_data->api_sndcmd.param); } } else { switch (p_data->api_sndcmd.t_type) { case HID_TRANS_SET_PROTOCOL: Loading