summaryrefslogtreecommitdiff
path: root/android/avrcp-lib.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-10-10 15:14:02 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-10-10 17:00:42 +0300
commitfd6dc924abeaed4aec23a4d85743105ccf3915c6 (patch)
treea1cce3984677b0d03986c94b9ff5ad0baabef94b /android/avrcp-lib.c
parent48381ae908df59fd17addd4d353d1e6ef268ad1a (diff)
downloadbluez-fd6dc924abeaed4aec23a4d85743105ccf3915c6.tar.gz
unit/test-avrcp: Add /TP/MCN/CB/BI-05-C test
Verify the TG issues an error when receiving a command for an invalid UID_counter.
Diffstat (limited to 'android/avrcp-lib.c')
-rw-r--r--android/avrcp-lib.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c
index 1dc42252a..b7d0f5ead 100644
--- a/android/avrcp-lib.c
+++ b/android/avrcp-lib.c
@@ -3468,8 +3468,8 @@ static bool pack_attribute_list(struct iovec *iov, uint8_t number,
}
int avrcp_get_item_attributes_rsp(struct avrcp *session, uint8_t transaction,
- uint8_t number, uint32_t *attrs,
- const char **text)
+ uint8_t status, uint8_t number,
+ uint32_t *attrs, const char **text)
{
struct iovec iov[AVRCP_MEDIA_ATTRIBUTE_LAST * 2 + 1];
struct get_item_attributes_rsp rsp;
@@ -3477,7 +3477,14 @@ int avrcp_get_item_attributes_rsp(struct avrcp *session, uint8_t transaction,
if (number > AVRCP_MEDIA_ATTRIBUTE_LAST)
return -EINVAL;
- rsp.status = AVRCP_STATUS_SUCCESS;
+ if (status != AVRCP_STATUS_SUCCESS) {
+ iov[0].iov_base = &status;
+ iov[0].iov_len = sizeof(status);
+ return avrcp_send_browsing(session, transaction,
+ AVRCP_GET_ITEM_ATTRIBUTES, iov, 1);
+ }
+
+ rsp.status = status;
rsp.number = number;
iov[0].iov_base = &rsp;