NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
bta_av_co.h
1/******************************************************************************
2 *
3 * Copyright (C) 2003-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 interface file for advanced audio/video call-out functions.
22 *
23 ******************************************************************************/
24#ifndef BTA_AV_CO_H
25#define BTA_AV_CO_H
26
27#include "l2c_api.h"
28#include "bta_av_api.h"
29
30/*****************************************************************************
31** Constants and data types
32*****************************************************************************/
33
34/* TRUE to use SCMS-T content protection */
35#ifndef BTA_AV_CO_CP_SCMS_T
36#define BTA_AV_CO_CP_SCMS_T FALSE
37#endif
38
39/* the content protection IDs assigned by BT SIG */
40#define BTA_AV_CP_SCMS_T_ID 0x0002
41#define BTA_AV_CP_DTCP_ID 0x0001
42
43#define BTA_AV_CP_LOSC 2
44#define BTA_AV_CP_INFO_LEN 3
45
46#define BTA_AV_CP_SCMS_COPY_MASK 3
47#define BTA_AV_CP_SCMS_COPY_FREE 2
48#define BTA_AV_CP_SCMS_COPY_ONCE 1
49#define BTA_AV_CP_SCMS_COPY_NEVER 0
50
51#define BTA_AV_CO_DEFAULT_AUDIO_OFFSET AVDT_MEDIA_OFFSET
52
53enum
54{
55 BTA_AV_CO_ST_INIT,
56 BTA_AV_CO_ST_IN,
57 BTA_AV_CO_ST_OUT,
58 BTA_AV_CO_ST_OPEN,
59 BTA_AV_CO_ST_STREAM
60};
61
62
63/* data type for the Audio Codec Information*/
64typedef struct
65{
66 UINT16 bit_rate; /* SBC encoder bit rate in kbps */
67 UINT16 bit_rate_busy; /* SBC encoder bit rate in kbps */
68 UINT16 bit_rate_swampd;/* SBC encoder bit rate in kbps */
69 UINT8 busy_level; /* Busy level indicating the bit-rate to be used */
70 UINT8 codec_info[AVDT_CODEC_SIZE];
71 UINT8 codec_type; /* Codec type */
73
74/*******************************************************************************
75**
76** Function bta_av_co_audio_init
77**
78** Description This callout function is executed by AV when it is
79** started by calling BTA_AvEnable(). This function can be
80** used by the phone to initialize audio paths or for other
81** initialization purposes.
82**
83**
84** Returns Stream codec and content protection capabilities info.
85**
86*******************************************************************************/
87BTA_API extern BOOLEAN bta_av_co_audio_init(UINT8 *p_codec_type, UINT8 *p_codec_info,
88 UINT8 *p_num_protect, UINT8 *p_protect_info, UINT8 index);
89
90/*******************************************************************************
91**
92** Function bta_av_co_audio_disc_res
93**
94** Description This callout function is executed by AV to report the
95** number of stream end points (SEP) were found during the
96** AVDT stream discovery process.
97**
98**
99** Returns void.
100**
101*******************************************************************************/
102BTA_API extern void bta_av_co_audio_disc_res(tBTA_AV_HNDL hndl, UINT8 num_seps,
103 UINT8 num_snk, BD_ADDR addr);
104
105/*******************************************************************************
106**
107** Function bta_av_co_video_disc_res
108**
109** Description This callout function is executed by AV to report the
110** number of stream end points (SEP) were found during the
111** AVDT stream discovery process.
112**
113**
114** Returns void.
115**
116*******************************************************************************/
117BTA_API extern void bta_av_co_video_disc_res(tBTA_AV_HNDL hndl, UINT8 num_seps,
118 UINT8 num_snk, BD_ADDR addr);
119
120/*******************************************************************************
121**
122** Function bta_av_co_audio_getconfig
123**
124** Description This callout function is executed by AV to retrieve the
125** desired codec and content protection configuration for the
126** audio stream.
127**
128**
129** Returns Stream codec and content protection configuration info.
130**
131*******************************************************************************/
132BTA_API extern UINT8 bta_av_co_audio_getconfig(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
133 UINT8 *p_codec_info, UINT8 *p_sep_info_idx, UINT8 seid,
134 UINT8 *p_num_protect, UINT8 *p_protect_info);
135
136/*******************************************************************************
137**
138** Function bta_av_co_video_getconfig
139**
140** Description This callout function is executed by AV to retrieve the
141** desired codec and content protection configuration for the
142** video stream.
143**
144**
145** Returns Stream codec and content protection configuration info.
146**
147*******************************************************************************/
148BTA_API extern UINT8 bta_av_co_video_getconfig(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
149 UINT8 *p_codec_info, UINT8 *p_sep_info_idx, UINT8 seid,
150 UINT8 *p_num_protect, UINT8 *p_protect_info);
151
152/*******************************************************************************
153**
154** Function bta_av_co_audio_setconfig
155**
156** Description This callout function is executed by AV to set the
157** codec and content protection configuration of the audio stream.
158**
159**
160** Returns void
161**
162*******************************************************************************/
163BTA_API extern void bta_av_co_audio_setconfig(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
164 UINT8 *p_codec_info, UINT8 seid, BD_ADDR addr,
165 UINT8 num_protect, UINT8 *p_protect_info);
166
167/*******************************************************************************
168**
169** Function bta_av_co_video_setconfig
170**
171** Description This callout function is executed by AV to set the
172** codec and content protection configuration of the video stream.
173**
174**
175** Returns void
176**
177*******************************************************************************/
178BTA_API extern void bta_av_co_video_setconfig(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
179 UINT8 *p_codec_info, UINT8 seid, BD_ADDR addr,
180 UINT8 num_protect, UINT8 *p_protect_info);
181
182/*******************************************************************************
183**
184** Function bta_av_co_audio_open
185**
186** Description This function is called by AV when the audio stream connection
187** is opened.
188** BTA-AV maintains the MTU of A2DP streams.
189** If this is the 2nd audio stream, mtu is the smaller of the 2
190** streams.
191**
192** Returns void
193**
194*******************************************************************************/
195BTA_API extern void bta_av_co_audio_open(tBTA_AV_HNDL hndl,
196 tBTA_AV_CODEC codec_type, UINT8 *p_codec_info,
197 UINT16 mtu);
198
199/*******************************************************************************
200**
201** Function bta_av_co_video_open
202**
203** Description This function is called by AV when the video stream connection
204** is opened.
205**
206**
207** Returns void
208**
209*******************************************************************************/
210BTA_API extern void bta_av_co_video_open(tBTA_AV_HNDL hndl,
211 tBTA_AV_CODEC codec_type, UINT8 *p_codec_info,
212 UINT16 mtu);
213
214/*******************************************************************************
215**
216** Function bta_av_co_audio_close
217**
218** Description This function is called by AV when the audio stream connection
219** is closed.
220** BTA-AV maintains the MTU of A2DP streams.
221** When one stream is closed and no other audio stream is open,
222** mtu is reported as 0.
223** Otherwise, the MTU remains open is reported.
224**
225** Returns void
226**
227*******************************************************************************/
228BTA_API extern void bta_av_co_audio_close(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
229 UINT16 mtu);
230
231/*******************************************************************************
232**
233** Function bta_av_co_video_close
234**
235** Description This function is called by AV when the video stream connection
236** is closed.
237**
238**
239** Returns void
240**
241*******************************************************************************/
242BTA_API extern void bta_av_co_video_close(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
243 UINT16 mtu);
244
245/*******************************************************************************
246**
247** Function bta_av_co_audio_start
248**
249** Description This function is called by AV when the audio streaming data
250** transfer is started.
251**
252**
253** Returns void
254**
255*******************************************************************************/
256BTA_API extern void bta_av_co_audio_start(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
257 UINT8 *p_codec_info, BOOLEAN *p_no_rtp_hdr);
258
259/*******************************************************************************
260**
261** Function bta_av_co_video_start
262**
263** Description This function is called by AV when the video streaming data
264** transfer is started.
265**
266**
267** Returns void
268**
269*******************************************************************************/
270BTA_API extern void bta_av_co_video_start(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type,
271 UINT8 *p_codec_info, BOOLEAN *p_no_rtp_hdr);
272
273/*******************************************************************************
274**
275** Function bta_av_co_audio_stop
276**
277** Description This function is called by AV when the audio streaming data
278** transfer is stopped.
279**
280**
281** Returns void
282**
283*******************************************************************************/
284BTA_API extern void bta_av_co_audio_stop(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type);
285
286/*******************************************************************************
287**
288** Function bta_av_co_video_stop
289**
290** Description This function is called by AV when the video streaming data
291** transfer is stopped.
292**
293**
294** Returns void
295**
296*******************************************************************************/
297BTA_API extern void bta_av_co_video_stop(tBTA_AV_HNDL hndl, tBTA_AV_CODEC codec_type);
298
299/*******************************************************************************
300**
301** Function bta_av_co_audio_src_data_path
302**
303** Description This function is called to get the next data buffer from
304** the audio codec
305**
306** Returns NULL if data is not ready.
307** Otherwise, a GKI buffer (BT_HDR*) containing the audio data.
308**
309*******************************************************************************/
310BTA_API extern void * bta_av_co_audio_src_data_path(tBTA_AV_CODEC codec_type,
311 UINT32 *p_len, UINT32 *p_timestamp);
312
313/*******************************************************************************
314**
315** Function bta_av_co_video_src_data_path
316**
317** Description This function is called to get the next data buffer from
318** the video codec.
319**
320** Returns NULL if data is not ready.
321** Otherwise, a video data buffer (UINT8*).
322**
323*******************************************************************************/
324BTA_API extern void * bta_av_co_video_src_data_path(tBTA_AV_CODEC codec_type,
325 UINT32 *p_len, UINT32 *p_timestamp);
326
327/*******************************************************************************
328**
329** Function bta_av_co_audio_drop
330**
331** Description An Audio packet is dropped. .
332** It's very likely that the connected headset with this handle
333** is moved far away. The implementation may want to reduce
334** the encoder bit rate setting to reduce the packet size.
335**
336** Returns void
337**
338*******************************************************************************/
339BTA_API extern void bta_av_co_audio_drop(tBTA_AV_HNDL hndl);
340
341/*******************************************************************************
342**
343** Function bta_av_co_video_report_conn
344**
345** Description This function is called by AV when the reporting channel is
346** opened (open=TRUE) or closed (open=FALSE).
347**
348** Returns void
349**
350*******************************************************************************/
351BTA_API extern void bta_av_co_video_report_conn (BOOLEAN open, UINT8 avdt_handle);
352
353/*******************************************************************************
354**
355** Function bta_av_co_video_report_rr
356**
357** Description This function is called by AV when a Receiver Report is
358** received
359**
360** Returns void
361**
362*******************************************************************************/
363BTA_API extern void bta_av_co_video_report_rr (UINT32 packet_lost);
364
365/*******************************************************************************
366**
367** Function bta_av_co_audio_delay
368**
369** Description This function is called by AV when the audio stream connection
370** needs to send the initial delay report to the connected SRC.
371**
372**
373** Returns void
374**
375*******************************************************************************/
376BTA_API extern void bta_av_co_audio_delay(tBTA_AV_HNDL hndl, UINT16 delay);
377
378/*******************************************************************************
379**
380** Function bta_av_co_video_delay
381**
382** Description This function is called by AV when the video stream connection
383** needs to send the initial delay report to the connected SRC.
384**
385**
386** Returns void
387**
388*******************************************************************************/
389BTA_API extern void bta_av_co_video_delay(tBTA_AV_HNDL hndl, UINT16 delay);
390
391#endif /* BTA_AV_CO_H */
392