15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2003-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This interface file contains the interface to the Audio Video Control
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Transport Protocol (AVCTP).
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef AVCT_API_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_API_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
29911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#include "bt_types.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
32ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  Constants
33ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API function return value result codes. */
36911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_SUCCESS 0      /* Function successful */
37911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_NO_RESOURCES 1 /* Not enough resources */
38911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BAD_HANDLE 2   /* Bad handle */
39911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_PID_IN_USE 3   /* PID already in use */
40911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_NOT_OPEN 4     /* Connection not open */
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PSM for AVCT. */
43911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_PSM 0x0017
44911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BR_PSM 0x001B
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Protocol revision numbers */
47911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_REV_1_0 0x0100
48911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_REV_1_2 0x0102
49911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_REV_1_3 0x0103
50911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_REV_1_4 0x0104
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the layer_specific settings */
53911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_DATA_CTRL 0x0001    /* for the control channel */
54911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_DATA_BROWSE 0x0002  /* for the browsing channel */
55911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_DATA_PARTIAL 0x0100 /* Only have room for a partial message */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Per the AVRC spec, minimum MTU for the control channel */
58911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_MIN_CONTROL_MTU 48
599ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Per the AVRC spec, minimum MTU for the browsing channel */
60911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_MIN_BROWSE_MTU 335
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Message offset.  The number of bytes needed by the protocol stack for the
63ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * protocol headers of an AVCTP message packet.
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
65911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_MSG_OFFSET 15
66911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_OFFSET 17 /* the default offset for browsing channel */
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection role. */
69911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_INT 0 /* Initiator connection */
70911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_ACP 1 /* Acceptor connection */
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control role. */
73911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_TARGET 1  /* target  */
74911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_CONTROL 2 /* controller  */
75911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_PASSIVE 4 /* If conflict, allow the other side to succeed  */
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command/Response indicator. */
78911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_CMD 0 /* Command message */
79911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_RSP 2 /* Response message */
80911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_REJ 3 /* Message rejected */
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control callback events. */
83911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_CONNECT_CFM_EVT 0        /* Connection confirm */
84911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_CONNECT_IND_EVT 1        /* Connection indication */
85911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_DISCONNECT_CFM_EVT 2     /* Disconnect confirm */
86911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_DISCONNECT_IND_EVT 3     /* Disconnect indication */
87911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_CONG_IND_EVT 4           /* Congestion indication */
88911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_UNCONG_IND_EVT 5         /* Uncongestion indication */
89911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_CONN_CFM_EVT 6    /* Browse Connection confirm */
90911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_CONN_IND_EVT 7    /* Browse Connection indication */
91911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_DISCONN_CFM_EVT 8 /* Browse Disconnect confirm */
92911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_DISCONN_IND_EVT 9 /* Browse Disconnect indication */
93911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_CONG_IND_EVT 10   /* Congestion indication */
94911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_BROWSE_UNCONG_IND_EVT 11 /* Uncongestion indication */
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* General purpose failure result code for callback events. */
97911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define AVCT_RESULT_FAIL 5
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
100ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  Type Definitions
101ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control callback function. */
104911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef void(tAVCT_CTRL_CBACK)(uint8_t handle, uint8_t event, uint16_t result,
105911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                               BD_ADDR peer_addr);
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Message callback function */
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* p_pkt->layer_specific is AVCT_DATA_CTRL or AVCT_DATA_BROWSE */
109911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef void(tAVCT_MSG_CBACK)(uint8_t handle, uint8_t label, uint8_t cr,
110911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                              BT_HDR* p_pkt);
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure used by AVCT_CreateConn. */
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  tAVCT_CTRL_CBACK* p_ctrl_cback; /* Control callback */
115911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  tAVCT_MSG_CBACK* p_msg_cback;   /* Message callback */
116911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint16_t pid;                   /* Profile ID */
117911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t role;                   /* Initiator/acceptor role */
118911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson  uint8_t control;                /* Control role (Control/Target) */
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVCT_CC;
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
122ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  External Function Declarations
123ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
126ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
127ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_Register
128ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
129ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This is the system level registration function for the
130ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCTP protocol.  This function initializes AVCTP and
131ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  prepares the protocol stack for its use.  This function
132ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  must be called once by the system or platform using AVCTP
133ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  before the other functions of the API an be used.
134ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
135ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
136ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
137ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
138ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
139d19e0785e662e640191a075eda07acce61c2aedaMarie Janssenextern void AVCT_Register(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask);
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
142ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
143ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_Deregister
144ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
145ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to deregister use AVCTP protocol.
146ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  It is called when AVCTP is no longer being used by any
147ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  application in the system.  Before this function can be
148ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  called, all connections must be removed with
149ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCT_RemoveConn().
150ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
151ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
152ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
153ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
154ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
15524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void AVCT_Deregister(void);
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
158ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
159ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_CreateConn
160ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
161ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Create an AVCTP connection.  There are two types of
162ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connections, initiator and acceptor, as determined by
163ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the p_cc->role parameter.  When this function is called to
164ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  create an initiator connection, an AVCTP connection to
165ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the peer device is initiated if one does not already exist.
166ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If an acceptor connection is created, the connection waits
1679ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  passively for an incoming AVCTP connection from a peer
1689ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  device.
169ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
170ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
171ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          AVCT_SUCCESS if successful, otherwise error.
172ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
173ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
174911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t AVCT_CreateConn(uint8_t* p_handle, tAVCT_CC* p_cc,
175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                BD_ADDR peer_addr);
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
178ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
179ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_RemoveConn
180ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
181ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Remove an AVCTP connection.  This function is called when
182ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the application is no longer using a connection.  If this
183ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  is the last connection to a peer the L2CAP channel for AVCTP
184ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  will be closed.
185ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
186ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
187ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          AVCT_SUCCESS if successful, otherwise error.
188ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
189ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
190d19e0785e662e640191a075eda07acce61c2aedaMarie Janssenextern uint16_t AVCT_RemoveConn(uint8_t handle);
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
193ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
194ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_CreateBrowse
195ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
196ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Create an AVCTP connection.  There are two types of
197ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connections, initiator and acceptor, as determined by
198ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the p_cc->role parameter.  When this function is called to
199ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  create an initiator connection, an AVCTP connection to
200ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the peer device is initiated if one does not already exist.
201ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If an acceptor connection is created, the connection waits
2029ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  passively for an incoming AVCTP connection from a peer
2039ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  device.
204ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
205ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
206ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          AVCT_SUCCESS if successful, otherwise error.
207ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
208ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
209d19e0785e662e640191a075eda07acce61c2aedaMarie Janssenextern uint16_t AVCT_CreateBrowse(uint8_t handle, uint8_t role);
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
212ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
213ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_RemoveBrowse
214ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
215ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Remove an AVCTP connection.  This function is called when
216ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the application is no longer using a connection.  If this
217ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  is the last connection to a peer the L2CAP channel for AVCTP
218ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  will be closed.
219ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
220ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
221ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          AVCT_SUCCESS if successful, otherwise error.
222ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
223ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
224d19e0785e662e640191a075eda07acce61c2aedaMarie Janssenextern uint16_t AVCT_RemoveBrowse(uint8_t handle);
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
227ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
228ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_GetBrowseMtu
229ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
230ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get the peer_mtu for the AVCTP Browse channel of the given
231ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connection.
232ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
233ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          the peer browsing channel MTU.
234ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
235ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
236911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t AVCT_GetBrowseMtu(uint8_t handle);
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
239ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
240ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_GetPeerMtu
241ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
242ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get the peer_mtu for the AVCTP channel of the given
243ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connection.
244ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
245ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          the peer MTU size.
246ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
247ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
248911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t AVCT_GetPeerMtu(uint8_t handle);
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
251ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
252ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         AVCT_MsgReq
253ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
254ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send an AVCTP message to a peer device.  In calling
255ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCT_MsgReq(), the application should keep track of the
256ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  congestion state of AVCTP as communicated with events
257ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCT_CONG_IND_EVT and AVCT_UNCONG_IND_EVT.   If the
258ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  application calls AVCT_MsgReq() when AVCTP is congested
259ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the message may be discarded.  The application may make its
260ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  first call to AVCT_MsgReq() after it receives an
2619ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  AVCT_CONNECT_CFM_EVT or AVCT_CONNECT_IND_EVT on control
2629ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  channel or
2639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  AVCT_BROWSE_CONN_CFM_EVT or AVCT_BROWSE_CONN_IND_EVT on
2649ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  browsing channel.
265ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
266ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_msg->layer_specific must be set to
267ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCT_DATA_CTRL for control channel traffic;
268ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  AVCT_DATA_BROWSE for for browse channel traffic.
269ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
270ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          AVCT_SUCCESS if successful, otherwise error.
271ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
272ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
273911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t AVCT_MsgReq(uint8_t handle, uint8_t label, uint8_t cr,
274911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                            BT_HDR* p_msg);
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* AVCT_API_H */
277