Files
99_7018_lmx/cpu/br28/spatial_effect/spatial_effect.h
2025-10-29 13:10:02 +08:00

97 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _SPATIAL_EFFECT_H_
#define _SPATIAL_EFFECT_H_
#include "system/includes.h"
#include "generic/typedef.h"
#include "app_config.h"
#include "tech_lib/effect_surTheta_api.h"
#define SPATIAL_AUDIO_EXPORT_DATA 0
#define SPATIAL_AUDIO_EXPORT_MODE 0
/*音效使能*/
#define SPATIAL_AUDIO_EFFECT_ENABLE 1
/*头部跟踪灵敏度:范围 0.001 ~ 11表示即时跟踪数值越小跟踪越慢*/
#define TRACK_SENSITIVITY (1.0f)
/*静止角度复位灵敏度:范围 0.001 ~ 11表示立刻复位回正数值越小回正越慢*/
#define ANGLE_RESET_SENSITIVITY (0.01f)
/*头部跟踪角度复位时间,单位:秒*/
#define ANGLE_RESET_TIME (8)
#if SPATIAL_AUDIO_EXPORT_DATA
struct data_export_header {
u8 magic;
u8 ch;
u16 seqn;
u16 crc;
u16 len;
u32 timestamp;
u32 total_len;
u8 data[0];
};
void audio_export_task(void *arg);
#endif
struct spatial_audio_context {
void *sensor;
void *effect;
void *calculator;
#if TCFG_USER_TWS_ENABLE
void *tws_conn;
int tws_angle;
#endif
u8 mapping_channel;
u32 head_tracked;
#if SPATIAL_AUDIO_EXPORT_DATA
cbuffer_t audio_cbuf;
cbuffer_t space_cbuf;
u8 *audio_buf;
u8 *space_buf;
void *space_fifo_buf;
u16 audio_seqn;
u16 audio_out_seqn;
u16 space_seqn;
u32 audio_data_len;
u32 space_data_len;
u32 timestamp;
int space_data_single_len;
u8 export;
#if SPATIAL_AUDIO_EXPORT_MODE == 0
void *audio_file;
void *space_file;
#endif
#endif
u8 data[0];
};
/*设置并更新混响参数*/
void spatial_effect_online_updata(RP_PARM_CONIFG *params);
/*获取当前混响的参数*/
void get_spatial_effect_reverb_params(RP_PARM_CONIFG *params);
/*打开空间音效*/
void *spatial_audio_open(void);
/*关闭空间音效*/
void spatial_audio_close(void *sa);
/*音效处理*/
int spatial_audio_filter(void *sa, void *data, int len);
/*设置空间音频的输出声道映射*/
int spatial_audio_set_mapping_channel(void *sa, u8 channel);
/*读取传感器的数据*/
int spatial_audio_space_data_read(void *data);
/*头部跟踪使能*/
void spatial_audio_head_tracked_en(struct spatial_audio_context *ctx, u8 en);
/*获取头部跟踪使能状态*/
u8 get_spatial_audio_head_tracked(struct spatial_audio_context *ctx);
#endif