39#ifndef BTA_AV_WITH_AVCTP_AUTHORIZATION
40#define BTA_AV_WITH_AVCTP_AUTHORIZATION FALSE
44#define BTA_AV_SUCCESS 0
46#define BTA_AV_FAIL_SDP 2
47#define BTA_AV_FAIL_STREAM 3
48#define BTA_AV_FAIL_RESOURCES 4
49#define BTA_AV_FAIL_ROLE 5
51typedef UINT8 tBTA_AV_STATUS;
54#define BTA_AV_FEAT_RCTG 0x0001
55#define BTA_AV_FEAT_RCCT 0x0002
56#define BTA_AV_FEAT_PROTECT 0x0004
57#define BTA_AV_FEAT_VENDOR 0x0008
58#define BTA_AV_FEAT_REPORT 0x0020
59#define BTA_AV_FEAT_METADATA 0x0040
60#define BTA_AV_FEAT_MULTI_AV 0x0080
61#define BTA_AV_FEAT_BROWSE 0x0010
62#define BTA_AV_FEAT_MASTER 0x0100
63#define BTA_AV_FEAT_ADV_CTRL 0x0200
64#define BTA_AV_FEAT_DELAY_RPT 0x0400
65#define BTA_AV_FEAT_ACP_START 0x0800
68#define BTA_AV_FEAT_NO_SCO_SSPD 0x8000
70typedef UINT16 tBTA_AV_FEAT;
73#define BTA_AV_CHNL_MSK 0xC0
74#define BTA_AV_CHNL_AUDIO 0x40
75#define BTA_AV_CHNL_VIDEO 0x80
76typedef UINT8 tBTA_AV_CHNL;
79#define BTA_AV_HNDL_MSK 0x3F
80typedef UINT8 tBTA_AV_HNDL;
82#define BTA_AV_HNDL_TO_MSK(h) ((UINT8)(1 << (h)))
85#define BTA_AV_HNDL_TYPE_TO_MSK(h) ((UINT8)(1 << (h&BTA_AV_HNDL_MSK)))
88#define BTA_AV_CODEC_TYPE_IDX AVDT_CODEC_TYPE_INDEX
93#ifndef BTA_AV_NUM_STRS
94#define BTA_AV_NUM_STRS 2
97#ifndef BTA_AV_MAX_SEPS
98#define BTA_AV_MAX_SEPS 2
101#ifndef BTA_AV_MAX_A2DP_MTU
103#define BTA_AV_MAX_A2DP_MTU 1008
106#ifndef BTA_AV_MAX_VDP_MTU
107#define BTA_AV_MAX_VDP_MTU 1008
112#define BTA_AV_CODEC_SBC A2D_MEDIA_CT_SBC
113#define BTA_AV_CODEC_M12 A2D_MEDIA_CT_M12
114#define BTA_AV_CODEC_M24 A2D_MEDIA_CT_M24
115#define BTA_AV_CODEC_ATRAC A2D_MEDIA_CT_ATRAC
116#define BTA_AV_CODEC_H263_P0 VDP_MEDIA_CT_H263_P0
117#define BTA_AV_CODEC_MPEG4 VDP_MEDIA_CT_MPEG4
118#define BTA_AV_CODEC_H263_P3 VDP_MEDIA_CT_H263_P3
119#define BTA_AV_CODEC_H263_P8 VDP_MEDIA_CT_H263_P8
120#define BTA_AV_CODEC_VEND VDP_MEDIA_CT_VEND
122typedef UINT8 tBTA_AV_CODEC;
125#define BTA_AV_BT_VENDOR_ID VDP_BT_VENDOR_ID
128#define BTA_AV_CODEC_ID_H264 VDP_CODEC_ID_H264
129#define BTA_AV_CODEC_ID_IMG VDP_CODEC_ID_IMG
132#define BTA_AV_RC_SELECT AVRC_ID_SELECT
133#define BTA_AV_RC_UP AVRC_ID_UP
134#define BTA_AV_RC_DOWN AVRC_ID_DOWN
135#define BTA_AV_RC_LEFT AVRC_ID_LEFT
136#define BTA_AV_RC_RIGHT AVRC_ID_RIGHT
137#define BTA_AV_RC_RIGHT_UP AVRC_ID_RIGHT_UP
138#define BTA_AV_RC_RIGHT_DOWN AVRC_ID_RIGHT_DOWN
139#define BTA_AV_RC_LEFT_UP AVRC_ID_LEFT_UP
140#define BTA_AV_RC_LEFT_DOWN AVRC_ID_LEFT_DOWN
141#define BTA_AV_RC_ROOT_MENU AVRC_ID_ROOT_MENU
142#define BTA_AV_RC_SETUP_MENU AVRC_ID_SETUP_MENU
143#define BTA_AV_RC_CONT_MENU AVRC_ID_CONT_MENU
144#define BTA_AV_RC_FAV_MENU AVRC_ID_FAV_MENU
145#define BTA_AV_RC_EXIT AVRC_ID_EXIT
146#define BTA_AV_RC_0 AVRC_ID_0
147#define BTA_AV_RC_1 AVRC_ID_1
148#define BTA_AV_RC_2 AVRC_ID_2
149#define BTA_AV_RC_3 AVRC_ID_3
150#define BTA_AV_RC_4 AVRC_ID_4
151#define BTA_AV_RC_5 AVRC_ID_5
152#define BTA_AV_RC_6 AVRC_ID_6
153#define BTA_AV_RC_7 AVRC_ID_7
154#define BTA_AV_RC_8 AVRC_ID_8
155#define BTA_AV_RC_9 AVRC_ID_9
156#define BTA_AV_RC_DOT AVRC_ID_DOT
157#define BTA_AV_RC_ENTER AVRC_ID_ENTER
158#define BTA_AV_RC_CLEAR AVRC_ID_CLEAR
159#define BTA_AV_RC_CHAN_UP AVRC_ID_CHAN_UP
160#define BTA_AV_RC_CHAN_DOWN AVRC_ID_CHAN_DOWN
161#define BTA_AV_RC_PREV_CHAN AVRC_ID_PREV_CHAN
162#define BTA_AV_RC_SOUND_SEL AVRC_ID_SOUND_SEL
163#define BTA_AV_RC_INPUT_SEL AVRC_ID_INPUT_SEL
164#define BTA_AV_RC_DISP_INFO AVRC_ID_DISP_INFO
165#define BTA_AV_RC_HELP AVRC_ID_HELP
166#define BTA_AV_RC_PAGE_UP AVRC_ID_PAGE_UP
167#define BTA_AV_RC_PAGE_DOWN AVRC_ID_PAGE_DOWN
168#define BTA_AV_RC_POWER AVRC_ID_POWER
169#define BTA_AV_RC_VOL_UP AVRC_ID_VOL_UP
170#define BTA_AV_RC_VOL_DOWN AVRC_ID_VOL_DOWN
171#define BTA_AV_RC_MUTE AVRC_ID_MUTE
172#define BTA_AV_RC_PLAY AVRC_ID_PLAY
173#define BTA_AV_RC_STOP AVRC_ID_STOP
174#define BTA_AV_RC_PAUSE AVRC_ID_PAUSE
175#define BTA_AV_RC_RECORD AVRC_ID_RECORD
176#define BTA_AV_RC_REWIND AVRC_ID_REWIND
177#define BTA_AV_RC_FAST_FOR AVRC_ID_FAST_FOR
178#define BTA_AV_RC_EJECT AVRC_ID_EJECT
179#define BTA_AV_RC_FORWARD AVRC_ID_FORWARD
180#define BTA_AV_RC_BACKWARD AVRC_ID_BACKWARD
181#define BTA_AV_RC_ANGLE AVRC_ID_ANGLE
182#define BTA_AV_RC_SUBPICT AVRC_ID_SUBPICT
183#define BTA_AV_RC_F1 AVRC_ID_F1
184#define BTA_AV_RC_F2 AVRC_ID_F2
185#define BTA_AV_RC_F3 AVRC_ID_F3
186#define BTA_AV_RC_F4 AVRC_ID_F4
187#define BTA_AV_RC_F5 AVRC_ID_F5
188#define BTA_AV_VENDOR AVRC_ID_VENDOR
190typedef UINT8 tBTA_AV_RC;
193#define BTA_AV_STATE_PRESS AVRC_STATE_PRESS
194#define BTA_AV_STATE_RELEASE AVRC_STATE_RELEASE
196typedef UINT8 tBTA_AV_STATE;
199#define BTA_AV_CMD_CTRL AVRC_CMD_CTRL
200#define BTA_AV_CMD_STATUS AVRC_CMD_STATUS
201#define BTA_AV_CMD_SPEC_INQ AVRC_CMD_SPEC_INQ
202#define BTA_AV_CMD_NOTIF AVRC_CMD_NOTIF
203#define BTA_AV_CMD_GEN_INQ AVRC_CMD_GEN_INQ
205typedef UINT8 tBTA_AV_CMD;
208#define BTA_AV_RSP_NOT_IMPL AVRC_RSP_NOT_IMPL
209#define BTA_AV_RSP_ACCEPT AVRC_RSP_ACCEPT
210#define BTA_AV_RSP_REJ AVRC_RSP_REJ
211#define BTA_AV_RSP_IN_TRANS AVRC_RSP_IN_TRANS
212#define BTA_AV_RSP_IMPL_STBL AVRC_RSP_IMPL_STBL
213#define BTA_AV_RSP_CHANGED AVRC_RSP_CHANGED
214#define BTA_AV_RSP_INTERIM AVRC_RSP_INTERIM
216typedef UINT8 tBTA_AV_CODE;
219#define BTA_AV_ERR_NONE A2D_SUCCESS
220#define BTA_AV_ERR_BAD_STATE AVDT_ERR_BAD_STATE
221#define BTA_AV_ERR_RESOURCE AVDT_ERR_RESOURCE
222#define BTA_AV_ERR_BAD_CP_TYPE A2D_BAD_CP_TYPE
223#define BTA_AV_ERR_BAD_CP_FORMAT A2D_BAD_CP_FORMAT
225typedef UINT8 tBTA_AV_ERR;
229#define BTA_AV_ENABLE_EVT 0
230#define BTA_AV_REGISTER_EVT 1
231#define BTA_AV_OPEN_EVT 2
232#define BTA_AV_CLOSE_EVT 3
233#define BTA_AV_START_EVT 4
234#define BTA_AV_STOP_EVT 5
235#define BTA_AV_PROTECT_REQ_EVT 6
236#define BTA_AV_PROTECT_RSP_EVT 7
237#define BTA_AV_RC_OPEN_EVT 8
238#define BTA_AV_RC_CLOSE_EVT 9
239#define BTA_AV_REMOTE_CMD_EVT 10
240#define BTA_AV_REMOTE_RSP_EVT 11
241#define BTA_AV_VENDOR_CMD_EVT 12
242#define BTA_AV_VENDOR_RSP_EVT 13
243#define BTA_AV_RECONFIG_EVT 14
244#define BTA_AV_SUSPEND_EVT 15
245#define BTA_AV_PENDING_EVT 16
248#define BTA_AV_META_MSG_EVT 17
249#define BTA_AV_REJECT_EVT 18
250#define BTA_AV_RC_FEAT_EVT 19
252#define BTA_AV_MAX_EVT 20
254typedef UINT8 tBTA_AV_EVT;
259 tBTA_AV_FEAT features;
268 tBTA_AV_STATUS status;
272#define BTA_AV_EDR_2MBPS 0x01
273#define BTA_AV_EDR_3MBPS 0x02
274typedef UINT8 tBTA_AV_EDR;
281 tBTA_AV_STATUS status;
298 tBTA_AV_STATUS status;
309 tBTA_AV_STATUS status;
317 tBTA_AV_STATUS status;
336 tBTA_AV_ERR err_code;
343 tBTA_AV_FEAT peer_features;
345 tBTA_AV_STATUS status;
359 tBTA_AV_FEAT peer_features;
367 tBTA_AV_STATE key_state;
379 tBTA_AV_STATE key_state;
382 tBTA_AV_CODE rsp_code;
449#define BTA_AVC_PACKET_LEN AVRC_PACKET_LEN
450#define BTA_VENDOR_DATA_OFFSET 6
451#define BTA_VENDOR_HEADER_LEN 4
452#define BTA_MAX_VENDOR_DEPENDENT_DATA_LEN (BTA_AVC_PACKET_LEN-BTA_VENDOR_DATA_OFFSET-BTA_VENDOR_HEADER_LEN)
453#define BTA_GROUP_NAVI_MSG_OP_DATA_LEN 5
455#define BTA_ERROR_INVALID_CMD AVRC_STS_BAD_CMD
456#define BTA_ERROR_INVALID_PARAM AVRC_STS_BAD_PARAM
457#define BTA_ERROR_BAD_CONTENTS AVRC_STS_NOT_FOUND
458#define BTA_ERROR_INTERNAL AVRC_STS_INTERNAL_ERR
460#define BTA_AV_META_SINGLE_PACKET AVRC_PKT_SINGLE
462#define BTA_AV_CO_METADATA AVRC_CO_METADATA
465typedef void (tBTA_AV_CBACK)(tBTA_AV_EVT event,
tBTA_AV *p_data);
468typedef void (*tBTA_AV_ACT)(
void *p_cb,
void *p_data);
471typedef void (tBTA_AV_REG) (
tAVDT_CS *p_cs,
char *p_service_name,
void *p_data);
483 const UINT16 *p_audio_flush_to;
486 UINT16 video_flush_to;
490 tBTA_AV_CODE rc_pass_rsp;
491 const UINT32 *p_meta_co_ids;
492 const UINT8 *p_meta_evt_ids;
493 const tBTA_AV_ACT *p_act_tbl;
519BTA_API
void BTA_AvEnable(tBTA_SEC sec_mask, tBTA_AV_FEAT features,
520 tBTA_AV_CBACK *p_cback);
532BTA_API
void BTA_AvDisable(
void);
547BTA_API
void BTA_AvRegister(tBTA_AV_CHNL chnl,
const char *p_service_name,
559BTA_API
void BTA_AvDeregister(tBTA_AV_HNDL hndl);
572BTA_API
void BTA_AvOpen(BD_ADDR bd_addr, tBTA_AV_HNDL handle,
573 BOOLEAN use_rc, tBTA_SEC sec_mask);
584BTA_API
void BTA_AvClose(tBTA_AV_HNDL handle);
595BTA_API
void BTA_AvDisconnect(BD_ADDR bd_addr);
606BTA_API
void BTA_AvStart(
void);
619BTA_API
void BTA_AvStop(BOOLEAN suspend);
634BTA_API
void BTA_AvReconfig(tBTA_AV_HNDL hndl, BOOLEAN suspend, UINT8 sep_info_idx,
635 UINT8 *p_codec_info, UINT8 num_protect, UINT8 *p_protect_info);
647BTA_API
void BTA_AvProtectReq(tBTA_AV_HNDL hndl, UINT8 *p_data, UINT16 len);
661BTA_API
void BTA_AvProtectRsp(tBTA_AV_HNDL hndl, UINT8 error_code, UINT8 *p_data,
674BTA_API
void BTA_AvRemoteCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_RC rc_id,
675 tBTA_AV_STATE key_state);
688BTA_API
void BTA_AvVendorCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE cmd_code,
689 UINT8 *p_data, UINT16 len);
703BTA_API
void BTA_AvVendorRsp(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE rsp_code,
704 UINT8 *p_data, UINT16 len, UINT32 company_id);
717BTA_API
void BTA_AvOpenRc(tBTA_AV_HNDL handle);
728BTA_API
void BTA_AvCloseRc(UINT8 rc_handle);
742BTA_API
void BTA_AvMetaRsp(UINT8 rc_handle, UINT8 label, tBTA_AV_CODE rsp_code,
759BTA_API
void BTA_AvMetaCmd(UINT8 rc_handle, UINT8 label, tBTA_AV_CMD cmd_code,
BT_HDR *p_pkt);