1 /******************************************************************************
2  *
3  *  Copyright (C) 2004-2012 Broadcom Corporation
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at:
8  *
9  *  http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  ******************************************************************************/
18 
19 /******************************************************************************
20  *
21  *  This is the public interface file for the simulatenous advanced
22  *  audio/video streaming (AV) source and sink of BTA, Broadcom's Bluetooth
23  *  application layer for mobile phones.
24  *
25  ******************************************************************************/
26 #ifndef BTA_AR_API_H
27 #define BTA_AR_API_H
28 
29 #include "avct_api.h"
30 #include "avdt_api.h"
31 #include "avrc_api.h"
32 #include "bta_av_api.h"
33 #include "bta_sys.h"
34 #include "sdp_api.h"
35 
36 /*****************************************************************************
37  *  Constants and data types
38  ****************************************************************************/
39 /* This event signal to AR user that other profile is connected */
40 #define BTA_AR_AVDT_CONN_EVT (AVDT_MAX_EVT + 1)
41 
42 /*******************************************************************************
43  *
44  * Function         bta_ar_init
45  *
46  * Description      This function is called from bta_sys_init().
47  *                  to initialize the control block
48  *
49  * Returns          void
50  *
51  ******************************************************************************/
52 extern void bta_ar_init(void);
53 
54 /*******************************************************************************
55  *
56  * Function         bta_ar_reg_avdt
57  *
58  * Description      This function is called to register to AVDTP.
59  *
60  * Returns          void
61  *
62  ******************************************************************************/
63 extern void bta_ar_reg_avdt(tAVDT_REG* p_reg, tAVDT_CTRL_CBACK* p_cback,
64                             tBTA_SYS_ID sys_id);
65 
66 /*******************************************************************************
67  *
68  * Function         bta_ar_dereg_avdt
69  *
70  * Description      This function is called to de-register from AVDTP.
71  *
72  * Returns          void
73  *
74  ******************************************************************************/
75 extern void bta_ar_dereg_avdt(tBTA_SYS_ID sys_id);
76 
77 /*******************************************************************************
78  *
79  * Function         bta_ar_avdt_conn
80  *
81  * Description      This function is called to let ar know that some AVDTP
82  *                  profile is connected for this sys_id.
83  *                  If the other sys modules started a timer for PENDING_EVT,
84  *                  the timer can be stopped now.
85  *
86  * Returns          void
87  *
88  ******************************************************************************/
89 extern void bta_ar_avdt_conn(tBTA_SYS_ID sys_id, BD_ADDR bd_addr);
90 
91 /*******************************************************************************
92  *
93  * Function         bta_ar_reg_avct
94  *
95  * Description      This function is called to register to AVCTP.
96  *
97  * Returns          void
98  *
99  ******************************************************************************/
100 extern void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask,
101                             tBTA_SYS_ID sys_id);
102 
103 /*******************************************************************************
104  *
105  * Function         bta_ar_dereg_avct
106  *
107  * Description      This function is called to deregister from AVCTP.
108  *
109  * Returns          void
110  *
111  ******************************************************************************/
112 extern void bta_ar_dereg_avct(tBTA_SYS_ID sys_id);
113 
114 /******************************************************************************
115  *
116  * Function         bta_ar_reg_avrc
117  *
118  * Description      This function is called to register an SDP record for AVRCP.
119  *
120  * Returns          void
121  *
122  *****************************************************************************/
123 extern void bta_ar_reg_avrc(uint16_t service_uuid, const char* p_service_name,
124                             const char* p_provider_name, uint16_t categories,
125                             tBTA_SYS_ID sys_id, bool browse_supported,
126                             uint16_t profile_version);
127 
128 /******************************************************************************
129  *
130  * Function         bta_ar_dereg_avrc
131  *
132  * Description      This function is called to de-register/delete an SDP record
133  *                  for AVRCP.
134  *
135  * Returns          void
136  *
137  *****************************************************************************/
138 extern void bta_ar_dereg_avrc(uint16_t service_uuid, tBTA_SYS_ID sys_id);
139 
140 #endif /* BTA_AR_API_H */
141