1 /******************************************************************************
2  *
3  *  Copyright 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(AvdtpRcb* 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, const RawAddress& bd_addr,
90                              uint8_t scb_index);
91 
92 /*******************************************************************************
93  *
94  * Function         bta_ar_reg_avct
95  *
96  * Description      This function is called to register to AVCTP.
97  *
98  * Returns          void
99  *
100  ******************************************************************************/
101 extern void bta_ar_reg_avct(uint16_t mtu, uint16_t mtu_br, uint8_t sec_mask,
102                             tBTA_SYS_ID sys_id);
103 
104 /*******************************************************************************
105  *
106  * Function         bta_ar_dereg_avct
107  *
108  * Description      This function is called to deregister from AVCTP.
109  *
110  * Returns          void
111  *
112  ******************************************************************************/
113 extern void bta_ar_dereg_avct(tBTA_SYS_ID sys_id);
114 
115 /******************************************************************************
116  *
117  * Function         bta_ar_reg_avrc
118  *
119  * Description      This function is called to register an SDP record for AVRCP.
120  *
121  * Returns          void
122  *
123  *****************************************************************************/
124 extern void bta_ar_reg_avrc(uint16_t service_uuid, const char* p_service_name,
125                             const char* p_provider_name, uint16_t categories,
126                             tBTA_SYS_ID sys_id, bool browse_supported,
127                             uint16_t profile_version);
128 
129 /******************************************************************************
130  *
131  * Function         bta_ar_dereg_avrc
132  *
133  * Description      This function is called to de-register/delete an SDP record
134  *                  for AVRCP.
135  *
136  * Returns          void
137  *
138  *****************************************************************************/
139 extern void bta_ar_dereg_avrc(uint16_t service_uuid, tBTA_SYS_ID sys_id);
140 
141 #endif /* BTA_AR_API_H */
142