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_types.h"
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Constants
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API function return value result codes. */
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_SUCCESS                0       /* Function successful */
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_NO_RESOURCES           1       /* Not enough resources */
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BAD_HANDLE             2       /* Bad handle */
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_PID_IN_USE             3       /* PID already in use */
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_NOT_OPEN               4       /* Connection not open */
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PSM for AVCT. */
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_PSM                    0x0017
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BR_PSM                 0x001B
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Protocol revision numbers */
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_REV_1_0                0x0100
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_REV_1_2                0x0102
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_REV_1_3                0x0103
50dab356e3b0573303840e63cbafb1065d57a11e2cAnubhav Gupta#define AVCT_REV_1_4                0x0104
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the layer_specific settings */
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_DATA_CTRL              0x0001    /* for the control channel */
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_DATA_BROWSE            0x0002    /* for the browsing channel */
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_DATA_PARTIAL           0x0100    /* Only have room for a partial message */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_MIN_CONTROL_MTU        48  /* Per the AVRC spec, minimum MTU for the control channel */
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_MIN_BROWSE_MTU         335 /* Per the AVRC spec, minimum MTU for the browsing channel */
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Message offset.  The number of bytes needed by the protocol stack for the
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** protocol headers of an AVCTP message packet.
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_MSG_OFFSET             15
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_OFFSET          17 /* the default offset for browsing channel */
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection role. */
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_INT                    0       /* Initiator connection */
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_ACP                    1       /* Acceptor connection */
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control role. */
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_TARGET                 1       /* target  */
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_CONTROL                2       /* controller  */
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_PASSIVE                4       /* If conflict, allow the other side to succeed  */
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command/Response indicator. */
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_CMD                    0       /* Command message */
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_RSP                    2       /* Response message */
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_REJ                    3       /* Message rejected */
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control callback events. */
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_CONNECT_CFM_EVT        0       /* Connection confirm */
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_CONNECT_IND_EVT        1       /* Connection indication */
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_DISCONNECT_CFM_EVT     2       /* Disconnect confirm */
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_DISCONNECT_IND_EVT     3       /* Disconnect indication */
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_CONG_IND_EVT           4       /* Congestion indication */
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_UNCONG_IND_EVT         5       /* Uncongestion indication */
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_CONN_CFM_EVT    6       /* Browse Connection confirm */
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_CONN_IND_EVT    7       /* Browse Connection indication */
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_DISCONN_CFM_EVT 8       /* Browse Disconnect confirm */
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_DISCONN_IND_EVT 9       /* Browse Disconnect indication */
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_CONG_IND_EVT    10      /* Congestion indication */
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_BROWSE_UNCONG_IND_EVT  11      /* Uncongestion indication */
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* General purpose failure result code for callback events. */
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVCT_RESULT_FAIL            5
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Type Definitions
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control callback function. */
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tAVCT_CTRL_CBACK)(UINT8 handle, UINT8 event, UINT16 result,
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                BD_ADDR peer_addr);
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Message callback function */
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* p_pkt->layer_specific is AVCT_DATA_CTRL or AVCT_DATA_BROWSE */
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tAVCT_MSG_CBACK)(UINT8 handle, UINT8 label, UINT8 cr,
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                               BT_HDR *p_pkt);
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure used by AVCT_CreateConn. */
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVCT_CTRL_CBACK    *p_ctrl_cback;      /* Control callback */
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVCT_MSG_CBACK     *p_msg_cback;       /* Message callback */
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              pid;                /* Profile ID */
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               role;               /* Initiator/acceptor role */
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               control;        /* Control role (Control/Target) */
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVCT_CC;
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  External Function Declarations
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C"
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_Register
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This is the system level registration function for the
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCTP protocol.  This function initializes AVCTP and
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  prepares the protocol stack for its use.  This function
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  must be called once by the system or platform using AVCTP
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  before the other functions of the API an be used.
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
14224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void AVCT_Register(UINT16 mtu, UINT16 mtu_br, UINT8 sec_mask);
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_Deregister
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to deregister use AVCTP protocol.
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  It is called when AVCTP is no longer being used by any
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  application in the system.  Before this function can be
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called, all connections must be removed with
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_RemoveConn().
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
15824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void AVCT_Deregister(void);
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_CreateConn
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Create an AVCTP connection.  There are two types of
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connections, initiator and acceptor, as determined by
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the p_cc->role parameter.  When this function is called to
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  create an initiator connection, an AVCTP connection to
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the peer device is initiated if one does not already exist.
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If an acceptor connection is created, the connection waits
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  passively for an incoming AVCTP connection from a peer device.
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          AVCT_SUCCESS if successful, otherwise error.
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
17624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_CreateConn(UINT8 *p_handle, tAVCT_CC *p_cc,
17724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                              BD_ADDR peer_addr);
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_RemoveConn
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Remove an AVCTP connection.  This function is called when
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the application is no longer using a connection.  If this
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is the last connection to a peer the L2CAP channel for AVCTP
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  will be closed.
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          AVCT_SUCCESS if successful, otherwise error.
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
19224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_RemoveConn(UINT8 handle);
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_CreateBrowse
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Create an AVCTP connection.  There are two types of
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connections, initiator and acceptor, as determined by
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the p_cc->role parameter.  When this function is called to
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  create an initiator connection, an AVCTP connection to
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the peer device is initiated if one does not already exist.
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If an acceptor connection is created, the connection waits
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  passively for an incoming AVCTP connection from a peer device.
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          AVCT_SUCCESS if successful, otherwise error.
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
21024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_CreateBrowse(UINT8 handle, UINT8 role);
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_RemoveBrowse
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Remove an AVCTP connection.  This function is called when
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the application is no longer using a connection.  If this
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is the last connection to a peer the L2CAP channel for AVCTP
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  will be closed.
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          AVCT_SUCCESS if successful, otherwise error.
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
22524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_RemoveBrowse(UINT8 handle);
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_GetBrowseMtu
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get the peer_mtu for the AVCTP Browse channel of the given
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connection.
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          the peer browsing channel MTU.
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
23724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_GetBrowseMtu (UINT8 handle);
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_GetPeerMtu
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get the peer_mtu for the AVCTP channel of the given
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connection.
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          the peer MTU size.
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
24924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_GetPeerMtu (UINT8 handle);
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         AVCT_MsgReq
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send an AVCTP message to a peer device.  In calling
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_MsgReq(), the application should keep track of the
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  congestion state of AVCTP as communicated with events
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_CONG_IND_EVT and AVCT_UNCONG_IND_EVT.   If the
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  application calls AVCT_MsgReq() when AVCTP is congested
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the message may be discarded.  The application may make its
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  first call to AVCT_MsgReq() after it receives an
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_CONNECT_CFM_EVT or AVCT_CONNECT_IND_EVT on control channel or
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_BROWSE_CONN_CFM_EVT or AVCT_BROWSE_CONN_IND_EVT on browsing channel.
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  p_msg->layer_specific must be set to
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_DATA_CTRL for control channel traffic;
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  AVCT_DATA_BROWSE for for browse channel traffic.
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          AVCT_SUCCESS if successful, otherwise error.
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
27224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 AVCT_MsgReq(UINT8 handle, UINT8 label, UINT8 cr, BT_HDR *p_msg);
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* AVCT_API_H */
280