diff options
author | Vikrampal Yadav <vikram.pal@samsung.com> | 2014-09-04 14:10:13 +0530 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-09-05 13:16:43 +0300 |
commit | 40d016c1f06ebdcc92b53ddb482e96224649086a (patch) | |
tree | 67acf4350d1393d0de8d742abce71c6e12012d38 /monitor/avctp.c | |
parent | 0fad328c52a113db1e31f7e504e807b687b7653a (diff) | |
download | bluez-40d016c1f06ebdcc92b53ddb482e96224649086a.tar.gz |
monitor: Add AVRCP GetCurrentPlayerApplicationSettingValue support
Support for decoding AVRCP GetCurrentPlayerApplicationSettingValue
added in Bluetooth monitor.
Diffstat (limited to 'monitor/avctp.c')
-rw-r--r-- | monitor/avctp.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/monitor/avctp.c b/monitor/avctp.c index 64d4b5869..c46238169 100644 --- a/monitor/avctp.c +++ b/monitor/avctp.c @@ -609,6 +609,54 @@ response: return true; } +static bool avrcp_get_current_player_value(struct l2cap_frame *frame, + uint8_t ctype, uint8_t len, + uint8_t indent) +{ + uint8_t num; + + if (!l2cap_frame_get_u8(frame, &num)) + return false; + + if (ctype > AVC_CTYPE_GENERAL_INQUIRY) + goto response; + + print_field("%*cAttributeCount: 0x%02x", (indent - 8), ' ', num); + + for (; num > 0; num--) { + uint8_t attr; + + if (!l2cap_frame_get_u8(frame, &attr)) + return false; + + print_field("%*cAttributeID: 0x%02x (%s)", (indent - 8), + ' ', attr, attr2str(attr)); + } + + return true; + +response: + print_field("%*cValueCount: 0x%02x", (indent - 8), ' ', num); + + for (; num > 0; num--) { + uint8_t attr, value; + + if (!l2cap_frame_get_u8(frame, &attr)) + return false; + + print_field("%*cAttributeID: 0x%02x (%s)", (indent - 8), + ' ', attr, attr2str(attr)); + + if (!l2cap_frame_get_u8(frame, &value)) + return false; + + print_field("%*cValueID: 0x%02x (%s)", (indent - 8), + ' ', value, value2str(attr, value)); + } + + return true; +} + struct avrcp_ctrl_pdu_data { uint8_t pduid; bool (*func) (struct l2cap_frame *frame, uint8_t ctype, uint8_t len, @@ -619,6 +667,7 @@ static const struct avrcp_ctrl_pdu_data avrcp_ctrl_pdu_table[] = { { 0x10, avrcp_get_capabilities }, { 0x11, avrcp_list_player_attributes }, { 0x12, avrcp_list_player_values }, + { 0x13, avrcp_get_current_player_value }, { } }; |