From f41a0f70a05fbed9ccbf4b8c6d9df87147fde374 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期五, 14 十一月 2025 18:02:07 +0800
Subject: [PATCH] GEQ参数ID变更
---
src/tg/tg_scene.cpp | 2
src/tg/tg_param_convert.cpp | 40 +++++---------------
src/tg/tg_user_ctrl.cpp | 14 +++----
src/tg/module_def.h | 10 ++--
4 files changed, 22 insertions(+), 44 deletions(-)
diff --git a/src/tg/module_def.h b/src/tg/module_def.h
index 19d1b2e..e51441e 100644
--- a/src/tg/module_def.h
+++ b/src/tg/module_def.h
@@ -37,8 +37,8 @@
typedef struct{
unsigned short output_num; //8
struct{
- unsigned short channelID; //默认值:0,1,2...8
- unsigned short mute; //默认值:0
+ unsigned short channelID; //默认值:0,1,2...8
+ unsigned short mute; //默认值:0
short gain; //默认值:0
@@ -48,9 +48,9 @@
short phase;
short sensitivity;
- short name[8]; //默认值:"1","2","3"..."8"
+ short name[8]; //默认值:"1","2","3"..."8"
short link ;
- unsigned short type ;
+ unsigned short type;
}output[MAX_OUTPUT_NUM];
}tag_output,*ptag_output;
@@ -72,7 +72,7 @@
typedef struct{
unsigned short bypass;
- unsigned short q;
+ unsigned short q_index;
unsigned short nsections;
struct {
short gain;
diff --git a/src/tg/tg_param_convert.cpp b/src/tg/tg_param_convert.cpp
index b48c424..0ce3246 100644
--- a/src/tg/tg_param_convert.cpp
+++ b/src/tg/tg_param_convert.cpp
@@ -732,45 +732,25 @@
u32 tg_param_convert::GeqParamCtrl(IModule* m, void* handle, int &plen)
{
- const s16 fc_10[]={31, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 };
- const s16 fc_15[]={25, 40, 63, 100, 160, 250, 400, 630, 1000, 1600, 2500, 4000, 6300, 10000, 16000};
- const s16 fc_31[]={20, 25,31, 40, 50, 63, 80, 100, 125, 160, 200,250, 315, 400, 500, 630, 800, 1000, 1250, 1600,2000,2500, 3150, 4000, 5000, 6300, 8000, 10000,12500, 16000,20000};
-
- enum EQID{
- EQ_BYPASS_ALL = 0x1,
- EQ_BYPASS,
- EQ_FREQ,
- EQ_GAIN,
- EQ_QVALUE,
- EQ_TYPE,
+ enum GEQID{
+ GEQ_BYPASS_ALL = 0x1,//val[0]: 0-取消bypass, 1- 使能bypass
+ GEQ_QVALUE,//val[0]: 1-narrow, 2-normal, 3-wide
+ GEQ_GAIN,//val[0]: 段序号,val[1] : 增益,乘以100,范围:-4800~2400
+ GEQ_CLEAR,//val[0]: 复位EQ参数
};
if(handle == NULL) return 1;
int i;
short val[4];
- ptag_geq pgeq = (ptag_geq)handle ;
+ ptag_geq geq = (ptag_geq)handle;
plen = sizeof(tag_geq);
- const s16 *pfc = fc_31;
- switch(pgeq->nsections){
- case 10:
- pfc = fc_10;
- break;
- case 15:
- pfc = fc_15;
- break;
- default:
- pfc = fc_31;
- break;
- }
+ val[0] = geq->bypass; m->Ctrl(EQ_BYPASS_ALL, val, 1);
+ val[0] = geq->q_index; m->Ctrl(GEQ_QVALUE, val, 1);
- val[0] = pgeq->bypass; m->Ctrl(EQ_BYPASS_ALL, val, 1);
- val[0] = pgeq->q; m->Ctrl(EQ_QVALUE, val, 1);
-
- for(i=0 ;i < pgeq->nsections ;i++) {
- val[0] = i; val[1] = RESSIGNBIT(pgeq->eq_attr[i].gain); m->Ctrl(EQ_GAIN, val, 2);
- val[0] = i; val[1] = pfc[i]; m->Ctrl(EQ_FREQ, val, 2);
+ for(i=0 ;i < geq->nsections ;i++) {
+ val[0] = i; val[1] = RESSIGNBIT(geq->eq_attr[i].gain); m->Ctrl(GEQ_GAIN, val, 2);
}
return 0;
diff --git a/src/tg/tg_scene.cpp b/src/tg/tg_scene.cpp
index 5789384..5c3753e 100644
--- a/src/tg/tg_scene.cpp
+++ b/src/tg/tg_scene.cpp
@@ -217,7 +217,7 @@
int j;
ptag_geq pGEQ = (ptag_geq)param_ptr;
pGEQ->bypass = allbypass;
- pGEQ->q = 2;
+ pGEQ->q_index = 2;
pGEQ->nsections = 31;
for(j=0;j<31;j++){
pGEQ->eq_attr[j].gain = 0;
diff --git a/src/tg/tg_user_ctrl.cpp b/src/tg/tg_user_ctrl.cpp
index 2dc9ce8..f9bc97d 100644
--- a/src/tg/tg_user_ctrl.cpp
+++ b/src/tg/tg_user_ctrl.cpp
@@ -272,17 +272,15 @@
u32 tg_param_ctrl::Geq_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
{
- enum EQID{
- EQ_BYPASS_ALL = 0x1,
- EQ_BYPASS,
- EQ_FREQ,
- EQ_GAIN,
- EQ_QVALUE,
- EQ_TYPE,
+ enum GEQID{
+ GEQ_BYPASS_ALL = 0x1,//val[0]: 0-取消bypass, 1- 使能bypass
+ GEQ_QVALUE,//val[0]: 1-narrow, 2-normal, 3-wide
+ GEQ_GAIN,//val[0]: 段序号,val[1] : 增益,乘以100,范围:-4800~2400
+ GEQ_CLEAR,//val[0]: 复位EQ参数
};
short val[4];
- short cmd[8] = {0,EQ_BYPASS_ALL, EQ_QVALUE, EQ_GAIN};
+ short cmd[8] = {0, GEQ_BYPASS_ALL, GEQ_QVALUE, GEQ_GAIN, GEQ_CLEAR};
val[0] = RESSIGNBIT(val_c[0]);
val[1] = RESSIGNBIT(val_c[1]);
--
Gitblit v1.9.3