OSDN Git Service

profiles/AVRCP: Add AV Remote Controller service class id to CT
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Wed, 9 Oct 2013 11:11:43 +0000 (14:11 +0300)
committerJohan Hedberg <johan.hedberg@intel.com>
Wed, 9 Oct 2013 15:38:09 +0000 (17:38 +0200)
Both AV Remote and AV Remote Controller service classes are mandatory
by AVRCP CT role from 1.3 onwards. Also the assigned numbers page mention
that AV Remote must appear before AV Remote Controller:

  "The AVRCP specification v1.3 and later require that 0x110E also be
  included in the ServiceClassIDList before 0x110F for backwards
  compatibility."

profiles/audio/avrcp.c

index b1b2ae6..296067c 100644 (file)
@@ -263,7 +263,7 @@ static void avrcp_register_notification(struct avrcp *session, uint8_t event);
 static sdp_record_t *avrcp_ct_record(void)
 {
        sdp_list_t *svclass_id, *pfseq, *apseq, *apseq1, *root;
-       uuid_t root_uuid, l2cap, avctp, avrct;
+       uuid_t root_uuid, l2cap, avctp, avrct, avrctr;
        sdp_profile_desc_t profile[1];
        sdp_list_t *aproto, *aproto1, *proto[2], *proto1[2];
        sdp_record_t *record;
@@ -287,6 +287,8 @@ static sdp_record_t *avrcp_ct_record(void)
        /* Service Class ID List */
        sdp_uuid16_create(&avrct, AV_REMOTE_SVCLASS_ID);
        svclass_id = sdp_list_append(0, &avrct);
+       sdp_uuid16_create(&avrctr, AV_REMOTE_CONTROLLER_SVCLASS_ID);
+       svclass_id = sdp_list_append(svclass_id, &avrctr);
        sdp_set_service_classes(record, svclass_id);
 
        /* Protocol Descriptor List */