>From 7e32aecb2b13c6398108932e98fdd68faf9315d8 Mon Sep 17 00:00:00 2001
From: Vani Patel <[email protected]>
Date: Tue, 5 Jun 2012 13:44:30 +0530
Subject: [PATCH BlueZ V6 1/5] AVRCP: Add TG Record to support AVRCP Browsing
Adds SDP record to support browsing
---
audio/avctp.c |??? 4 ++--
audio/avctp.h |??? 3 ++-
audio/avrcp.c |?? 28 ++++++++++++++++++++++++----
3 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/audio/avctp.c b/audio/avctp.c
index 074eabd..a20dba9 100644
--- a/audio/avctp.c
+++ b/audio/avctp.c
@@ -802,7 +802,7 @@ static GIOChannel *avctp_server_socket(const bdaddr_t *src, gboolean master)
?????????????? io = bt_io_listen(BT_IO_L2CAP, NULL, avctp_confirm_cb, NULL,
?????????????????????????????????????????????????????????????? NULL, &err,
?????????????????????????????????????????????????????????????? BT_IO_OPT_SOURCE_BDADDR, src,
-????????????????????????????????????????????????????????????? BT_IO_OPT_PSM, AVCTP_PSM,
+????????????????????????????????????????????????????????????? BT_IO_OPT_PSM, AVCTP_CONTROL_PSM,
?????????????????????????????????????????????????????????????? BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
?????????????????????????????????????????????????????????????? BT_IO_OPT_MASTER, master,
?????????????????????????????????????????????????????????????? BT_IO_OPT_INVALID);
@@ -1090,7 +1090,7 @@ struct avctp *avctp_connect(const bdaddr_t *src, const bdaddr_t *dst)
?????????????? io = bt_io_connect(BT_IO_L2CAP, avctp_connect_cb, session, NULL, &err,
?????????????????????????????????????????????????????????????? BT_IO_OPT_SOURCE_BDADDR, &session->server->src,
?????????????????????????????????????????????????????????????? BT_IO_OPT_DEST_BDADDR, &session->dst,
-????????????????????????????????????????????????????????????? BT_IO_OPT_PSM, AVCTP_PSM,
+????????????????????????????????????????????????????????????? BT_IO_OPT_PSM, AVCTP_CONTROL_PSM,
?????????????????????????????????????????????????????????????? BT_IO_OPT_INVALID);
?????????????? if (err) {
?????????????????????????????? avctp_set_state(session, AVCTP_STATE_DISCONNECTED);
diff --git a/audio/avctp.h b/audio/avctp.h
index d0cbd97..34b0c1c 100644
--- a/audio/avctp.h
+++ b/audio/avctp.h
@@ -22,7 +22,8 @@
? *
? */
-#define AVCTP_PSM 23
+#define AVCTP_CONTROL_PSM????????????? 23
+#define AVCTP_BROWSING_PSM????????? 27
?#define AVC_MTU 512
#define AVC_HEADER_LENGTH 3
diff --git a/audio/avrcp.c b/audio/avrcp.c
index d925365..c7c8ae6 100644
--- a/audio/avrcp.c
+++ b/audio/avrcp.c
@@ -105,6 +105,7 @@
#define AVRCP_FEATURE_CATEGORY_3?????????????? 0x0004
#define AVRCP_FEATURE_CATEGORY_4?????????????? 0x0008
#define AVRCP_FEATURE_PLAYER_SETTINGS???? 0x0010
+#define AVRCP_FEATURE_BROWSING???????????????? 0x0040
?#define AVRCP_BATTERY_STATUS_NORMAL????????????????????? 0
#define AVRCP_BATTERY_STATUS_WARNING?????????????????? 1
@@ -190,7 +191,7 @@ static sdp_record_t *avrcp_ct_record(void)
?????????????? sdp_list_t *aproto, *proto[2];
?????????????? sdp_record_t *record;
?????????????? sdp_data_t *psm, *version, *features;
-????????????? uint16_t lp = AVCTP_PSM;
+????????????? uint16_t lp = AVCTP_CONTROL_PSM;
?????????????? uint16_t avrcp_ver = 0x0100, avctp_ver = 0x0103;
?????????????? uint16_t feat = ( AVRCP_FEATURE_CATEGORY_1 |
?????????????????????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_CATEGORY_2 |
@@ -252,18 +253,21 @@ static sdp_record_t *avrcp_ct_record(void)
?static sdp_record_t *avrcp_tg_record(void)
{
-????????????? sdp_list_t *svclass_id, *pfseq, *apseq, *root;
+????????????? sdp_list_t *svclass_id, *pfseq, *apseq, *root, *apseq_browsing;
?????????????? uuid_t root_uuid, l2cap, avctp, avrtg;
?????????????? sdp_profile_desc_t profile[1];
?????????????? sdp_list_t *aproto, *proto[2];
?????????????? sdp_record_t *record;
-????????????? sdp_data_t *psm, *version, *features;
-????????????? uint16_t lp = AVCTP_PSM;
+????????????? sdp_data_t *psm, *version, *features, *psm_browsing;
+????????????? sdp_list_t *aproto_browsing, *proto_browsing[2] = {0};
+????????????? uint16_t lp = AVCTP_CONTROL_PSM;
+????????????? uint16_t lp_browsing = AVCTP_BROWSING_PSM;
?????????????? uint16_t avrcp_ver = 0x0104, avctp_ver = 0x0103;
?????????????? uint16_t feat = ( AVRCP_FEATURE_CATEGORY_1 |
?????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_CATEGORY_2 |
?????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_CATEGORY_3 |
?????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_CATEGORY_4 |
+????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_BROWSING |
?????????????????????????????????????????????????????????????????????????????? AVRCP_FEATURE_PLAYER_SETTINGS );
??????????????? record = sdp_record_alloc();
@@ -294,6 +298,17 @@ static sdp_record_t *avrcp_tg_record(void)
??????????????? aproto = sdp_list_append(0, apseq);
?????????????? sdp_set_access_protos(record, aproto);
+????????????? proto_browsing[0] = sdp_list_append(0, &l2cap);
+????????????? psm_browsing = sdp_data_alloc(SDP_UINT16, &lp_browsing);
+????????????? proto_browsing[0] = sdp_list_append(proto_browsing[0], psm_browsing);
+????????????? apseq_browsing = sdp_list_append(0, proto_browsing[0]);
+
+????????????? proto_browsing[1] = sdp_list_append(0, &avctp);
+????????????? proto_browsing[1] = sdp_list_append(proto_browsing[1], version);
+????????????? apseq_browsing = sdp_list_append(apseq_browsing, proto_browsing[1]);
+
+????????????? aproto_browsing = sdp_list_append(0, apseq_browsing);
+????????????? sdp_set_add_access_protos(record, aproto_browsing);
??????????????? /* Bluetooth Profile Descriptor List */
?????????????? sdp_uuid16_create(&profile[0].uuid, AV_REMOTE_PROFILE_ID);
@@ -306,6 +321,11 @@ static sdp_record_t *avrcp_tg_record(void)
??????????????? sdp_set_info_attr(record, "AVRCP TG", 0, 0);
+????????????? free(psm_browsing);
+????????????? sdp_list_free(proto_browsing[0], 0);
+????????????? sdp_list_free(proto_browsing[1], 0);
+????????????? sdp_list_free(apseq_browsing, 0);
+????????????? sdp_list_free(aproto_browsing, 0);
?????????????? free(psm);
?????????????? free(version);
?????????????? sdp_list_free(proto[0], 0);
--
1.7.5.4
Regards,
Vani
Hi Vani,
On Tue, Sep 18, 2012 at 11:05 AM, Luiz Augusto von Dentz
<[email protected]> wrote:
> Hi Arun,
>
> On Tue, Sep 18, 2012 at 9:08 AM, Arun K. Singh <[email protected]> wrote:
>> Hi Luiz, folks,
>>
>> On Thu, Aug 30, 2012 at 10:38 AM, Vani-dineshbhai PATEL X
>> <[email protected]> wrote:
>>>
>>> From 7e32aecb2b13c6398108932e98fdd68faf9315d8 Mon Sep 17 00:00:00 2001
>>> From: Vani Patel <[email protected]>
>>> Date: Tue, 5 Jun 2012 13:44:30 +0530
>>> Subject: [PATCH BlueZ V6 1/5] AVRCP: Add TG Record to support AVRCP
>>> Browsing
>>>
>>> Adds SDP record to support browsing
>>> ---
>>> audio/avctp.c | 4 ++--
>>> audio/avctp.h | 3 ++-
>>> audio/avrcp.c | 28 ++++++++++++++++++++++++----
>>> 3 files changed, 28 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/audio/avctp.c b/audio/avctp.c
>>> index 074eabd..a20dba9 100644
>>> --- a/audio/avctp.c
>>> +++ b/audio/avctp.c
>>
>> Any chance that have you been able to take a look at these patches and review?
>
> Im trying to validate the patches together with hcidump changes, but I
> don't have any device that make use of the browsing channel. I was
> expecting some updates regarding hcidump but it seems I will have to
> take care of this myself.
There seems to be some problem when I try to apply your patches git am
complains:
Applying: AVRCP: Add TG Record to support AVRCP Browsing
fatal: corrupt patch at line 12
Patch failed at 0001 AVRCP: Add TG Record to support AVRCP Browsing
It seems your patches are mangle using windows style line breaks.
--
Luiz Augusto von Dentz
Hi Arun,
On Tue, Sep 18, 2012 at 9:08 AM, Arun K. Singh <[email protected]> wrote:
> Hi Luiz, folks,
>
> On Thu, Aug 30, 2012 at 10:38 AM, Vani-dineshbhai PATEL X
> <[email protected]> wrote:
>>
>> From 7e32aecb2b13c6398108932e98fdd68faf9315d8 Mon Sep 17 00:00:00 2001
>> From: Vani Patel <[email protected]>
>> Date: Tue, 5 Jun 2012 13:44:30 +0530
>> Subject: [PATCH BlueZ V6 1/5] AVRCP: Add TG Record to support AVRCP
>> Browsing
>>
>> Adds SDP record to support browsing
>> ---
>> audio/avctp.c | 4 ++--
>> audio/avctp.h | 3 ++-
>> audio/avrcp.c | 28 ++++++++++++++++++++++++----
>> 3 files changed, 28 insertions(+), 7 deletions(-)
>>
>> diff --git a/audio/avctp.c b/audio/avctp.c
>> index 074eabd..a20dba9 100644
>> --- a/audio/avctp.c
>> +++ b/audio/avctp.c
>
> Any chance that have you been able to take a look at these patches and review?
Im trying to validate the patches together with hcidump changes, but I
don't have any device that make use of the browsing channel. I was
expecting some updates regarding hcidump but it seems I will have to
take care of this myself.
--
Luiz Augusto von Dentz
Hi Luiz, folks,
On Thu, Aug 30, 2012 at 10:38 AM, Vani-dineshbhai PATEL X
<[email protected]> wrote:
>
> From 7e32aecb2b13c6398108932e98fdd68faf9315d8 Mon Sep 17 00:00:00 2001
> From: Vani Patel <[email protected]>
> Date: Tue, 5 Jun 2012 13:44:30 +0530
> Subject: [PATCH BlueZ V6 1/5] AVRCP: Add TG Record to support AVRCP
> Browsing
>
> Adds SDP record to support browsing
> ---
> audio/avctp.c | 4 ++--
> audio/avctp.h | 3 ++-
> audio/avrcp.c | 28 ++++++++++++++++++++++++----
> 3 files changed, 28 insertions(+), 7 deletions(-)
>
> diff --git a/audio/avctp.c b/audio/avctp.c
> index 074eabd..a20dba9 100644
> --- a/audio/avctp.c
> +++ b/audio/avctp.c
Any chance that have you been able to take a look at these patches and review?
Thanks,
Arun