Files
TAIXIN/sdk/include/lib/audio/uac/uac_host.h

36 lines
1.2 KiB
C

#ifndef _UAC_HOST_H_
#define _UAC_HOST_H_
#include "basic_include.h"
#include "hal/usb_device.h"
typedef struct{
struct list_head list;
uint8 *data_addr; //当前写入数据的地址
uint32 data_len;
uint32 respace_len;
uint32 offset;
uint8 sta;
}UAC_MANAGE;
typedef void (*usbh_audio_spk_tx)(void * p_dev, uint8_t ep, uint8_t *data, uint32_t len);
void del_usbmic_frame(UAC_MANAGE *uac_manage);
void del_usbspk_frame(UAC_MANAGE *uac_manage);
UAC_MANAGE *get_usbmic_frame(void);
UAC_MANAGE *get_usbspk_new_frame(uint8 grab);
uint32 get_uac_frame_datalen(UAC_MANAGE *uac_manage);
uint8 *get_uac_frame_data(UAC_MANAGE *uac_manage);
void set_uac_frame_datalen(UAC_MANAGE *uac_manage, uint32 len);
void put_usbspk_frame_to_use(UAC_MANAGE *uac_manage);
void set_uac_frame_sta(UAC_MANAGE *uac_manage, uint8 sta);
void usbspk_room_init(uint32_t empty_buf_len);
void usbmic_room_init(void);
void usbmic_room_del(void);
void usbspk_room_del(void);
void uac_stop(void);
void force_reset_usbmic_frame();
void force_reset_usbspk_frame();
int usbmic_deal(struct usb_device *p_dev, uint8_t* rx_buff);
void usbspk_tx(struct usb_device *p_dev, uint8_t ep, uint32_t len, usbh_audio_spk_tx func);
#endif