From 3e5bde224404ec91a396f1e1cbe5b7c6cd86ea3a Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 11 Aug 2011 12:53:22 -0300 Subject: [PATCH] avrcp: handle commands for future extension AVRCP_GET_PLAYER_ATTRIBUTE_TEXT and AVRCP_GET_PLAYER_VALUE_TEXT shall only be used if TG has extended attributes. For the ones defined in AVRCP spec these commands should not be called. Since we do not have extended attributes yet we can ignore those commands. --- audio/control.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/audio/control.c b/audio/control.c index 427155477..0595117e1 100644 --- a/audio/control.c +++ b/audio/control.c @@ -117,6 +117,8 @@ #define AVRCP_LIST_PLAYER_VALUES 0x12 #define AVRCP_GET_CURRENT_PLAYER_VALUE 0x13 #define AVRCP_SET_PLAYER_VALUE 0x14 +#define AVRCP_GET_PLAYER_ATTRIBUTE_TEXT 0x15 +#define AVRCP_GET_PLAYER_VALUE_TEXT 0x16 /* Capabilities for AVRCP_GET_CAPABILITIES pdu */ #define CAP_COMPANY_ID 0x02 @@ -1025,6 +1027,22 @@ static int handle_vendordep_pdu(struct control *control, avrcp->code = CTYPE_STABLE; break; + case AVRCP_GET_PLAYER_ATTRIBUTE_TEXT: + case AVRCP_GET_PLAYER_VALUE_TEXT: + if (avrcp->code != CTYPE_STATUS) { + pdu->params[0] = E_INVALID_COMMAND; + goto err_metadata; + } + + /* + * As per sec. 5.2.5 of AVRCP 1.3 spec, this command is + * expected to be used only for extended attributes, i.e. + * custom attributes defined by the application. As we + * currently don't have any such attribute, we respond with + * invalid param id. + */ + pdu->params[0] = E_INVALID_PARAM; + goto err_metadata; default: /* Invalid pdu_id */ pdu->params[0] = E_INVALID_COMMAND; -- 2.47.3