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