mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
Merge branch 'bugfix/fix_avrc_absolute_volume_compatibility_v5.0' into 'release/v5.0'
bugfix/fix_avrc_absolute_volume_compatibility[backport v5.0] See merge request espressif/esp-idf!34773
This commit is contained in:
@ -170,8 +170,7 @@ bool btc_avrc_ct_init_p(void)
|
|||||||
bool btc_avrc_tg_connected_p(void)
|
bool btc_avrc_tg_connected_p(void)
|
||||||
{
|
{
|
||||||
return (s_rc_tg_init == BTC_RC_TG_INIT_MAGIC) &&
|
return (s_rc_tg_init == BTC_RC_TG_INIT_MAGIC) &&
|
||||||
(btc_rc_cb.rc_connected == TRUE) &&
|
(btc_rc_cb.rc_connected == TRUE);
|
||||||
(btc_rc_cb.rc_features & BTA_AV_FEAT_RCCT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btc_avrc_ct_connected_p(void)
|
bool btc_avrc_ct_connected_p(void)
|
||||||
@ -456,7 +455,7 @@ static void handle_rc_connect (tBTA_AV_RC_OPEN *p_rc_open)
|
|||||||
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_rc_open->peer_features & BTA_AV_FEAT_RCCT) {
|
if (btc_avrc_tg_init_p()) {
|
||||||
esp_avrc_tg_cb_param_t param;
|
esp_avrc_tg_cb_param_t param;
|
||||||
memset(¶m, 0, sizeof(esp_avrc_tg_cb_param_t));
|
memset(¶m, 0, sizeof(esp_avrc_tg_cb_param_t));
|
||||||
param.conn_stat.connected = true;
|
param.conn_stat.connected = true;
|
||||||
@ -515,7 +514,7 @@ static void handle_rc_disconnect (tBTA_AV_RC_CLOSE *p_rc_close)
|
|||||||
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc_features & BTA_AV_FEAT_RCCT) {
|
if (btc_avrc_tg_init_p()) {
|
||||||
esp_avrc_tg_cb_param_t param;
|
esp_avrc_tg_cb_param_t param;
|
||||||
memset(¶m, 0, sizeof(esp_avrc_ct_cb_param_t));
|
memset(¶m, 0, sizeof(esp_avrc_ct_cb_param_t));
|
||||||
param.conn_stat.connected = false;
|
param.conn_stat.connected = false;
|
||||||
@ -941,14 +940,10 @@ void btc_rc_handler(tBTA_AV_EVT event, tBTA_AV *p_data)
|
|||||||
memcpy(param.conn_stat.remote_bda, btc_rc_cb.rc_addr, sizeof(esp_bd_addr_t));
|
memcpy(param.conn_stat.remote_bda, btc_rc_cb.rc_addr, sizeof(esp_bd_addr_t));
|
||||||
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
btc_avrc_ct_cb_to_app(ESP_AVRC_CT_CONNECTION_STATE_EVT, ¶m);
|
||||||
}
|
}
|
||||||
if ((p_data->rc_feat.peer_features & BTA_AV_FEAT_RCCT) &&
|
/**
|
||||||
!(old_feats & BTA_AV_FEAT_RCCT)) {
|
* @note ESP_AVRC_TG_CONNECTION_STATE_EVT has been reported on rc connect/disconnect event,
|
||||||
esp_avrc_tg_cb_param_t param;
|
* it doesn't rely on the SDP results.
|
||||||
memset(¶m, 0, sizeof(esp_avrc_ct_cb_param_t));
|
*/
|
||||||
param.conn_stat.connected = true;
|
|
||||||
memcpy(param.conn_stat.remote_bda, btc_rc_cb.rc_addr, sizeof(esp_bd_addr_t));
|
|
||||||
btc_avrc_tg_cb_to_app(ESP_AVRC_TG_CONNECTION_STATE_EVT, ¶m);
|
|
||||||
}
|
|
||||||
} while (0);
|
} while (0);
|
||||||
btc_rc_cb.rc_features = p_data->rc_feat.peer_features;
|
btc_rc_cb.rc_features = p_data->rc_feat.peer_features;
|
||||||
btc_rc_cb.rc_ct_features = p_data->rc_feat.peer_ct_features;
|
btc_rc_cb.rc_ct_features = p_data->rc_feat.peer_ct_features;
|
||||||
|
Reference in New Issue
Block a user