Skip to content

Commit d7dd068

Browse files
committed
fix(bt/bluedroid): Fixed AVRCP compatibility issue on absolute volume synchronization
1 parent ec8de8a commit d7dd068

File tree

1 file changed

+7
-12
lines changed
  • components/bt/host/bluedroid/btc/profile/std/avrc

1 file changed

+7
-12
lines changed

components/bt/host/bluedroid/btc/profile/std/avrc/btc_avrc.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,7 @@ bool btc_avrc_ct_init_p(void)
175175
bool btc_avrc_tg_connected_p(void)
176176
{
177177
return (s_rc_tg_init == BTC_RC_TG_INIT_MAGIC) &&
178-
(btc_rc_cb.rc_connected == TRUE) &&
179-
(btc_rc_cb.rc_features & BTA_AV_FEAT_RCCT);
178+
(btc_rc_cb.rc_connected == TRUE);
180179
}
181180

182181
bool btc_avrc_ct_connected_p(void)
@@ -507,7 +506,7 @@ static void handle_rc_connect (tBTA_AV_RC_OPEN *p_rc_open)
507506
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, &param);
508507
}
509508

510-
if (p_rc_open->peer_features & BTA_AV_FEAT_RCCT) {
509+
if (btc_avrc_tg_init_p()) {
511510
esp_avrc_tg_cb_param_t param;
512511
memset(&param, 0, sizeof(esp_avrc_tg_cb_param_t));
513512
param.conn_stat.connected = true;
@@ -580,7 +579,7 @@ static void handle_rc_disconnect (tBTA_AV_RC_CLOSE *p_rc_close)
580579
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, &param);
581580
}
582581

583-
if (rc_features & BTA_AV_FEAT_RCCT) {
582+
if (btc_avrc_tg_init_p()) {
584583
esp_avrc_tg_cb_param_t param;
585584
memset(&param, 0, sizeof(esp_avrc_ct_cb_param_t));
586585
param.conn_stat.connected = false;
@@ -1006,14 +1005,10 @@ void btc_rc_handler(tBTA_AV_EVT event, tBTA_AV *p_data)
10061005
memcpy(param.conn_stat.remote_bda, btc_rc_cb.rc_addr, sizeof(esp_bd_addr_t));
10071006
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, &param);
10081007
}
1009-
if ((p_data->rc_feat.peer_features & BTA_AV_FEAT_RCCT) &&
1010-
!(old_feats & BTA_AV_FEAT_RCCT)) {
1011-
esp_avrc_tg_cb_param_t param;
1012-
memset(&param, 0, sizeof(esp_avrc_ct_cb_param_t));
1013-
param.conn_stat.connected = true;
1014-
memcpy(param.conn_stat.remote_bda, btc_rc_cb.rc_addr, sizeof(esp_bd_addr_t));
1015-
btc_avrc_tg_cb_to_app(ESP_AVRC_TG_CONNECTION_STATE_EVT, &param);
1016-
}
1008+
/**
1009+
* @note ESP_AVRC_TG_CONNECTION_STATE_EVT has been reported on rc connect/disconnect event,
1010+
* it doesn't rely on the SDP results.
1011+
*/
10171012
} while (0);
10181013
btc_rc_cb.rc_features = p_data->rc_feat.peer_features;
10191014
btc_rc_cb.rc_ct_features = p_data->rc_feat.peer_ct_features;

0 commit comments

Comments
 (0)