first
This commit is contained in:
56
apps/common/device/usb/host/audio.h
Normal file
56
apps/common/device/usb/host/audio.h
Normal file
@ -0,0 +1,56 @@
|
||||
#ifndef __AUDIO_H__
|
||||
#define __AUDIO_H__
|
||||
|
||||
#include "system/task.h"
|
||||
#include "device/device.h"
|
||||
#include "usb_bulk_transfer.h"
|
||||
#include "usb/host/usb_host.h"
|
||||
#include "usb/device/uac_audio.h"
|
||||
|
||||
|
||||
#define HEADPHONE_SUPPORTED 0x01
|
||||
#define MICROPHONE_SUPPORTED 0x02
|
||||
#define HEADSET_SUPPORTED 0x03
|
||||
|
||||
struct audio_streaming_t {
|
||||
u8 bNumEndpoints;
|
||||
u8 bFormatType; /** FORMAT_TYPE_1 */
|
||||
u8 bNrChannels; /** physical channels in the stream */
|
||||
u8 bSubframeSize;
|
||||
u8 bBitResolution;
|
||||
u8 bSamFreqType;
|
||||
u32 tSamFreq[8];
|
||||
u8 host_ep; //主机传输端点
|
||||
u8 ep; //从机端点(由描述符中指定)
|
||||
u8 ep_Interval;
|
||||
u16 ep_max_packet_size;
|
||||
};
|
||||
|
||||
struct audio_device_t {
|
||||
u8 interface_num; //接口号
|
||||
u8 subclass;
|
||||
u8 support;
|
||||
void *parent;
|
||||
struct audio_streaming_t as[8];
|
||||
};
|
||||
|
||||
int usb_audio_parser(struct usb_host_device *host_dev, u8 interface_num, const u8 *pBuf);
|
||||
|
||||
// API
|
||||
int usb_audio_play_put_buf(void *ptr, u32 len);
|
||||
int usb_audio_record_get_buf(void *ptr, u32 len);
|
||||
|
||||
//headphone api
|
||||
void set_usb_audio_play_volume(u16 vol);
|
||||
void usb_audio_start_play(const usb_dev usb_id, u8 channel, u8 bit_reso, u32 sample_rate); //指定播放数据的声道数,位数,采样率
|
||||
void usb_audio_stop_play(const usb_dev usb_id);
|
||||
void usb_audio_pause_play(void);
|
||||
void usb_audio_resume_play(void);
|
||||
|
||||
//microphone api
|
||||
void set_usb_audio_record_volume(u16 vol);
|
||||
void usb_audio_start_record(const usb_dev usb_id, u8 bit_reso, u32 sample_rate); //指定录制数据的位数,采样率
|
||||
void usb_audio_stop_record(const usb_dev usb_id);
|
||||
void usb_audio_pause_record(void);
|
||||
void usb_audio_resume_record(void);
|
||||
#endif
|
||||
Reference in New Issue
Block a user