Commit: cb9780d0512e314cc14157e272f0b7d490d7321c
Parent: 9af28350c15134dce630c12b26758f7e9e23abb7
Author: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Committer: Marcel Holtmann <marcel@holtmann.org>
Date: 2012-12-18 00:53:05
Tree: 4ee7cea5b7b68fd062cd7e52247ea75702f01c68

hcidump: Fix parser of AVRCP continuing messages If packet_type is not START or SINGLE, we have to continue where we stopped from previous packet. Therefore we must store where we left on previous packet due to packet size limit. We store both the number of attributes missing and the lenght of the last attribute that is missing. An example interaction for this implementation, obtained with PTS test TC_TG_MDI_BV_04_C (I reduced the MTU in order to reproduce it here and values between brackets I added now): > AVCTP: Command : pt 0x00 transaction 2 pid 0x110e AV/C: Status: address 0x48 opcode 0x00 Subunit: Panel Opcode: Vendor Dependent Company ID: 0x001958 AVRCP: GetElementAttributes: pt Single len 0x0009 Identifier: 0x0 (PLAYING) AttributeCount: 0x00 < AVCTP: Response : pt 0x00 transaction 2 pid 0x110e AV/C: Stable: address 0x48 opcode 0x00 Subunit: Panel Opcode: Vendor Dependent Company ID: 0x001958 AVRCP: GetElementAttributes: pt Start len 0x0118 AttributeCount: 0x04 Attribute: 0x00000001 (Title) CharsetID: 0x006a (UTF-8) AttributeValueLength: 0x001b AttributeValue: isso eh um titulo mei longo Attribute: 0x00000003 (Album) CharsetID: 0x006a (UTF-8) AttributeValueLength: 0x00fe AttributeValue: super-long-album-name super-long-album-name super-long-album-name super-long-album-name super-long-album super-long-album-name [... snip... ] super-long-album-name-1234 > AVCTP: Command : pt 0x00 transaction 2 pid 0x110e AV/C: Control: address 0x48 opcode 0x00 Subunit: Panel Opcode: Vendor Dependent Company ID: 0x001958 AVRCP: RequestContinuingResponse: pt Single len 0x0001 < AVCTP: Response : pt 0x00 transaction 2 pid 0x110e AV/C: Stable: address 0x48 opcode 0x00 Subunit: Panel Opcode: Vendor Dependent Company ID: 0x001958 AVRCP: GetElementAttributes: pt End len 0x002a ContinuingAttributeValue: 678900000000000000 Attribute: 0x00000005 (Track Total) CharsetID: 0x006a (UTF-8) AttributeValueLength: 0x0002 AttributeValue: 30 Attribute: 0x00000006 (Genre) CharsetID: 0x006a (UTF-8) AttributeValueLength: 0x0006 AttributeValue: Gospel

Diffstat

M tools/parser/avrcp.c | 94 ++++++++++++++++++++++++++++++++++++++++- - - - - - - - - - - - - - -

1 files changed, 79 insertions(+), 15 deletions(-)

View Full Diff | Patch