Thread (4 messages) flat view 4 messages, 3 authors, 2012-08-13

Re: [PATCH BlueZ V5 1/5] AVRCP: Add TG Record to support AVRCP Browsing

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2012-08-13 11:27:20

Hi Vani,

On Fri, Aug 10, 2012 at 12:35 PM, Vani-dineshbhai PATEL
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Vani Patel <redacted>

Adds SDP record to support browsing
---
 audio/avctp.c |    4 ++--
 audio/avctp.h |    3 ++-
 audio/avrcp.c |   25 +++++++++++++++++++++----
 3 files changed, 25 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..ca40c1e 100644
--- a/audio/avrcp.c
+++ b/audio/avrcp.c
@@ -190,7 +190,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,13 +252,15 @@ 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 |
According to the spec if we register the browsing channel we should
set it in feature bits, btw apparently apseq_browsing is leaking
please make sure you run your patches with valgrind/gdb to catch this
type of errors.

-- 
Luiz Augusto von Dentz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help