mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
bugfix:unhandle event when tg receive set_player_app_value cmd
This commit is contained in:
parent
98d838ef04
commit
6c0e3fe23c
@ -152,6 +152,7 @@ typedef enum {
|
||||
ESP_AVRC_TG_PASSTHROUGH_CMD_EVT = 2, /*!< passthrough command event */
|
||||
ESP_AVRC_TG_SET_ABSOLUTE_VOLUME_CMD_EVT = 3, /*!< set absolute volume command from remote device */
|
||||
ESP_AVRC_TG_REGISTER_NOTIFICATION_EVT = 4, /*!< register notification event */
|
||||
ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT = 5, /*!< set applicaton attribute value, attribute refer to esp_avrc_ps_attr_ids_t */
|
||||
} esp_avrc_tg_cb_event_t;
|
||||
|
||||
/// AVRC metadata attribute mask
|
||||
@ -278,6 +279,12 @@ typedef union
|
||||
esp_avrc_batt_stat_t batt; /*!< response data for ESP_AVRC_RN_BATTERY_STATUS_CHANGE */
|
||||
} esp_avrc_rn_param_t;
|
||||
|
||||
/// AVRCP set app value parameters
|
||||
typedef struct {
|
||||
uint8_t attr_id; /*!< player application attribute id */
|
||||
uint8_t attr_val; /*!< player application attribute value */
|
||||
} esp_avrc_set_app_value_param_t;
|
||||
|
||||
/// AVRC controller callback parameters
|
||||
typedef union {
|
||||
/**
|
||||
@ -380,6 +387,15 @@ typedef union {
|
||||
uint8_t event_id; /*!< event id of AVRC RegisterNotification */
|
||||
uint32_t event_parameter; /*!< event notification parameter */
|
||||
} reg_ntf; /*!< register notification */
|
||||
|
||||
/**
|
||||
* @brief ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT
|
||||
*/
|
||||
struct avrc_tg_set_app_value_param {
|
||||
uint8_t num_val; /*!< attribute num */
|
||||
esp_avrc_set_app_value_param_t *p_vals; /*!< point to the id and value of player application attribute */
|
||||
} set_app_value; /*!< set player application value */
|
||||
|
||||
} esp_avrc_tg_cb_param_t;
|
||||
|
||||
/**
|
||||
|
@ -777,6 +777,10 @@ tBTA_AV_EVT bta_av_proc_meta_cmd(tAVRC_RESPONSE *p_rc_rsp, tBTA_AV_RC_MSG *p_ms
|
||||
case AVRC_PDU_SET_ABSOLUTE_VOLUME:
|
||||
p_rc_rsp->rsp.status = BTA_AV_STS_NO_RSP;
|
||||
break;
|
||||
case AVRC_PDU_SET_PLAYER_APP_VALUE:
|
||||
/* Setting of a value by CT does not implicitly mean that the setting will take effect on TG. */
|
||||
/* The setting shall take effect after a play command from CT. */
|
||||
break;
|
||||
default:
|
||||
APPL_TRACE_WARNING("%s unhandled RC vendor PDU: 0x%x", __FUNCTION__, pdu);
|
||||
break;
|
||||
|
@ -455,7 +455,6 @@ static void handle_rc_connect (tBTA_AV_RC_OPEN *p_rc_open)
|
||||
btc_rc_cb.rc_handle = p_rc_open->rc_handle;
|
||||
|
||||
bdcpy(rc_addr.address, btc_rc_cb.rc_addr);
|
||||
|
||||
// callback to application
|
||||
if (p_rc_open->peer_features & BTA_AV_FEAT_RCTG) {
|
||||
esp_avrc_ct_cb_param_t param;
|
||||
@ -695,7 +694,6 @@ static void handle_rc_metamsg_cmd (tBTA_AV_META_MSG *p_meta_msg)
|
||||
} else {
|
||||
btc_rc_upstreams_evt(avrc_command.cmd.pdu, &avrc_command, p_meta_msg->code, p_meta_msg->label);
|
||||
}
|
||||
|
||||
osi_free(buf);
|
||||
}
|
||||
|
||||
@ -732,6 +730,14 @@ static void btc_rc_upstreams_evt(UINT16 event, tAVRC_COMMAND *pavrc_cmd, UINT8 c
|
||||
btc_avrc_tg_cb_to_app(ESP_AVRC_TG_SET_ABSOLUTE_VOLUME_CMD_EVT, ¶m);
|
||||
}
|
||||
break;
|
||||
case AVRC_PDU_SET_PLAYER_APP_VALUE: {
|
||||
// set up callback
|
||||
esp_avrc_tg_cb_param_t param;
|
||||
param.set_app_value.num_val = pavrc_cmd->set_app_val.num_val;
|
||||
param.set_app_value.p_vals = (esp_avrc_set_app_value_param_t *)pavrc_cmd->set_app_val.p_vals;
|
||||
btc_avrc_tg_cb_to_app(ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT, ¶m);
|
||||
}
|
||||
break;
|
||||
case AVRC_PDU_GET_PLAY_STATUS:
|
||||
case AVRC_PDU_GET_ELEMENT_ATTR:
|
||||
case AVRC_PDU_INFORM_DISPLAY_CHARSET:
|
||||
@ -739,7 +745,6 @@ static void btc_rc_upstreams_evt(UINT16 event, tAVRC_COMMAND *pavrc_cmd, UINT8 c
|
||||
case AVRC_PDU_LIST_PLAYER_APP_ATTR:
|
||||
case AVRC_PDU_LIST_PLAYER_APP_VALUES:
|
||||
case AVRC_PDU_GET_CUR_PLAYER_APP_VALUE:
|
||||
case AVRC_PDU_SET_PLAYER_APP_VALUE:
|
||||
case AVRC_PDU_GET_PLAYER_APP_ATTR_TEXT:
|
||||
case AVRC_PDU_GET_PLAYER_APP_VALUE_TEXT: {
|
||||
send_reject_response (btc_rc_cb.rc_handle, label, pavrc_cmd->pdu, AVRC_STS_BAD_CMD);
|
||||
|
@ -113,6 +113,7 @@ void bt_app_rc_tg_cb(esp_avrc_tg_cb_event_t event, esp_avrc_tg_cb_param_t *param
|
||||
case ESP_AVRC_TG_PASSTHROUGH_CMD_EVT:
|
||||
case ESP_AVRC_TG_SET_ABSOLUTE_VOLUME_CMD_EVT:
|
||||
case ESP_AVRC_TG_REGISTER_NOTIFICATION_EVT:
|
||||
case ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT:
|
||||
bt_app_work_dispatch(bt_av_hdl_avrc_tg_evt, event, param, sizeof(esp_avrc_tg_cb_param_t), NULL);
|
||||
break;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user