chenlh
2025-11-14 f41a0f70a05fbed9ccbf4b8c6d9df87147fde374
GEQ参数ID变更
已修改4个文件
58 ■■■■■ 文件已修改
src/tg/module_def.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tg/tg_param_convert.cpp 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tg/tg_scene.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tg/tg_user_ctrl.cpp 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tg/module_def.h
@@ -72,7 +72,7 @@
typedef struct{
    unsigned short bypass;
    unsigned short q;
    unsigned short q_index;
    unsigned short nsections;
    struct {
        short gain;
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;
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;
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]);