This commit is contained in:
huxi
2025-12-03 11:12:34 +08:00
parent c23ae4f24c
commit bc195654bf
8163 changed files with 3799544 additions and 92 deletions
+33
View File
@@ -0,0 +1,33 @@
#ifndef _VOLUME_NODE_H_
#define _VOLUME_NODE_H_
#include "audio_config.h"
struct volume_cfg {
u8 bypass; //是否bypass掉当前节点,复用高4bit用于传递 cmdVOLUME_NODE_CMD_SET_VOL,VOLUME_NODE_CMD_SET_MUTE
u16 cfg_level_max; //最大音量等级
s32 cfg_vol_min; //最小音量,dB
u8 vol_table_custom; //是否自定义音量表
s32 cfg_vol_max; //最大音量,dB
s16 cur_vol; //当前音量
#if VOL_TAB_CUSTOM_EN
u16 tab_len; //音量表的字节长度
#endif
float vol_table[0]; //音量表
} __attribute__((packed));
//Volume Node Command List
#define VOLUME_NODE_CMD_SET_VOL (1<<4)
#define VOLUME_NODE_CMD_SET_MUTE (1<<5)
#define VOLUME_TABLE_CUSTOM_EN 2
//初步判断是否为音量结构体参数的阈值,高8位是 volume_cfg 成员cfg_level_max的低8位,低8位是bypass的8位,cfg_level_max 最小值为01,bypass最小值为0,故此处阈值设为0x0100;
#define VOL_CFG_THRESHOLD ((1<<8 |0 ) - 1 )
int volume_ioc_get_cfg(const char *name, struct volume_cfg *vol_cfg);//获取名字对应节点的音量配置
u16 volume_ioc_get_max_level(const char *name); //获取名字对应节点的最大音量
#endif