/******************************************************************************* ** ** Function avrc_bld_group_navigation_rsp ** ** Description This function builds the Group Navigation ** response. ** ** Returns AVRC_STS_NO_ERROR, if the response is built successfully ** Otherwise, the error code. ** *******************************************************************************/ tAVRC_STS avrc_bld_group_navigation_rsp (UINT16 navi_id, BT_HDR *p_pkt) { UINT8 *p_data; if (!AVRC_IS_VALID_GROUP(navi_id)) { AVRC_TRACE_ERROR1("avrc_bld_group_navigation_rsp bad navigation op id: %d", navi_id); return AVRC_STS_BAD_PARAM; } AVRC_TRACE_API0("avrc_bld_group_navigation_rsp"); p_data = (UINT8 *)(p_pkt+1) + p_pkt->offset; UINT16_TO_BE_STREAM(p_data, navi_id); p_pkt->len = 2; return AVRC_STS_NO_ERROR; }
/******************************************************************************* ** ** Function avrc_pars_pass_thru ** ** Description This function parses the pass thru commands defined by ** Bluetooth SIG ** ** Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed successfully. ** Otherwise, the error code defined by AVRCP 1.4 ** *******************************************************************************/ tAVRC_STS avrc_pars_pass_thru(tAVRC_MSG_PASS *p_msg, UINT16 *p_vendor_unique_id) { UINT8 *p_data; UINT32 co_id; UINT16 id; tAVRC_STS status = AVRC_STS_BAD_CMD; if (p_msg->op_id == AVRC_ID_VENDOR && p_msg->pass_len == AVRC_PASS_THRU_GROUP_LEN) { p_data = p_msg->p_pass_data; AVRC_BE_STREAM_TO_CO_ID (co_id, p_data); if (co_id == AVRC_CO_METADATA) { BE_STREAM_TO_UINT16 (id, p_data); if (AVRC_IS_VALID_GROUP(id)) { *p_vendor_unique_id = id; status = AVRC_STS_NO_ERROR; } } } return status; }