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