bta_av_api.h revision ead3cde4bac0c3e32cd31f149093f004eef8ceeb
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2004-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 is the public interface file for the advanced audio/video streaming
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  (AV) subsystem of BTA, Broadcom's Bluetooth application layer for mobile
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  phones.
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_API_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_API_H
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "avrc_api.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "avdt_api.h"
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "a2d_api.h"
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h"
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Constants and data types
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Set to TRUE if seperate authorization prompt desired for AVCTP besides A2DP authorization */
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Typically FALSE when AVRCP is used in conjunction with A2DP */
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_WITH_AVCTP_AUTHORIZATION
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_WITH_AVCTP_AUTHORIZATION     FALSE
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV status values */
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_SUCCESS          0       /* successful operation */
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FAIL             1       /* generic failure */
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FAIL_SDP         2       /* service not found */
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FAIL_STREAM      3       /* stream connection failed */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FAIL_RESOURCES   4       /* no resources */
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FAIL_ROLE        5       /* failed due to role management related issues */
50ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define BTA_AV_FAIL_GET_CAP     6       /* get capability failed due to no SEP availale on the peer  */
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_STATUS;
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV features masks */
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_RCTG        0x0001  /* remote control target */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_RCCT        0x0002  /* remote control controller */
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_PROTECT     0x0004  /* streaming media contect protection */
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_VENDOR      0x0008  /* remote control vendor dependent commands */
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_REPORT      0x0020  /* use reporting service for VDP */
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_METADATA    0x0040  /* remote control Metadata Transfer command/response */
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_MULTI_AV    0x0080  /* use multi-av, if controller supports it */
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_BROWSE      0x0010  /* use browsing channel */
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_MASTER      0x0100  /* stream only as master role */
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_ADV_CTRL    0x0200  /* remote control Advanced Control command/response */
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_DELAY_RPT   0x0400  /* allow delay reporting */
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_ACP_START   0x0800  /* start stream when 2nd SNK was accepted   */
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Internal features */
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_FEAT_NO_SCO_SSPD 0x8000  /* Do not suspend av streaming as to AG events(SCO or Call) */
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tBTA_AV_FEAT;
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV channel values */
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CHNL_MSK             0xC0
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CHNL_AUDIO           0x40  /* audio channel */
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CHNL_VIDEO           0x80  /* video channel */
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_CHNL;
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_HNDL_MSK             0x3F
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_HNDL;
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* handle index to mask */
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_HNDL_TO_MSK(h)       ((UINT8)(1 << (h)))
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* tBTA_AV_HNDL to mask */
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_HNDL_TYPE_TO_MSK(h)  ((UINT8)(1 << (h&BTA_AV_HNDL_MSK)))
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* offset of codec type in codec info byte array */
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_TYPE_IDX       AVDT_CODEC_TYPE_INDEX   /* 2 */
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* maximum number of streams created: 1 for audio, 1 for video */
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_NUM_STRS
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_NUM_STRS         2
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_MAX_SEPS
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_MAX_SEPS         2
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_MAX_A2DP_MTU
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /*#define BTA_AV_MAX_A2DP_MTU     668 //224 (DM5) * 3 - 4(L2CAP header) */
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_MAX_A2DP_MTU     1008
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AV_MAX_VDP_MTU
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_MAX_VDP_MTU      1008
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* codec type */
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_SBC        A2D_MEDIA_CT_SBC        /* SBC media codec type */
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_M12        A2D_MEDIA_CT_M12        /* MPEG-1, 2 Audio media codec type */
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_M24        A2D_MEDIA_CT_M24        /* MPEG-2, 4 AAC media codec type */
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_ATRAC      A2D_MEDIA_CT_ATRAC      /* ATRAC family media codec type */
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_H263_P0    VDP_MEDIA_CT_H263_P0    /* H.263 baseline (profile 0) */
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_MPEG4      VDP_MEDIA_CT_MPEG4      /* MPEG-4 Visual Simple Profile */
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_H263_P3    VDP_MEDIA_CT_H263_P3    /* H.263 profile 3 */
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_H263_P8    VDP_MEDIA_CT_H263_P8    /* H.263 profile 8 */
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_VEND       VDP_MEDIA_CT_VEND       /* Non-VDP */
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_CODEC;
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Company ID in BT assigned numbers */
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_BT_VENDOR_ID     VDP_BT_VENDOR_ID        /* Broadcom Corporation */
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* vendor specific codec ID */
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_ID_H264    VDP_CODEC_ID_H264       /* Non-VDP codec ID - H.264 */
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CODEC_ID_IMG     VDP_CODEC_ID_IMG        /* Non-VDP codec ID - images/slideshow */
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* operation id list for BTA_AvRemoteCmd */
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_SELECT        AVRC_ID_SELECT      /* select */
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_UP            AVRC_ID_UP          /* up */
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_DOWN          AVRC_ID_DOWN        /* down */
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_LEFT          AVRC_ID_LEFT        /* left */
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_RIGHT         AVRC_ID_RIGHT       /* right */
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_RIGHT_UP      AVRC_ID_RIGHT_UP    /* right-up */
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_RIGHT_DOWN    AVRC_ID_RIGHT_DOWN  /* right-down */
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_LEFT_UP       AVRC_ID_LEFT_UP     /* left-up */
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_LEFT_DOWN     AVRC_ID_LEFT_DOWN   /* left-down */
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_ROOT_MENU     AVRC_ID_ROOT_MENU   /* root menu */
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_SETUP_MENU    AVRC_ID_SETUP_MENU  /* setup menu */
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_CONT_MENU     AVRC_ID_CONT_MENU   /* contents menu */
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_FAV_MENU      AVRC_ID_FAV_MENU    /* favorite menu */
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_EXIT          AVRC_ID_EXIT        /* exit */
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_0             AVRC_ID_0           /* 0 */
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_1             AVRC_ID_1           /* 1 */
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_2             AVRC_ID_2           /* 2 */
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_3             AVRC_ID_3           /* 3 */
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_4             AVRC_ID_4           /* 4 */
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_5             AVRC_ID_5           /* 5 */
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_6             AVRC_ID_6           /* 6 */
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_7             AVRC_ID_7           /* 7 */
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_8             AVRC_ID_8           /* 8 */
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_9             AVRC_ID_9           /* 9 */
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_DOT           AVRC_ID_DOT         /* dot */
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_ENTER         AVRC_ID_ENTER       /* enter */
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_CLEAR         AVRC_ID_CLEAR       /* clear */
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_CHAN_UP       AVRC_ID_CHAN_UP     /* channel up */
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_CHAN_DOWN     AVRC_ID_CHAN_DOWN   /* channel down */
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_PREV_CHAN     AVRC_ID_PREV_CHAN   /* previous channel */
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_SOUND_SEL     AVRC_ID_SOUND_SEL   /* sound select */
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_INPUT_SEL     AVRC_ID_INPUT_SEL   /* input select */
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_DISP_INFO     AVRC_ID_DISP_INFO   /* display information */
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_HELP          AVRC_ID_HELP        /* help */
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_PAGE_UP       AVRC_ID_PAGE_UP     /* page up */
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_PAGE_DOWN     AVRC_ID_PAGE_DOWN   /* page down */
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_POWER         AVRC_ID_POWER       /* power */
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_VOL_UP        AVRC_ID_VOL_UP      /* volume up */
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_VOL_DOWN      AVRC_ID_VOL_DOWN    /* volume down */
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_MUTE          AVRC_ID_MUTE        /* mute */
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_PLAY          AVRC_ID_PLAY        /* play */
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_STOP          AVRC_ID_STOP        /* stop */
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_PAUSE         AVRC_ID_PAUSE       /* pause */
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_RECORD        AVRC_ID_RECORD      /* record */
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_REWIND        AVRC_ID_REWIND      /* rewind */
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_FAST_FOR      AVRC_ID_FAST_FOR    /* fast forward */
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_EJECT         AVRC_ID_EJECT       /* eject */
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_FORWARD       AVRC_ID_FORWARD     /* forward */
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_BACKWARD      AVRC_ID_BACKWARD    /* backward */
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_ANGLE         AVRC_ID_ANGLE       /* angle */
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_SUBPICT       AVRC_ID_SUBPICT     /* subpicture */
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_F1            AVRC_ID_F1          /* F1 */
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_F2            AVRC_ID_F2          /* F2 */
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_F3            AVRC_ID_F3          /* F3 */
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_F4            AVRC_ID_F4          /* F4 */
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_F5            AVRC_ID_F5          /* F5 */
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_VENDOR           AVRC_ID_VENDOR      /* vendor unique */
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_RC;
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state flag for pass through command */
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_STATE_PRESS      AVRC_STATE_PRESS    /* key pressed */
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_STATE_RELEASE    AVRC_STATE_RELEASE  /* key released */
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_STATE;
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* command codes for BTA_AvVendorCmd */
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CMD_CTRL         AVRC_CMD_CTRL
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CMD_STATUS       AVRC_CMD_STATUS
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CMD_SPEC_INQ     AVRC_CMD_SPEC_INQ
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CMD_NOTIF        AVRC_CMD_NOTIF
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CMD_GEN_INQ      AVRC_CMD_GEN_INQ
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_CMD;
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* response codes for BTA_AvVendorRsp */
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_NOT_IMPL     AVRC_RSP_NOT_IMPL
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_ACCEPT       AVRC_RSP_ACCEPT
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_REJ          AVRC_RSP_REJ
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_IN_TRANS     AVRC_RSP_IN_TRANS
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_IMPL_STBL    AVRC_RSP_IMPL_STBL
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_CHANGED      AVRC_RSP_CHANGED
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RSP_INTERIM      AVRC_RSP_INTERIM
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_CODE;
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* error codes for BTA_AvProtectRsp */
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ERR_NONE             A2D_SUCCESS         /* Success, no error */
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ERR_BAD_STATE        AVDT_ERR_BAD_STATE  /* Message cannot be processed in this state */
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ERR_RESOURCE         AVDT_ERR_RESOURCE   /* Insufficient resources */
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ERR_BAD_CP_TYPE      A2D_BAD_CP_TYPE     /* The requested Content Protection Type is not supported */
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ERR_BAD_CP_FORMAT    A2D_BAD_CP_FORMAT   /* The format of Content Protection Data is not correct */
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_ERR;
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV callback events */
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_ENABLE_EVT       0       /* AV enabled */
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_REGISTER_EVT     1       /* registered to AVDT */
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_OPEN_EVT         2       /* connection opened */
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CLOSE_EVT        3       /* connection closed */
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_START_EVT        4       /* stream data transfer started */
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_STOP_EVT         5       /* stream data transfer stopped */
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_PROTECT_REQ_EVT  6       /* content protection request */
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_PROTECT_RSP_EVT  7       /* content protection response */
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_OPEN_EVT      8       /* remote control channel open */
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_CLOSE_EVT     9       /* remote control channel closed */
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_REMOTE_CMD_EVT   10      /* remote control command */
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_REMOTE_RSP_EVT   11      /* remote control response */
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_VENDOR_CMD_EVT   12      /* vendor dependent remote control command */
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_VENDOR_RSP_EVT   13      /* vendor dependent remote control response */
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RECONFIG_EVT     14      /* reconfigure response */
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_SUSPEND_EVT      15      /* suspend response */
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_PENDING_EVT      16      /* incoming connection pending:
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         * signal channel is open and stream is not open
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         * after BTA_AV_SIG_TIME_VAL ms */
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_META_MSG_EVT     17      /* metadata messages */
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_REJECT_EVT       18      /* incoming connection rejected */
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_RC_FEAT_EVT      19      /* remote control channel peer supported features update */
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Max BTA event */
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_MAX_EVT          20
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_EVT;
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_AV_ENABLE_EVT */
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_FEAT    features;
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_ENABLE;
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Event associated with BTA_AV_REGISTER_EVT */
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;       /* audio/video */
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;       /* Handle associated with the stream. */
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           app_id;     /* ID associated with call to BTA_AvRegister() */
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_REGISTER;
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_OPEN_EVT */
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_EDR_2MBPS        0x01
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_EDR_3MBPS        0x02
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tBTA_AV_EDR;
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         starting;
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_EDR     edr;        /* 0, if peer device does not support EDR */
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_OPEN;
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_CLOSE_EVT */
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_CLOSE;
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_START_EVT */
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         initiator; /* TRUE, if local device initiates the START */
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         suspending;
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_START;
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_SUSPEND_EVT */
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         initiator; /* TRUE, if local device initiates the SUSPEND */
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_SUSPEND;
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_RECONFIG_EVT */
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_RECONFIG;
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_PROTECT_REQ_EVT */
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          len;
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_PROTECT_REQ;
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_PROTECT_RSP_EVT */
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL    chnl;
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          len;
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_ERR     err_code;
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_PROTECT_RSP;
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_RC_OPEN_EVT */
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_FEAT    peer_features;
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         peer_addr;
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATUS  status;
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_RC_OPEN;
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_RC_CLOSE_EVT */
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         peer_addr;
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_RC_CLOSE;
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_RC_FEAT_EVT */
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_FEAT    peer_features;
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_RC_FEAT;
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_REMOTE_CMD_EVT */
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RC      rc_id;
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATE   key_state;
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           len;
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR       hdr;    /* Message header. */
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           label;
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_REMOTE_CMD;
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_REMOTE_RSP_EVT */
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RC      rc_id;
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_STATE   key_state;
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           len;
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CODE    rsp_code;
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           label;
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_REMOTE_RSP;
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_VENDOR_CMD_EVT, BTA_AV_VENDOR_RSP_EVT */
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          len;            /* Max vendor dependent message is 512 */
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           label;
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CODE    code;
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          company_id;
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_VENDOR;
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_META_MSG_EVT */
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rc_handle;
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          len;
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           label;
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CODE    code;
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32          company_id;
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           *p_data;
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG       *p_msg;
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_META_MSG;
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_PENDING_EVT */
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_PEND;
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data associated with BTA_AV_REJECT_EVT */
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_HNDL    hndl;       /* Handle associated with the stream that rejected the connection. */
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_REJECT;
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* union of data associated with AV callback */
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CHNL        chnl;
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_ENABLE      enable;
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_REGISTER    registr;
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_OPEN        open;
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CLOSE       close;
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_START       start;
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_PROTECT_REQ protect_req;
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_PROTECT_RSP protect_rsp;
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RC_OPEN     rc_open;
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RC_CLOSE    rc_close;
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_REMOTE_CMD  remote_cmd;
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_REMOTE_RSP  remote_rsp;
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_VENDOR      vendor_cmd;
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_VENDOR      vendor_rsp;
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RECONFIG    reconfig;
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_SUSPEND     suspend;
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_PEND        pend;
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_META_MSG    meta_msg;
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_REJECT      reject;
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_RC_FEAT     rc_feat;
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV;
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AVC_PACKET_LEN                  AVRC_PACKET_LEN
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_VENDOR_DATA_OFFSET              6
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_VENDOR_HEADER_LEN               4
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_MAX_VENDOR_DEPENDENT_DATA_LEN   (BTA_AVC_PACKET_LEN-BTA_VENDOR_DATA_OFFSET-BTA_VENDOR_HEADER_LEN)
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_GROUP_NAVI_MSG_OP_DATA_LEN      5
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_ERROR_INVALID_CMD           AVRC_STS_BAD_CMD
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_ERROR_INVALID_PARAM         AVRC_STS_BAD_PARAM
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_ERROR_BAD_CONTENTS          AVRC_STS_NOT_FOUND
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_ERROR_INTERNAL              AVRC_STS_INTERNAL_ERR
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_META_SINGLE_PACKET       AVRC_PKT_SINGLE
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AV_CO_METADATA              AVRC_CO_METADATA
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV callback */
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTA_AV_CBACK)(tBTA_AV_EVT event, tBTA_AV *p_data);
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* type for stream state machine action functions */
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (*tBTA_AV_ACT)(void *p_cb, void *p_data);
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* type for registering VDP */
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTA_AV_REG) (tAVDT_CS *p_cs, char *p_service_name, void *p_data);
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AV configuration structure */
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32  company_id;         /* AVRCP Company ID */
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  avrc_mtu;           /* AVRCP MTU at L2CAP for control channel */
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  avrc_br_mtu;        /* AVRCP MTU at L2CAP for browsing channel */
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  avrc_ct_cat;        /* AVRCP controller categories */
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  avrc_tg_cat;        /* AVRCP target categories */
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  sig_mtu;            /* AVDTP signaling channel MTU at L2CAP */
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  audio_mtu;          /* AVDTP audio transport channel MTU at L2CAP */
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    const UINT16 *p_audio_flush_to;/* AVDTP audio transport channel flush timeout */
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  audio_mqs;          /* AVDTP audio channel max data queue size */
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  video_mtu;          /* AVDTP video transport channel MTU at L2CAP */
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  video_flush_to;     /* AVDTP video transport channel flush timeout */
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN avrc_group;         /* TRUE, to accept AVRC 1.3 group nevigation command */
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   num_co_ids;         /* company id count in p_meta_co_ids */
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   num_evt_ids;        /* event id count in p_meta_evt_ids */
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_CODE  rc_pass_rsp;  /* the default response code for pass through commands */
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    const UINT32 *p_meta_co_ids;/* the metadata Get Capabilities response for company id */
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    const UINT8 *p_meta_evt_ids;/* the the metadata Get Capabilities response for event id */
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    const tBTA_AV_ACT *p_act_tbl;/* the action function table for VDP stream */
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBTA_AV_REG       *p_reg;   /* action function to register VDP */
496ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    char              avrc_controller_name[BTA_SERVICE_NAME_LEN]; /* Default AVRCP controller name */
497ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    char              avrc_target_name[BTA_SERVICE_NAME_LEN];     /* Default AVRCP target name*/
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AV_CFG;
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C"
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  External Function Declarations
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvEnable
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Enable the advanced audio/video service. When the enable
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  operation is complete the callback function will be
5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called with a BTA_AV_ENABLE_EVT. This function must
5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be called before other function in the AV API are
5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called.
5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvEnable(tBTA_SEC sec_mask, tBTA_AV_FEAT features,
5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                          tBTA_AV_CBACK *p_cback);
5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvDisable
5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Disable the advanced audio/video service.
5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvDisable(void);
5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvRegister
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Register the audio or video service to stack. When the
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  operation is complete the callback function will be
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  called with a BTA_AV_REGISTER_EVT. This function must
5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be called before AVDT stream is open.
5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvRegister(tBTA_AV_CHNL chnl, const char *p_service_name,
5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                            UINT8 app_id);
5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvDeregister
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Deregister the audio or video service
5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvDeregister(tBTA_AV_HNDL hndl);
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvOpen
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Opens an advanced audio/video connection to a peer device.
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When connection is open callback function is called
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  with a BTA_AV_OPEN_EVT.
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvOpen(BD_ADDR bd_addr, tBTA_AV_HNDL handle,
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                        BOOLEAN use_rc, tBTA_SEC sec_mask);
5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvClose
5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close the current streams.
5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvClose(tBTA_AV_HNDL handle);
5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvDisconnect
5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close the connection to the address.
5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvDisconnect(BD_ADDR bd_addr);
5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvStart
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Start audio/video stream data transfer.
6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvStart(void);
6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvStop
6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Stop audio/video stream data transfer.
6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If suspend is TRUE, this function sends AVDT suspend signal
6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to the connected peer(s).
6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvStop(BOOLEAN suspend);
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvReconfig
6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Reconfigure the audio/video stream.
6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If suspend is TRUE, this function tries the suspend/reconfigure
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  procedure first.
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If suspend is FALSE or when suspend/reconfigure fails,
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  this function closes and re-opens the AVDT connection.
6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvReconfig(tBTA_AV_HNDL hndl, BOOLEAN suspend, UINT8 sep_info_idx,
6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                            UINT8 *p_codec_info, UINT8 num_protect, UINT8 *p_protect_info);
6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvProtectReq
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a content protection request.  This function can only
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be used if AV is enabled with feature BTA_AV_FEAT_PROTECT.
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvProtectReq(tBTA_AV_HNDL hndl, UINT8 *p_data, UINT16 len);
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvProtectRsp
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a content protection response.  This function must
6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be called if a BTA_AV_PROTECT_REQ_EVT is received.
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This function can only be used if AV is enabled with
6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  feature BTA_AV_FEAT_PROTECT.
6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvProtectRsp(tBTA_AV_HNDL hndl, UINT8 error_code, UINT8 *p_data,
6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                              UINT16 len);
6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvRemoteCmd
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a remote control command.  This function can only
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  be used if AV is enabled with feature BTA_AV_FEAT_RCCT.
6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvRemoteCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_RC rc_id,
6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             tBTA_AV_STATE key_state);
6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvVendorCmd
6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a vendor dependent remote control command.  This
6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  function can only be used if AV is enabled with feature
6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTA_AV_FEAT_VENDOR.
6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvVendorCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE cmd_code,
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             UINT8 *p_data, UINT16 len);
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvVendorRsp
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a vendor dependent remote control response.
6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This function must be called if a BTA_AV_VENDOR_CMD_EVT
7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is received. This function can only be used if AV is
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  enabled with feature BTA_AV_FEAT_VENDOR.
7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvVendorRsp(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE rsp_code,
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             UINT8 *p_data, UINT16 len, UINT32 company_id);
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvOpenRc
7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Open an AVRCP connection toward the device with the
7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  specified handle
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvOpenRc(tBTA_AV_HNDL handle);
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvCloseRc
7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close an AVRCP connection
7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvCloseRc(UINT8 rc_handle);
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvMetaRsp
7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a Metadata command/response. The message contained
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  in p_pkt can be composed with AVRC utility functions.
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This function can only be used if AV is enabled with feature
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTA_AV_FEAT_METADATA.
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvMetaRsp(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE rsp_code,
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                               BT_HDR *p_pkt);
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         BTA_AvMetaCmd
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a Metadata/Advanced Control command. The message contained
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  in p_pkt can be composed with AVRC utility functions.
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This function can only be used if AV is enabled with feature
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  BTA_AV_FEAT_METADATA.
7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This message is sent only when the peer supports the TG role.
7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*8                  The only command makes sense right now is the absolute volume command.
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API void BTA_AvMetaCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_CMD cmd_code, BT_HDR *p_pkt);
7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_AV_API_H */
769