35#define AVDT_VERSION 0x0102
37#define AVDT_VERSION_SYNC 0x0103
41#define AVDT_BAD_PARAMS 1
42#define AVDT_NO_RESOURCES 2
43#define AVDT_BAD_HANDLE 3
45#define AVDT_WRITE_FAIL 5
48#define AVDT_CODEC_TYPE_INDEX 2
51#define AVDT_AL_HDR_SIZE 3
54#define AVDT_MEDIA_HDR_SIZE 12
59#define AVDT_MAX_MEDIA_SIZE (0xFFFF - AVDT_MEDIA_HDR_SIZE)
62#define AVDT_MULTI_AV_HANDLE 0xFF
68#define AVDT_MEDIA_OFFSET 23
75#define AVDT_MARKER_SET 0x80
78#define AVDT_TSEP_SRC 0
79#define AVDT_TSEP_SNK 1
86#define AVDT_MEDIA_AUDIO 0
87#define AVDT_MEDIA_VIDEO 1
88#define AVDT_MEDIA_MULTI 2
91#define AVDT_RTCP_PT_SR 200
92#define AVDT_RTCP_PT_RR 201
93#define AVDT_RTCP_PT_SDES 202
94typedef UINT8 AVDT_REPORT_TYPE;
96#define AVDT_RTCP_SDES_CNAME 1
97#ifndef AVDT_MAX_CNAME_SIZE
98#define AVDT_MAX_CNAME_SIZE 28
105#define AVDT_PSC_TRANS (1<<1)
106#define AVDT_PSC_REPORT (1<<2)
107#define AVDT_PSC_RECOV (1<<3)
108#define AVDT_PSC_HDRCMP (1<<5)
109#define AVDT_PSC_MUX (1<<6)
110#define AVDT_PSC_DELAY_RPT (1<<8)
113#define AVDT_RECOV_RFC2733 1
119#define AVDT_HDRCMP_MEDIA (1<<5)
120#define AVDT_HDRCMP_RECOV (1<<6)
121#define AVDT_HDRCMP_BACKCH (1<<7)
124#define AVDT_MUX_FRAG (1<<7)
129#define AVDT_ASC_PROTECT 4
130#define AVDT_ASC_CODEC 7
139#define AVDT_ERR_HEADER 0x01
140#define AVDT_ERR_LENGTH 0x11
141#define AVDT_ERR_SEID 0x12
142#define AVDT_ERR_IN_USE 0x13
143#define AVDT_ERR_NOT_IN_USE 0x14
144#define AVDT_ERR_CATEGORY 0x17
145#define AVDT_ERR_PAYLOAD 0x18
146#define AVDT_ERR_NSC 0x19
147#define AVDT_ERR_INVALID_CAP 0x1A
148#define AVDT_ERR_RECOV_TYPE 0x22
149#define AVDT_ERR_MEDIA_TRANS 0x23
150#define AVDT_ERR_RECOV_FMT 0x25
151#define AVDT_ERR_ROHC_FMT 0x26
152#define AVDT_ERR_CP_FMT 0x27
153#define AVDT_ERR_MUX_FMT 0x28
154#define AVDT_ERR_UNSUP_CFG 0x29
155#define AVDT_ERR_BAD_STATE 0x31
156#define AVDT_ERR_REPORT_FMT 0x65
157#define AVDT_ERR_SERVICE 0x80
158#define AVDT_ERR_RESOURCE 0x81
159#define AVDT_ERR_INVALID_MCT 0xC1
160#define AVDT_ERR_UNSUP_MCT 0xC2
161#define AVDT_ERR_INVALID_LEVEL 0xC3
162#define AVDT_ERR_UNSUP_LEVEL 0xC4
163#define AVDT_ERR_INVALID_CP 0xE0
164#define AVDT_ERR_INVALID_FORMAT 0xE1
169#define AVDT_ERR_CONNECT 0x07
170#define AVDT_ERR_TIMEOUT 0x08
173#define AVDT_DISCOVER_CFM_EVT 0
174#define AVDT_GETCAP_CFM_EVT 1
175#define AVDT_OPEN_CFM_EVT 2
176#define AVDT_OPEN_IND_EVT 3
177#define AVDT_CONFIG_IND_EVT 4
178#define AVDT_START_CFM_EVT 5
179#define AVDT_START_IND_EVT 6
180#define AVDT_SUSPEND_CFM_EVT 7
181#define AVDT_SUSPEND_IND_EVT 8
182#define AVDT_CLOSE_CFM_EVT 9
183#define AVDT_CLOSE_IND_EVT 10
184#define AVDT_RECONFIG_CFM_EVT 11
185#define AVDT_RECONFIG_IND_EVT 12
186#define AVDT_SECURITY_CFM_EVT 13
187#define AVDT_SECURITY_IND_EVT 14
188#define AVDT_WRITE_CFM_EVT 15
189#define AVDT_CONNECT_IND_EVT 16
190#define AVDT_DISCONNECT_IND_EVT 17
191#define AVDT_REPORT_CONN_EVT 18
192#define AVDT_REPORT_DISCONN_EVT 19
193#define AVDT_DELAY_REPORT_EVT 20
194#define AVDT_DELAY_REPORT_CFM_EVT 21
196#define AVDT_MAX_EVT (AVDT_DELAY_REPORT_CFM_EVT)
199#define AVDT_PSM 0x0019
202#define AVDT_NSC_SUSPEND 0x01
203#define AVDT_NSC_RECONFIG 0x02
204#define AVDT_NSC_SECURITY 0x04
234 UINT8 cname[AVDT_MAX_CNAME_SIZE + 1];
258 UINT8 codec_info[AVDT_CODEC_SIZE];
259 UINT8 protect_info[AVDT_PROTECT_SIZE];
267#if AVDT_MULTIPLEXING == TRUE
269 UINT8 mux_tsid_media;
270 UINT8 mux_tcid_media;
271 UINT8 mux_tsid_report;
272 UINT8 mux_tcid_report;
273 UINT8 mux_tsid_recov;
274 UINT8 mux_tcid_recov;
358typedef void (tAVDT_CTRL_CBACK)(UINT8 handle, BD_ADDR bd_addr, UINT8 event,
365typedef void (tAVDT_DATA_CBACK)(UINT8 handle,
BT_HDR *p_pkt, UINT32 time_stamp,
368#if AVDT_MULTIPLEXING == TRUE
375typedef void (tAVDT_MEDIA_CBACK)(UINT8 handle, UINT8 *p_payload, UINT32 payload_len,
376 UINT32 time_stamp, UINT16 seq_num, UINT8 m_pt, UINT8 marker);
379#if AVDT_REPORTING == TRUE
384typedef void (tAVDT_REPORT_CBACK)(UINT8 handle, AVDT_REPORT_TYPE type,
388typedef UINT16 (tAVDT_GETCAP_REQ) (BD_ADDR bd_addr, UINT8 seid,
tAVDT_CFG *p_cfg, tAVDT_CTRL_CBACK *p_cback);
395 tAVDT_CTRL_CBACK *p_ctrl_cback;
396 tAVDT_DATA_CBACK *p_data_cback;
397#if AVDT_MULTIPLEXING == TRUE
398 tAVDT_MEDIA_CBACK *p_media_cback;
400#if AVDT_REPORTING == TRUE
401 tAVDT_REPORT_CBACK *p_report_cback;
433AVDT_API
extern void AVDT_Register(
tAVDT_REG *p_reg, tAVDT_CTRL_CBACK *p_cback);
448AVDT_API
extern void AVDT_Deregister(
void);
464AVDT_API
extern UINT16 AVDT_CreateStream(UINT8 *p_handle,
tAVDT_CS *p_cs);
480AVDT_API
extern UINT16 AVDT_RemoveStream(UINT8 handle);
508AVDT_API
extern UINT16 AVDT_DiscoverReq(BD_ADDR bd_addr,
tAVDT_SEP_INFO *p_sep_info,
509 UINT8 max_seps, tAVDT_CTRL_CBACK *p_cback);
536AVDT_API
extern UINT16 AVDT_GetCapReq(BD_ADDR bd_addr, UINT8 seid,
tAVDT_CFG *p_cfg,
537 tAVDT_CTRL_CBACK *p_cback);
563AVDT_API
extern UINT16 AVDT_GetAllCapReq(BD_ADDR bd_addr, UINT8 seid,
tAVDT_CFG *p_cfg,
564 tAVDT_CTRL_CBACK *p_cback);
577AVDT_API
extern UINT16 AVDT_DelayReport(UINT8 handle, UINT8 seid, UINT16 delay);
592AVDT_API
extern UINT16 AVDT_OpenReq(UINT8 handle, BD_ADDR bd_addr, UINT8 seid,
608AVDT_API
extern UINT16 AVDT_ConfigRsp(UINT8 handle, UINT8 label, UINT8 error_code,
625AVDT_API
extern UINT16 AVDT_StartReq(UINT8 *p_handles, UINT8 num_handles);
642AVDT_API
extern UINT16 AVDT_SuspendReq(UINT8 *p_handles, UINT8 num_handles);
658AVDT_API
extern UINT16 AVDT_CloseReq(UINT8 handle);
676AVDT_API
extern UINT16 AVDT_ReconfigReq(UINT8 handle,
tAVDT_CFG *p_cfg);
690AVDT_API
extern UINT16 AVDT_ReconfigRsp(UINT8 handle, UINT8 label, UINT8 error_code,
707AVDT_API
extern UINT16 AVDT_SecurityReq(UINT8 handle, UINT8 *p_data, UINT16 len);
723AVDT_API
extern UINT16 AVDT_SecurityRsp(UINT8 handle, UINT8 label, UINT8 error_code,
724 UINT8 *p_data, UINT16 len);
759AVDT_API
extern UINT16 AVDT_WriteReq(UINT8 handle,
BT_HDR *p_pkt, UINT32 time_stamp,
777AVDT_API
extern UINT16 AVDT_ConnectReq(BD_ADDR bd_addr, UINT8 sec_mask,
778 tAVDT_CTRL_CBACK *p_cback);
792AVDT_API
extern UINT16 AVDT_DisconnectReq(BD_ADDR bd_addr, tAVDT_CTRL_CBACK *p_cback);
803AVDT_API
extern UINT16 AVDT_GetL2CapChannel(UINT8 handle);
814AVDT_API
extern UINT16 AVDT_GetSignalChannel(UINT8 handle, BD_ADDR bd_addr);
837AVDT_API
extern UINT16 AVDT_WriteDataReq(UINT8 handle, UINT8 *p_data, UINT32 data_len,
838 UINT32 time_stamp, UINT8 m_pt, UINT8 marker);
858AVDT_API
extern UINT16 AVDT_SetMediaBuf(UINT8 handle, UINT8 *p_buf, UINT32 buf_len);
871AVDT_API
extern UINT16 AVDT_SendReport(UINT8 handle, AVDT_REPORT_TYPE type,
895AVDT_API
extern UINT8 AVDT_SetTraceLevel (UINT8 new_level);