OSDN Git Service

AVRCP TG: Get Item Attribute command not working
authorHemant Gupta <hemantg@codeaurora.org>
Thu, 13 Apr 2017 14:34:36 +0000 (20:04 +0530)
committerAndre Eisenbach <eisenbach@google.com>
Wed, 19 Apr 2017 20:50:56 +0000 (20:50 +0000)
Usecase:
1) Connect from carkit supporting AVRCP 1.4/1.5 CT to DUT
2) Issue get item attribute command with valid attribute list.

Expected behaviour:
Get item attribute command succeeds and returns the requested
attributes of particular item

Observed result:
Get Item attribute command fails with BAD Param Error

Root Cause:
Wrong structure from tAVRC_COMMAND was being passed to fill_attribute_id_array
which was leading to error being returned.

Fix:
Use get_attrs of type tAVRC_GET_ATTRS_CMD instead of get_elem_attrs of type
tAVRC_GET_ELEM_ATTRS_CMD when remote device requests for get item attributes.

Test: Checked that now bad param error is not returned in response for
get item attribute command from remote device.

Bug: 37302234
Bug: 36055995
Change-Id: I9245f726f37ffd666d143d2232dac868a2cc3268
(cherry picked from commit 6510a471696f24a051b79ca9fd7a210bf7e293bc)

btif/src/btif_rc.cc

index 1185987..a0cb4c7 100644 (file)
@@ -1615,8 +1615,8 @@ static void btif_rc_upstreams_evt(uint16_t event, tAVRC_COMMAND* pavrc_cmd,
     case AVRC_PDU_GET_ITEM_ATTRIBUTES: {
       btrc_media_attr_t item_attrs[BTRC_MAX_ELEM_ATTR_SIZE];
       uint8_t num_attr = fill_attribute_id_array(
-          pavrc_cmd->get_elem_attrs.num_attr,
-          (btrc_media_attr_t*)pavrc_cmd->get_elem_attrs.attrs,
+          pavrc_cmd->get_attrs.attr_count,
+          (btrc_media_attr_t*)pavrc_cmd->get_attrs.p_attr_list,
           BTRC_MAX_ELEM_ATTR_SIZE, item_attrs);
       if (num_attr == 0) {
         BTIF_TRACE_ERROR(