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