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 <cstdint>
30 
31 #include "bta/sys/bta_sys.h"
32 #include "stack/include/avdt_api.h"
33 
34 /*****************************************************************************
35  *  Constants and data types
36  ****************************************************************************/
37 /* This event signal to AR user that other profile is connected */
38 #define BTA_AR_AVDT_CONN_EVT (AVDT_MAX_EVT + 1)
39 
40 /*******************************************************************************
41  *
42  * Function         bta_ar_init
43  *
44  * Description      This function is called from bta_sys_init().
45  *                  to initialize the control block
46  *
47  * Returns          void
48  *
49  ******************************************************************************/
50 extern void bta_ar_init(void);
51 
52 /*******************************************************************************
53  *
54  * Function         bta_ar_reg_avdt
55  *
56  * Description      This function is called to register to AVDTP.
57  *
58  * Returns          void
59  *
60  ******************************************************************************/
61 extern void bta_ar_reg_avdt(AvdtpRcb* p_reg, tAVDT_CTRL_CBACK* p_cback);
62 
63 /*******************************************************************************
64  *
65  * Function         bta_ar_dereg_avdt
66  *
67  * Description      This function is called to de-register from AVDTP.
68  *
69  * Returns          void
70  *
71  ******************************************************************************/
72 extern void bta_ar_dereg_avdt();
73 
74 /*******************************************************************************
75  *
76  * Function         bta_ar_avdt_conn
77  *
78  * Description      This function is called to let ar know that some AVDTP
79  *                  profile is connected for this sys_id.
80  *                  If the other sys modules started a timer for PENDING_EVT,
81  *                  the timer can be stopped now.
82  *
83  * Returns          void
84  *
85  ******************************************************************************/
86 extern void bta_ar_avdt_conn(tBTA_SYS_ID sys_id, const RawAddress& bd_addr,
87                              uint8_t scb_index);
88 
89 /*******************************************************************************
90  *
91  * Function         bta_ar_reg_avct
92  *
93  * Description      This function is called to register to AVCTP.
94  *
95  * Returns          void
96  *
97  ******************************************************************************/
98 extern void bta_ar_reg_avct();
99 
100 /*******************************************************************************
101  *
102  * Function         bta_ar_dereg_avct
103  *
104  * Description      This function is called to deregister from AVCTP.
105  *
106  * Returns          void
107  *
108  ******************************************************************************/
109 extern void bta_ar_dereg_avct();
110 
111 /******************************************************************************
112  *
113  * Function         bta_ar_reg_avrc
114  *
115  * Description      This function is called to register an SDP record for AVRCP.
116  *
117  * Returns          void
118  *
119  *****************************************************************************/
120 extern void bta_ar_reg_avrc(uint16_t service_uuid, const char* p_service_name,
121                             const char* p_provider_name, uint16_t categories,
122                             bool browse_supported, uint16_t profile_version);
123 
124 /******************************************************************************
125  *
126  * Function         bta_ar_dereg_avrc
127  *
128  * Description      This function is called to de-register/delete an SDP record
129  *                  for AVRCP.
130  *
131  * Returns          void
132  *
133  *****************************************************************************/
134 extern void bta_ar_dereg_avrc(uint16_t service_uuid);
135 
136 #endif /* BTA_AR_API_H */
137