initial commit
This commit is contained in:
8
hal/hal_audio/config.mk
Executable file
8
hal/hal_audio/config.mk
Executable file
@@ -0,0 +1,8 @@
|
||||
HEADERS += $(HAL_DIR)/hal_audio/*.h
|
||||
SRCDIRS += $(HAL_DIR)/hal_audio
|
||||
|
||||
ifdef MOD_AUDIO
|
||||
SRCDIRS += += $(HAL_DIR)/hal_audio/$(MOD_AUDIO)
|
||||
else
|
||||
$(warning warning you sure no hal_audio?)
|
||||
endif
|
||||
87
hal/hal_audio/hal_interface_audio.c
Executable file
87
hal/hal_audio/hal_interface_audio.c
Executable file
@@ -0,0 +1,87 @@
|
||||
#include <stdlib.h>
|
||||
#include "hal_interface_audio.h"
|
||||
#include "list.h"
|
||||
#include "htime.h"
|
||||
#include "hthread.h"
|
||||
#include "hbase.h"
|
||||
#include "hlog.h"
|
||||
#include "hmutex.h"
|
||||
|
||||
typedef struct{
|
||||
struct list_head link;
|
||||
HAL_AUDIO_FORMAT format;
|
||||
hal_audio_frame_callback cb;
|
||||
}audio_ins;
|
||||
|
||||
static struct list_head s_alist = LIST_HEAD_INIT(s_alist);
|
||||
|
||||
uint32_t hal_audio_openstream(hal_audio_frame_callback cb, HAL_AUDIO_FORMAT format){
|
||||
struct list_head *pos, *n;
|
||||
list_for_each_safe(pos, n, &s_alist){
|
||||
audio_ins* audio = list_entry(pos, audio_ins, link);
|
||||
if (audio->cb == cb) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
audio_ins *audio = (audio_ins*)hv_malloc(sizeof(audio_ins));
|
||||
if (!audio){
|
||||
hloge("%s failed to hv_malloc", __func__);
|
||||
return -1;
|
||||
}
|
||||
audio->cb = cb;
|
||||
audio->format = format;
|
||||
list_add_tail(&audio->link, &s_alist);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t hal_audio_closestream(hal_audio_frame_callback cb){
|
||||
struct list_head *pos, *n;
|
||||
list_for_each_safe(pos, n, &s_alist){
|
||||
audio_ins* audio = list_entry(pos, audio_ins, link);
|
||||
if (audio->cb == cb) {
|
||||
list_del(pos);
|
||||
hv_free(audio);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void * audio_polling_task(void *arg)
|
||||
{
|
||||
uint32_t ret;
|
||||
typedef struct{
|
||||
int8_t *data;
|
||||
int16_t size;
|
||||
}aac_st;
|
||||
while(1){
|
||||
audio_frame frame;
|
||||
ret = hal_audio_get_frame(&frame);
|
||||
if (ret == 0){
|
||||
aac_st aac = {0};
|
||||
struct list_head *pos, *n;
|
||||
list_for_each_safe(pos, n, &s_alist){
|
||||
audio_ins* audio = list_entry(pos, audio_ins, link);
|
||||
frame.format = audio->format;
|
||||
switch(audio->format){
|
||||
case HAL_AUDIO_PCM:
|
||||
audio->cb(&frame);
|
||||
break;
|
||||
case HAL_AUDIO_AAC_LC:{
|
||||
if (aac.data == NULL){
|
||||
//encode aac ......
|
||||
}
|
||||
if (aac.data && aac.size){
|
||||
memcpy(frame.data, aac.data, aac.size);
|
||||
frame.size = aac.size;
|
||||
audio->cb(&frame);
|
||||
}
|
||||
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
494
hal/hal_audio/hal_interface_audio.h
Executable file
494
hal/hal_audio/hal_interface_audio.h
Executable file
@@ -0,0 +1,494 @@
|
||||
/******************************************************************************************/
|
||||
#ifndef __HAL_INTERFACE_AUDIO_H__
|
||||
#define __HAL_INTERFACE_AUDIO_H__
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include "hal.h"
|
||||
|
||||
|
||||
/**
|
||||
* 音频回调参数结构定义
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_AUDIO_PCM = 0, // PCM
|
||||
HAL_AUDIO_AAC_LC, // AAC LC
|
||||
HAL_AUDIO_AAC_ELD, // AAC ELD
|
||||
HAL_AUDIO_G711, // G711
|
||||
HAL_AUDIO_AI, // for AI
|
||||
HAL_AUDIO_MAX =9
|
||||
} HAL_AUDIO_FORMAT;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int8_t chn; //音频流通道
|
||||
HAL_AUDIO_FORMAT format; //音频格式
|
||||
HAL_FRAME_TYPE type; //帧类型 音频帧或视频帧
|
||||
uint32_t ts; //时间戳
|
||||
uint32_t seq; //帧序号
|
||||
uint32_t local_time; //本地时间
|
||||
uint32_t size; //数据大小
|
||||
int8_t data[0]; //音频数据
|
||||
} audio_frame;
|
||||
|
||||
|
||||
/**
|
||||
* 音频采样率定义.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_AUDIO_SAMPLE_RATE_8000 = 8000, /**< 8KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_16000 = 16000, /**< 16KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_24000 = 24000, /**< 24KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_32000 = 32000, /**< 32KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_44100 = 44100, /**< 44.1KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_48000 = 48000, /**< 48KHz采样率 */
|
||||
HAL_AUDIO_SAMPLE_RATE_96000 = 96000, /**< 96KHz采样率 */
|
||||
} HAL_AUDIO_SAMPLERATE;
|
||||
|
||||
/**
|
||||
* 音频采样精度定义.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_AUDIO_BIT_WIDTH_16 = 16, /**< 16bit采样精度 */
|
||||
} HAL_AUDIO_BITWIDTH;
|
||||
|
||||
|
||||
/**
|
||||
* 音频声道模式定义.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_AUDIO_SOUND_MODE_MONO = 1, /**< 单声道 */
|
||||
HAL_AUDIO_SOUND_MODE_STEREO = 2, /**< 双声道 */
|
||||
} HAL_AUDIO_SOUND_MODE;
|
||||
|
||||
/**
|
||||
* HAL_Audio音频格式常量定义, 适用HAL_Audio
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HAL_AUDIO_INTERCOM = 0, // 对讲
|
||||
HAL_AUDIO_USER, // 用户
|
||||
HAL_AUDIO_ALARM, // 报警
|
||||
HAL_AUDIO_SYSTEM, // 系统
|
||||
HAL_AUDIO_TYPEMAX
|
||||
} HAL_AUDIO_TYPE;
|
||||
|
||||
/**
|
||||
* 音频输入输出设备属性.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
HAL_AUDIO_SAMPLERATE samplerate; /**< 音频采样率 */
|
||||
HAL_AUDIO_BITWIDTH bitwidth; /**< 音频采样精度 */
|
||||
HAL_AUDIO_SOUND_MODE soundmode; /**< 音频声道模式 */
|
||||
int frame_num; /**< 缓存帧的数目, 取值范围:[2, MAX_AUDIO_FRAME_NUM] */
|
||||
int num_per_frame; /**< 每帧的采样点个数 */
|
||||
int chnCnt; /**< 支持的通道数目 */
|
||||
} audio_attr_st;
|
||||
|
||||
|
||||
typedef uint32_t(*hal_audio_frame_callback)(audio_frame * frame);
|
||||
typedef uint32_t(*hal_audio_status_callback)(uint32_t status);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//
|
||||
// HAL内部接口定义
|
||||
//
|
||||
////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 函数:hal_audio_init
|
||||
* 声明:int32_t hal_audio_init(HAL_AUDIO_FORMAT format)
|
||||
* 功能:input and output init
|
||||
* 入参:无
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_init();
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_deinit
|
||||
* 声明:int32_t hal_audio_deinit()
|
||||
* 功能:音频HAL去初始化, 释放资源
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_deinit();
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_reg_cb
|
||||
* 声明:int32_t hal_audio_openstream(hal_audio_frame_callback cb, HAL_AUDIO_FORMAT format)
|
||||
* 功能:注册获取音频数据回调, 在hal_audio_init后调用
|
||||
* 入参:hal_audio_frame_callback cb, 获取音频数据回调函数
|
||||
HAL_AUDIO_FORMAT format, 音频数据格式
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_openstream(hal_audio_frame_callback cb, HAL_AUDIO_FORMAT format);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_dereg_cb
|
||||
* 声明:int32_t hal_audio_closestream(hal_audio_frame_callback cb, HAL_AUDIO_FORMAT format)
|
||||
* 功能:注销获取音频数据回调, 在hal_audio_init后调用
|
||||
* 入参:hal_audio_frame_callback cb, 获取音频数据回调函数
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_closestream(hal_audio_frame_callback cb);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_speaker_enable
|
||||
* 声明:int32_t hal_audio_speaker_enable(uint32_t enable)
|
||||
* 功能:打开/关闭Speaker PA
|
||||
* 入参:int32_t enable, 0: Disable, 1: enable
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_speaker_enable(uint32_t enable);
|
||||
|
||||
|
||||
|
||||
// Speak volume and Gain
|
||||
/**
|
||||
* 函数:hal_audio_setoutput_volume
|
||||
* 声明:int32_t hal_audio_setoutput_volume(uint32_t volume)
|
||||
* 功能:设置Speak音量, 在hal_audio_init后调用
|
||||
* 入参:int32_t volume, Speak音量值(数字增益),-30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setoutput_volume(uint32_t volume); // -30 - 120
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getoutput_volume
|
||||
* 声明:int32_t hal_audio_getoutput_volume(uint32_t * volume)
|
||||
* 功能:获取当前Speak音量值, 在hal_audio_init后调用
|
||||
* 出参:int32_t * volume, 输出Speak当前音量值(数字增益), -30 - 120
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getoutput_volume(uint32_t * volume);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_setoutput_gain
|
||||
* 声明:int32_t hal_audio_setoutput_gain(uint32_t Gain)
|
||||
* 功能:设置Speak增益, 在hal_audio_init后调用
|
||||
* 入参:uint32_t Gain, Speak增益(模拟增益), 0 - 31
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setoutput_gain(uint32_t Gain);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getoutput_gain
|
||||
* 声明:int32_t hal_audio_getoutput_gain(uint32_t * gain)
|
||||
* 功能:设置Speak增益, 在hal_audio_init后调用
|
||||
* 入参:uint32_t Gain, Speak增益(模拟增益), 0 - 31
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getoutput_gain(uint32_t * gain);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_setoutput_volume_gain
|
||||
* 声明:int32_t hal_audio_setoutput_volume_gain(uint32_t percent)
|
||||
* 功能:设置Speak音量和增益, 在hal_audio_init后调用
|
||||
* 入参:uint32_t percent, Speak音量和增益百分比, 0 - 100
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setoutput_volume_gain(uint32_t percent);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getoutput_volume_gain
|
||||
* 声明:int32_t hal_audio_getoutput_volume_gain(uint32_t * percent)
|
||||
* 功能:设置Speak音量和增益, 在hal_audio_init后调用
|
||||
* 入参:uint32_t percent, Speak音量和增益百分比, 0 - 100
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getoutput_volume_gain(uint32_t * percent);
|
||||
|
||||
|
||||
// MIC volume and Gain
|
||||
/**
|
||||
* 函数:hal_audio_setinput_volume_gain
|
||||
* 声明:int32_t hal_audio_setinput_volume_gain(uint32_t volume)
|
||||
* 功能:设置MIC增益, 在hal_audio_init后调用
|
||||
* 入参:int32_t volume, MIC增益, -30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setinput_volume_gain(uint32_t volume);
|
||||
|
||||
// Set MIC Vol
|
||||
/**
|
||||
* 函数:hal_audio_setinput_volume
|
||||
* 声明:int32_t hal_audio_setinput_volume(uint32_t volume)
|
||||
* 功能:设置MIC vol, 在hal_audio_init后调用
|
||||
* 入参:int32_t volume, MIC vol, -30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setinput_volume(uint32_t volume);
|
||||
|
||||
// Get MIC Vol
|
||||
/**
|
||||
* 函数:hal_audio_getinput_volume
|
||||
* 声明:int32_t hal_audio_getinput_volume(uint32_t *p_volume)
|
||||
* 功能:读取MIC vol, 在hal_audio_init后调用
|
||||
* 入参:int32_t *p_volume, MIC vol, -30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getinput_volume(uint32_t *p_volume);
|
||||
|
||||
// Set MIC Gain
|
||||
/**
|
||||
* 函数:hal_audio_setinput_gain
|
||||
* 声明:int32_t hal_audio_setinput_gain(uint32_t Gain)
|
||||
* 功能:设置MIC增益, 在hal_audio_init后调用
|
||||
* 入参:int32_t Gain, MIC增益, -30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setinput_gain(uint32_t Gain);
|
||||
|
||||
// Get MIC Gain
|
||||
/**
|
||||
* 函数:hal_audio_getinput_gain
|
||||
* 声明:int32_t hal_audio_getinput_gain(uint32_t *p_gain)
|
||||
* 功能:读取MIC增益, 在hal_audio_init后调用
|
||||
* 入参:int32_t *p_gain, MIC增益, -30 - 120
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getinput_gain(uint32_t *p_gain);
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getinput_volume_gain
|
||||
* 声明:int32_t hal_audio_getinput_volume_gain(uint32_t * p_volume, uint32_t * p_gain)
|
||||
* 功能:设置MIC增益, 在hal_audio_init后调用
|
||||
* 出参:int32_t * p_volume, MIC音量, 0 - 100
|
||||
* uint32_t * p_gain, MIC增益, -30 - 120
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getinput_volume_gain(uint32_t * p_volume, uint32_t * p_gain);
|
||||
|
||||
// Speak MIC mute
|
||||
/**
|
||||
* 函数:hal_audio_setoutput_mute
|
||||
* 声明:int32_t hal_audio_setoutput_mute(uint32_t mute)
|
||||
* 功能:设置Speak静音, 在hal_audio_init后调用
|
||||
* 入参:uint32_t mute, Speak静音开关, 0: 静音, 1: 不静音
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setoutput_mute(uint32_t mute); // 0:enable mute, 1:disable mute
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getoutput_mute
|
||||
* 声明:int32_t hal_audio_getoutput_mute(uint32_t *p_mute)
|
||||
* 功能:获取Speak静音开关, 在hal_audio_init后调用
|
||||
* 出参:uint32_t *p_mute, Speak静音开关, 0: 静音, 1: 不静音
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getoutput_mute(uint32_t *p_mute); // 0:enable mute, 1:disable mute
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_setinput_mute
|
||||
* 声明:hal_audio_setinput_mute(uint32_t mute)
|
||||
* 功能:设置MIC静音, 在hal_audio_init后调用
|
||||
* 入参:uint32_t mute, MIC静音开关, 0: 静音, 1: 不静音
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_setinput_mute(uint32_t mute); // 0:enable mute, 1:disable mute
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_getinput_mute
|
||||
* 声明:int32_t hal_audio_getinput_mute(uint32_t *p_mute)
|
||||
* 功能:获取MIC静音开关, 在hal_audio_init后调用
|
||||
* 出参:uint32_t *p_mute, MIC静音开关, 0: 静音, 1: 不静音
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_getinput_mute(uint32_t *p_mute); // 0:enable mute, 1:disable mute
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_AEC_enable
|
||||
* 声明:int32_t hal_audio_AEC_enable(uint32_t enable)
|
||||
* 功能:回声消除功能开关, 在hal_audio_init后调用
|
||||
* 入参:uint32_t enable, 1: 使能, 0: 禁用
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_AEC_enable(uint32_t enable); // 1:enable, 0:disable
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_AEC_Query
|
||||
* 声明:int32_t hal_audio_AEC_Query(uint32_t * p_enable)
|
||||
* 功能:回声消除功能开关, 在hal_audio_init后调用
|
||||
* 出参:uint32_t * p_enable, 1: 使能, 0: 禁用
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_AEC_get(uint32_t * p_enable); // 1:enable, 0:disable
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_NS_enable
|
||||
* 声明:int32_t hal_audio_NS_enable(uint32_t enable, uint32_t Level)
|
||||
* 功能:噪声抑制功能开关, 在hal_audio_init后调用
|
||||
* 入参:uint32_t enable, 0: 禁用, 1: 使能
|
||||
* uint32_t Level, 噪声抑制等级,取值0~3,使能时有效
|
||||
* 0: NS_LOW, <低等级级别噪声抑制>
|
||||
* 1: NS_MODERATE, <中等级级别噪声抑制>
|
||||
* 2: NS_HIGH, <高等级级别噪声抑制>
|
||||
* 3: NS_VERYHIGH <最高等级级别噪声抑制>
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_NS_enable(uint32_t enable, uint32_t Level); // 1:enable, 0:disable
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_AGC_enable
|
||||
* 声明:int32_t hal_audio_AGC_enable(uint32_t enable, uint32_t Level)
|
||||
* 功能:音频增益功能开关, 在hal_audio_init后调用
|
||||
* 入参:uint32_t enable, 0: 禁用, 1: 使能
|
||||
* uint32_t Level, 噪声抑制等级,取值0~3,使能时有效
|
||||
* 0: NS_LOW, <低等级级别噪声抑制>
|
||||
* 1: NS_MODERATE, <中等级级别噪声抑制>
|
||||
* 2: NS_HIGH, <高等级级别噪声抑制>
|
||||
* 3: NS_VERYHIGH <最高等级级别噪声抑制>
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_AGC_enable(uint32_t enable, uint32_t Level); // 1:enable, 0:disable
|
||||
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_input_enable
|
||||
* 声明:int32_t hal_audio_input_enable(uint32_t enable)
|
||||
* 功能:音频输入通道(MIC)开关, 在hal_audio_init后调用
|
||||
* 入参:int32_t enable, 0: 禁用, 1: 使能
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_input_enable(uint32_t enable); // 1:enable, 0:disable
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//
|
||||
// HAL Audio输出外部接口
|
||||
//
|
||||
////////////////////////////////////////////////////////////
|
||||
/* HAL Audio接口定义 */
|
||||
|
||||
|
||||
/**
|
||||
* hal_audio_isbusy
|
||||
* 声明:int32_t hal_audio_isbusy(uint32_t *p_isbusy)
|
||||
* 功能:判断当前音频播放Dev正在播放与否
|
||||
* 出参:int32_t *p_isbusy, 0停止播放状态,1播放中状态
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_isbusy(uint32_t *p_isbusy);
|
||||
|
||||
/**
|
||||
* hal_audio_setInout_samplerate
|
||||
* 声明:int32_t hal_audio_setInout_samplerate(HAL_AUDIO_SAMPLERATE samplerate)
|
||||
* 功能:设置输入MIC的采样率
|
||||
* 入参:HAL_AUDIO_SAMPLERATE samplerate,
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_set_input_samplerate(HAL_AUDIO_SAMPLERATE samplerate);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 函数:hal_audio_play_aac
|
||||
* 声明:int32_t hal_audio_play_aac(int8_t *data, uint32_t size)
|
||||
* 功能:播放AAC-LC文件, 在hal_audio_init后调用
|
||||
* 入参:int8_t * data, AAC-LC buffer
|
||||
uint32_t size, buffer 长度
|
||||
* 出参:无
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_play_aac(int8_t *data, uint32_t size);
|
||||
|
||||
|
||||
/**
|
||||
* 函数: hal_audio_get_frame
|
||||
* 声明:int32_t hal_audio_get_frame(int8_t *data, uint32_t size)
|
||||
* 功能:取一帧录音
|
||||
* 入参:无
|
||||
* 出参:*frame
|
||||
* 返回:函数执行指示
|
||||
* 0 成功
|
||||
* 非0 失败, 错误码
|
||||
*/
|
||||
uint32_t hal_audio_get_frame(audio_frame *frame);
|
||||
|
||||
|
||||
#endif /* __HAL_INTERFACE_AUDIO_H__ */
|
||||
|
||||
22
hal/hal_audio/t40/hal_interface_audio_t40.c
Executable file
22
hal/hal_audio/t40/hal_interface_audio_t40.c
Executable file
@@ -0,0 +1,22 @@
|
||||
#include "hal_interface_audio.h"
|
||||
#include "hlog.h"
|
||||
|
||||
#define TAG "TAG_AUDIO"
|
||||
|
||||
uint32_t hal_audio_init(){
|
||||
uint32_t ret = -1;
|
||||
hlogi("%s ok", __func__);
|
||||
INIT_ERR:
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint32_t hal_audio_deinit(){
|
||||
hlogi("%s ok", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint32_t hal_audio_get_frame(audio_frame *p_frame){
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user