chenlh
2025-09-18 ab07ada908b82340e7acd899e85a9802cf8a9057
src/tg/tg_param_convert.cpp
@@ -57,19 +57,23 @@
u32 tg_param_convert::InputParamCtrl(IModule* m, void* handle, int &plen)
{
   enum GainID {
   enum Input_ID{
      GAIN = 0x1,
      MUTE,
      SENSI,
      PHANTOM,
      PHASE = 9,
      STEP,//-500~+500
   };
      TYPE,
      FREQ,
      LEVEL,
      NAME,
      PHASE,
      STEP,
      LINK,
      CHANNEL_LEVEL,
   enum PitchID {
      PITCH_BYPASS = 0x1,//
      PITCH_SEMITONES,//
      INPUT_MIN,
      INPUT_MAX,
   };
   if(handle == NULL) return 1;
@@ -84,9 +88,14 @@
      val[1] = RESSIGNBIT(pInput->input[i].gain);  m->Ctrl(GAIN, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].mute);  m->Ctrl(MUTE, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].level);  m->Ctrl(LEVEL, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].sensitivity);  m->Ctrl(SENSI, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].phant);  m->Ctrl(PHANTOM, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].phase);  m->Ctrl(PHASE, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].type);  m->Ctrl(TYPE, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].freq);  m->Ctrl(FREQ, val, 2);
      val[1] = RESSIGNBIT(pInput->input[i].level);  m->Ctrl(LEVEL, val, 2);
   }
   return 0;
@@ -303,8 +312,9 @@
      for(i=0 ;i < pmixer->output_num ;i ++) {
         for(j =0 ;j < pmixer->input_num ;j++) {
            val[0] = j;  val[1] = i ; val[2] = (pmixer->input_mask[i][j/15]>>(j&15))&0x1;  m->Ctrl(MIXER_SWITCH, val, 3);
            val[0] = j;  val[1] = i ; val[2] = RESSIGNBIT(pmixer->input_gain[i][j]);  m->Ctrl(MIXER_GAIN, val, 3);
            val[0] = j;  val[1] = i; val[2] = (pmixer->input_mask[i][j/15]>>(j&15))&0x1;  m->Ctrl(MIXER_SWITCH, val, 3);
//            printf("oich %d %d= %x %x %x\n", i,j, val[0],val[1],val[2]);
            val[0] = j;  val[1] = i; val[2] = RESSIGNBIT(pmixer->input_gain[i][j]);  m->Ctrl(MIXER_GAIN, val, 3);
         }
      }
   }
@@ -364,23 +374,6 @@
u32 tg_param_convert::FeedbackParamCtrl(IModule* m, void* handle, int &plen)
{
//   enum NHSID{
//      FB_BYPASS = 0x1,
//      FB_PANIC,
//      FB_THRS,
//      FB_FLT_DEPTH,
//      FB_STEP,
//      FB_FLT_Q,
//      FB_RECYCLETIME,
//
//      FB_FLT_FREQ,
//      FB_FLT_GAIN,
//      FB_FLT_TYPE,
//
//      FB_CLEAR, //
//      FB_CLEAR_DYNAMIC,//
//   };
   enum NHSID{
      FB_BYPASS= 0x1,
      FB_FLT_FREQ,
@@ -502,12 +495,13 @@
   if(handle == NULL) return 1;
   short val[4];
   short val[4] = {0,0,0,0};
   ptag_aec paec = (ptag_aec)handle;
   plen = sizeof(tag_aec);
   val[0] = paec->bypass;  m->Ctrl(BYPASS, val, 1);
   val[0] = paec->mode;  m->Ctrl(NLPLEVEL, val, 1);
   val[1] = paec->bypass;  m->Ctrl(BYPASS, val, 2);
   val[1] = paec->mode;  m->Ctrl(NLPLEVEL, val, 2);
   val[1] = 2; m->Ctrl(NSMODE, val, 2);
   return 0;
}
@@ -848,6 +842,30 @@
   return 0;
}
u32 tg_param_convert::FirParamCtrl(IModule* m, void* handle, int &plen)
{
   enum FIRID {
      FIR_BYPASS = 0x1,  ////val[0]: 0-取消bypass, 1- 使能bypass
      FIR_NAME, //无用
      FIR_TAPS, //无用
      FIR_COEFFS, //val: 分包,最大长度1024 float. 无转换直接拷贝float.
   };
   if(NULL == handle)   return 1;
   ptag_fir pfir = (ptag_fir)handle;
   plen = sizeof(tag_fir);
   short val[4] = {0};
   val[0] = pfir->bypass;
   int taps = pfir->taps;
   const short *pcoeffs = (const short *)pfir->coeffs;
   m->Ctrl(FIR_BYPASS, val, 1);
   m->Ctrl(FIR_COEFFS, pcoeffs, taps * 2);
   return 0;
}
u32 tg_param_convert::EmptyParamCtrl(IModule* m, void* handle, int &plen)
{
   if(handle == NULL) return 1;