Loading system/bta/ag/bta_ag_api.c +11 −0 Original line number Diff line number Diff line Loading @@ -287,3 +287,14 @@ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec) bta_sys_sendmsg(p_buf); } void BTA_AgSetScoAllowed(bool value) { tBTA_AG_API_SET_SCO_ALLOWED *p_buf = (tBTA_AG_API_SET_SCO_ALLOWED *)osi_malloc(sizeof(tBTA_AG_API_SET_SCO_ALLOWED)); p_buf->hdr.event = BTA_AG_API_SET_SCO_ALLOWED_EVT; p_buf->value = value; bta_sys_sendmsg(p_buf); } system/bta/ag/bta_ag_int.h +10 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,8 @@ enum /* these events are handled outside of the state machine */ BTA_AG_API_ENABLE_EVT, BTA_AG_API_DISABLE_EVT BTA_AG_API_DISABLE_EVT, BTA_AG_API_SET_SCO_ALLOWED_EVT }; /* Actions to perform after a SCO event */ Loading Loading @@ -181,6 +182,13 @@ typedef struct tBTA_AG_PEER_CODEC codec; } tBTA_AG_API_SETCODEC; /* data type for BTA_AG_API_SET_SCO_ALLOWED_EVT */ typedef struct { BT_HDR hdr; bool value; } tBTA_AG_API_SET_SCO_ALLOWED; /* data type for BTA_AG_DISC_RESULT_EVT */ typedef struct { Loading Loading @@ -423,4 +431,5 @@ extern void bta_ag_ci_sco_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_set_esco_param(BOOLEAN set_reset, tBTM_ESCO_PARAMS *param); extern void bta_ag_ci_rx_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_set_sco_allowed(tBTA_AG_DATA *p_data); #endif /* BTA_AG_INT_H */ system/bta/ag/bta_ag_main.c +4 −0 Original line number Diff line number Diff line Loading @@ -906,6 +906,10 @@ BOOLEAN bta_ag_hdl_event(BT_HDR *p_msg) bta_ag_api_result((tBTA_AG_DATA *) p_msg); break; case BTA_AG_API_SET_SCO_ALLOWED_EVT: bta_ag_set_sco_allowed((tBTA_AG_DATA *) p_msg); break; /* all others reference scb by handle */ default: if ((p_scb = bta_ag_scb_by_idx(p_msg->layer_specific)) != NULL) Loading system/bta/ag/bta_ag_sco.c +14 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ static char *bta_ag_sco_evt_str(UINT8 event); static char *bta_ag_sco_state_str(UINT8 state); #endif static bool sco_allowed = true; #define BTA_AG_NO_EDR_ESCO (BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 | \ BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | \ BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | \ Loading Loading @@ -1348,6 +1350,12 @@ void bta_ag_sco_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) UINT8 event; UNUSED(p_data); if (!sco_allowed) { APPL_TRACE_DEBUG("%s not opening sco, by policy", __func__); return; } /* if another scb using sco, this is a transfer */ if (bta_ag_cb.sco.p_curr_scb != NULL && bta_ag_cb.sco.p_curr_scb != p_scb) { Loading Loading @@ -1672,6 +1680,12 @@ void bta_ag_set_esco_param(BOOLEAN set_reset, tBTM_ESCO_PARAMS *param) } } void bta_ag_set_sco_allowed(tBTA_AG_DATA *p_data) { sco_allowed = ((tBTA_AG_API_SET_SCO_ALLOWED *) p_data)->value; APPL_TRACE_DEBUG(sco_allowed ? "sco now allowed" : "sco now not allowed"); } /******************************************************************************* ** Debugging functions *******************************************************************************/ Loading system/bta/include/bta_ag_api.h +2 −0 Original line number Diff line number Diff line Loading @@ -580,6 +580,8 @@ void BTA_AgResult(UINT16 handle, tBTA_AG_RES result, tBTA_AG_RES_DATA *p_data); *******************************************************************************/ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec); void BTA_AgSetScoAllowed(bool value); #ifdef __cplusplus } #endif Loading Loading
system/bta/ag/bta_ag_api.c +11 −0 Original line number Diff line number Diff line Loading @@ -287,3 +287,14 @@ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec) bta_sys_sendmsg(p_buf); } void BTA_AgSetScoAllowed(bool value) { tBTA_AG_API_SET_SCO_ALLOWED *p_buf = (tBTA_AG_API_SET_SCO_ALLOWED *)osi_malloc(sizeof(tBTA_AG_API_SET_SCO_ALLOWED)); p_buf->hdr.event = BTA_AG_API_SET_SCO_ALLOWED_EVT; p_buf->value = value; bta_sys_sendmsg(p_buf); }
system/bta/ag/bta_ag_int.h +10 −1 Original line number Diff line number Diff line Loading @@ -101,7 +101,8 @@ enum /* these events are handled outside of the state machine */ BTA_AG_API_ENABLE_EVT, BTA_AG_API_DISABLE_EVT BTA_AG_API_DISABLE_EVT, BTA_AG_API_SET_SCO_ALLOWED_EVT }; /* Actions to perform after a SCO event */ Loading Loading @@ -181,6 +182,13 @@ typedef struct tBTA_AG_PEER_CODEC codec; } tBTA_AG_API_SETCODEC; /* data type for BTA_AG_API_SET_SCO_ALLOWED_EVT */ typedef struct { BT_HDR hdr; bool value; } tBTA_AG_API_SET_SCO_ALLOWED; /* data type for BTA_AG_DISC_RESULT_EVT */ typedef struct { Loading Loading @@ -423,4 +431,5 @@ extern void bta_ag_ci_sco_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_set_esco_param(BOOLEAN set_reset, tBTM_ESCO_PARAMS *param); extern void bta_ag_ci_rx_data(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_rcvd_slc_ready(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data); extern void bta_ag_set_sco_allowed(tBTA_AG_DATA *p_data); #endif /* BTA_AG_INT_H */
system/bta/ag/bta_ag_main.c +4 −0 Original line number Diff line number Diff line Loading @@ -906,6 +906,10 @@ BOOLEAN bta_ag_hdl_event(BT_HDR *p_msg) bta_ag_api_result((tBTA_AG_DATA *) p_msg); break; case BTA_AG_API_SET_SCO_ALLOWED_EVT: bta_ag_set_sco_allowed((tBTA_AG_DATA *) p_msg); break; /* all others reference scb by handle */ default: if ((p_scb = bta_ag_scb_by_idx(p_msg->layer_specific)) != NULL) Loading
system/bta/ag/bta_ag_sco.c +14 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ static char *bta_ag_sco_evt_str(UINT8 event); static char *bta_ag_sco_state_str(UINT8 state); #endif static bool sco_allowed = true; #define BTA_AG_NO_EDR_ESCO (BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 | \ BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | \ BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | \ Loading Loading @@ -1348,6 +1350,12 @@ void bta_ag_sco_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data) UINT8 event; UNUSED(p_data); if (!sco_allowed) { APPL_TRACE_DEBUG("%s not opening sco, by policy", __func__); return; } /* if another scb using sco, this is a transfer */ if (bta_ag_cb.sco.p_curr_scb != NULL && bta_ag_cb.sco.p_curr_scb != p_scb) { Loading Loading @@ -1672,6 +1680,12 @@ void bta_ag_set_esco_param(BOOLEAN set_reset, tBTM_ESCO_PARAMS *param) } } void bta_ag_set_sco_allowed(tBTA_AG_DATA *p_data) { sco_allowed = ((tBTA_AG_API_SET_SCO_ALLOWED *) p_data)->value; APPL_TRACE_DEBUG(sco_allowed ? "sco now allowed" : "sco now not allowed"); } /******************************************************************************* ** Debugging functions *******************************************************************************/ Loading
system/bta/include/bta_ag_api.h +2 −0 Original line number Diff line number Diff line Loading @@ -580,6 +580,8 @@ void BTA_AgResult(UINT16 handle, tBTA_AG_RES result, tBTA_AG_RES_DATA *p_data); *******************************************************************************/ void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec); void BTA_AgSetScoAllowed(bool value); #ifdef __cplusplus } #endif Loading