1 /******************************************************************************
2  *
3  *  Copyright (C) 2002-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 interface file contains the interface AVDTP conformance API.  These
22  *  additional API functions and callback events are provided for
23  *  conformance testing purposes only.  They are not intended to be used by
24  *  an application.
25  *
26  ******************************************************************************/
27 #ifndef AVDT_CAPI_H
28 #define AVDT_CAPI_H
29 
30 #include "stack/avdt_api.h"
31 
32 /* start AVDTC events here to distinguish from AVDT events */
33 #define AVDTC_EVT_BEGIN             0x80
34 
35 #define AVDTC_DISCOVER_IND_EVT      (0 + AVDTC_EVT_BEGIN)   /* Discover indication */
36 #define AVDTC_GETCAP_IND_EVT        (1 + AVDTC_EVT_BEGIN)   /* Get capabilities indication */
37 #define AVDTC_SETCONFIG_CFM_EVT     (2 + AVDTC_EVT_BEGIN)   /* Set configuration confirm */
38 #define AVDTC_GETCONFIG_IND_EVT     (3 + AVDTC_EVT_BEGIN)   /* Get configuration indication */
39 #define AVDTC_GETCONFIG_CFM_EVT     (4 + AVDTC_EVT_BEGIN)   /* Get configuration confirm */
40 #define AVDTC_OPEN_IND_EVT          (5 + AVDTC_EVT_BEGIN)   /* Open indication */
41 #define AVDTC_START_IND_EVT         (6 + AVDTC_EVT_BEGIN)   /* Start indication */
42 #define AVDTC_CLOSE_IND_EVT         (7 + AVDTC_EVT_BEGIN)   /* Close indication */
43 #define AVDTC_SUSPEND_IND_EVT       (8 + AVDTC_EVT_BEGIN)   /* Suspend indication */
44 #define AVDTC_ABORT_IND_EVT         (9 + AVDTC_EVT_BEGIN)   /* Abort indication */
45 #define AVDTC_ABORT_CFM_EVT         (10 + AVDTC_EVT_BEGIN)  /* Abort confirm */
46 
47 typedef struct {
48     tAVDT_EVT_HDR   hdr;                        /* Event header */
49     UINT8           seid_list[AVDT_NUM_SEPS];   /* Array of SEID values */
50     UINT8           num_seps;                   /* Number of values in array */
51 } tAVDT_MULTI;
52 
53 /* Union of all control callback event data structures */
54 typedef union {
55     tAVDT_EVT_HDR       hdr;
56     tAVDT_CONFIG        getconfig_cfm;
57     tAVDT_MULTI         start_ind;
58     tAVDT_MULTI         suspend_ind;
59 } tAVDTC_CTRL;
60 
61 typedef void tAVDTC_CTRL_CBACK(UINT8 handle, BD_ADDR bd_addr, UINT8 event, tAVDTC_CTRL *p_data);
62 
63 #ifdef __cplusplus
64 extern "C"
65 {
66 #endif
67 
68 /*******************************************************************************
69 **
70 ** Function         AVDTC_Init
71 **
72 ** Description      This function is called to begin using the conformance API.
73 **                  It must be called after AVDT_Register() and before any
74 **                  other API or conformance API functions are called.
75 **
76 ** Returns          void
77 **
78 *******************************************************************************/
79 extern void AVDTC_Init(tAVDTC_CTRL_CBACK *p_cback);
80 
81 /*******************************************************************************
82 **
83 ** Function         AVDTC_DiscoverRsp
84 **
85 ** Description      Send a discover response.
86 **
87 ** Returns          void
88 **
89 *******************************************************************************/
90 extern void AVDTC_DiscoverRsp(BD_ADDR bd_addr, UINT8 label,
91                               tAVDT_SEP_INFO sep_info[], UINT8 num_seps);
92 
93 /*******************************************************************************
94 **
95 ** Function         AVDTC_GetCapRsp
96 **
97 ** Description     Send a get capabilities response.
98 **
99 ** Returns          void
100 **
101 *******************************************************************************/
102 extern void AVDTC_GetCapRsp(BD_ADDR bd_addr, UINT8 label, tAVDT_CFG *p_cap);
103 
104 /*******************************************************************************
105 **
106 ** Function         AVDTC_GetAllCapRsp
107 **
108 ** Description     Send a get all capabilities response.
109 **
110 ** Returns          void
111 **
112 *******************************************************************************/
113 extern void AVDTC_GetAllCapRsp(BD_ADDR bd_addr, UINT8 label, tAVDT_CFG *p_cap);
114 
115 /*******************************************************************************
116 **
117 ** Function         AVDTC_GetConfigReq
118 **
119 ** Description      Send a get configuration request.
120 **
121 ** Returns          void
122 **
123 *******************************************************************************/
124 extern void AVDTC_GetConfigReq(UINT8 handle);
125 
126 /*******************************************************************************
127 **
128 ** Function         AVDTC_GetConfigRsp
129 **
130 ** Description      Send a get configuration response.
131 **
132 ** Returns          void
133 **
134 *******************************************************************************/
135 extern void AVDTC_GetConfigRsp(UINT8 handle, UINT8 label, tAVDT_CFG *p_cfg);
136 
137 /*******************************************************************************
138 **
139 ** Function         AVDTC_OpenReq
140 **
141 ** Description      Send an open request.
142 **
143 ** Returns          void
144 **
145 *******************************************************************************/
146 extern void AVDTC_OpenReq(UINT8 handle);
147 
148 /*******************************************************************************
149 **
150 ** Function         AVDTC_OpenRsp
151 **
152 ** Description      Send an open response.
153 **
154 ** Returns          void
155 **
156 *******************************************************************************/
157 extern void AVDTC_OpenRsp(UINT8 handle, UINT8 label);
158 
159 /*******************************************************************************
160 **
161 ** Function         AVDTC_StartRsp
162 **
163 ** Description      Send a start response.
164 **
165 ** Returns          void
166 **
167 *******************************************************************************/
168 extern void AVDTC_StartRsp(UINT8 *p_handles, UINT8 num_handles, UINT8 label);
169 
170 /*******************************************************************************
171 **
172 ** Function         AVDTC_CloseRsp
173 **
174 ** Description      Send a close response.
175 **
176 ** Returns          void
177 **
178 *******************************************************************************/
179 extern void AVDTC_CloseRsp(UINT8 handle, UINT8 label);
180 
181 /*******************************************************************************
182 **
183 ** Function         AVDTC_SuspendRsp
184 **
185 ** Description      Send a suspend response.
186 **
187 ** Returns          void
188 **
189 *******************************************************************************/
190 extern void AVDTC_SuspendRsp(UINT8 *p_handles, UINT8 num_handles, UINT8 label);
191 
192 /*******************************************************************************
193 **
194 ** Function         AVDTC_AbortReq
195 **
196 ** Description      Send an abort request.
197 **
198 ** Returns          void
199 **
200 *******************************************************************************/
201 extern void AVDTC_AbortReq(UINT8 handle);
202 
203 /*******************************************************************************
204 **
205 ** Function         AVDTC_AbortRsp
206 **
207 ** Description      Send an abort response.
208 **
209 ** Returns          void
210 **
211 *******************************************************************************/
212 extern void AVDTC_AbortRsp(UINT8 handle, UINT8 label);
213 
214 /*******************************************************************************
215 **
216 ** Function         AVDTC_Rej
217 **
218 ** Description      Send a reject message.
219 **
220 ** Returns          void
221 **
222 *******************************************************************************/
223 extern void AVDTC_Rej(UINT8 handle, BD_ADDR bd_addr, UINT8 cmd, UINT8 label,
224                       UINT8 err_code, UINT8 err_param);
225 
226 #ifdef __cplusplus
227 }
228 #endif
229 
230 #endif /* AVDT_CAPI_H */
231