chenlh
2025-10-10 4003a3bfa8a12ce3927df1d67f65acd4395adab1
src/tg/tg_scene.cpp
@@ -14,45 +14,24 @@
tgScene::tgScene(hw_adapter_t* adapter):Scene(adapter)
{
   s8 inport_str[16],outport_str[16];
<<<<<<< HEAD
   s8 ana_input_num, ana_output_num, loc_input_num, loc_output_num, dante_input_num, dante_output_num ;
   s8 usb_input_num, usb_output_num;
   s16 input_num, output_num ;
   s32 n, new_idx = 300; //ID of the USB channel starts from 300.
=======
   s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num ;
   s8 usb_input_num = 2, usb_output_num = 2;
   s16 input_num, output_num ;
   s32 n, new_idx = 300; //usb 新增模块ID从300开始(与arm/pc协商一致),使用new_idx递增.
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   s16 dual_dsp = adapter->get_system_is_dual_dsp();
   s16 dsp_index = adapter->get_dsp_index();
<<<<<<< HEAD
   adapter->get_channel_num(&loc_input_num, &loc_output_num, &dante_input_num, &dante_output_num, &usb_input_num, &usb_output_num);
   ana_input_num = loc_input_num - usb_input_num;
   ana_output_num = loc_output_num - usb_output_num;
   //物理输入共16+16+2
=======
   adapter->get_channel_num(&ana_input_num, &ana_output_num, &dante_input_num, &dante_output_num);
   //新增加的2x2 usb是带处理的和输入,输出平级
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   input_num = ana_input_num + dante_input_num + usb_input_num; //2 USB
   output_num = ana_output_num + dante_output_num + usb_output_num;
   tgScene_param_default(&parameters);
<<<<<<< HEAD
=======
   //只有physic_type 为PHY_INPUT和PHY_OUTPUT的 才会调用XX_adapter.cpp下的get_physical_channel函数.
   //所以这2两个模块类型 port_str 对应的是逻辑通道应该覆盖到所有物理通道包括模拟、dante、usb.
   //逻辑通道也就是PC软件看到的通道顺序(ana+dante+usbL+usbR+am+aec+ans).
   //物理通道是DMA配置的顺序,get_physical_channel就是做逻辑通道到物理通道的映射.
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   sprintf(inport_str, "1-%d", input_num);
   __MADD(299,PROC_INPUT,inport_str,inport_str,0, 1 ,&parameters.input,  0, ModuleInterfaceType::PHY_INPUT);
@@ -117,11 +96,7 @@
   //am
   sprintf(inport_str, "1-%d", input_num);
   sprintf(outport_str, "1-%d", input_num+1);
<<<<<<< HEAD
   __MADD(161,PROC_AUTOMIXER,inport_str, outport_str, 0, 0, &parameters.automixer, 0, ModuleInterfaceType::SOFT_MODULE);  //¿ÉÌæ»»
=======
   __MADD(161,PROC_AUTOMIXER,inport_str, outport_str, 0, 0, &parameters.automixer, 0, ModuleInterfaceType::SOFT_MODULE);  //可替换
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   //aec selector
   sprintf(inport_str, "1-%d", input_num+ 1);
@@ -146,11 +121,7 @@
   //mixer
   sprintf(inport_str, "1-%d", input_num+ 3);
   sprintf(outport_str, "%d-%d",input_num+4, input_num+output_num+4);
<<<<<<< HEAD
   __MADD(166,PROC_MIXER,inport_str,outport_str,1, 1 ,&parameters.mixer, 0, ModuleInterfaceType::SOFT_MODULE);    // .begin()+48
=======
   __MADD(166,PROC_MIXER,inport_str,outport_str,1, 1 ,&parameters.mixer, 0, ModuleInterfaceType::SOFT_MODULE);   // .begin()+48
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   //crossover
   for(s32 i =0 ;i < output_num ; i++) {
@@ -164,65 +135,38 @@
   //eq
   for(s32 i =0 ;i < output_num ; i++) {
<<<<<<< HEAD
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(199+i,PROC_EQ,outport_str, outport_str,1, 0, &parameters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx++,PROC_EQ,outport_str, outport_str,1, 0, &parameters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE);
=======
      sprintf(inport_str, "%d|", i+input_num+4);
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(199+i,PROC_EQ,inport_str, outport_str,1, 0, &parameters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx++,PROC_EQ,inport_str, outport_str,1, 0, &parameters.out2[i], 8, ModuleInterfaceType::SOFT_MODULE);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   }
   //delay
   for(s32 i =0 ;i < output_num ; i++) {
<<<<<<< HEAD
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(231+i,PROC_DELAY,outport_str, outport_str,1, 0, &parameters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx++,PROC_DELAY,outport_str, outport_str,1, 0, &parameters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE);
=======
      sprintf(inport_str, "%d|", i+input_num+4);
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(231+i,PROC_DELAY,inport_str, outport_str,1, 0, &parameters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx++,PROC_DELAY,inport_str, outport_str,1, 0, &parameters.out3[i], 1200, ModuleInterfaceType::SOFT_MODULE);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   }
   //limit
   for(s32 i =0 ;i < output_num ; i++) {
<<<<<<< HEAD
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(263+i,PROC_LIMIT,outport_str, outport_str,1, 0, &parameters.out4[i],0, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx++,PROC_LIMIT,outport_str, outport_str,1, 0, &parameters.out4[i],0, ModuleInterfaceType::SOFT_MODULE);
=======
      sprintf(inport_str, "%d|", i+input_num+4);
      sprintf(outport_str, "%d|", i+1);
      if(i < output_num - usb_output_num)
         __MADD(263+i,PROC_LIMIT,inport_str, outport_str,1, 0, &parameters.out4[i],0, ModuleInterfaceType::SOFT_MODULE);
      else
         __MADD(new_idx,PROC_LIMIT,inport_str, outport_str,1, 0, &parameters.out4[i],0, ModuleInterfaceType::SOFT_MODULE);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   }
   //output
   sprintf(outport_str, "1-%d", output_num);
   __MADD(295,PROC_OUTPUT,outport_str,outport_str,1, 1, &parameters.output,0, ModuleInterfaceType::SOFT_MODULE);
   //sysctrl
   __MADD(296,PROC_SYSCTL,outport_str,outport_str,1, 1, &parameters.sysctl,0, ModuleInterfaceType::PHY_OUTPUT);
   __MADD(296,PROC_SYSCTL,outport_str,outport_str,1, 1, &parameters.sysctl,0, ModuleInterfaceType::SOFT_MODULE);
   //meter
   __MADD(297,PROC_METER,outport_str,"",1, 1, NULL, 0, ModuleInterfaceType::SOFT_MODULE);
   __MADD(297,PROC_METER,outport_str,outport_str,1, 1, NULL, 0, ModuleInterfaceType::PHY_OUTPUT);
};
@@ -246,7 +190,7 @@
            pInput->input[j].gain =0;
            pInput->input[j].mute = 0;
            pInput->input[j].type=0;
            pInput->input[j].phase =0 ;
            pInput->input[j].phase =0;
            pInput->input[j].mingain = -8000;
            pInput->input[j].maxgain = 1200;
         }
@@ -492,14 +436,11 @@
      break;
      case PROC_FIR:
<<<<<<< HEAD
         ptag_fir pfir = (ptag_fir)param_ptr;
         pfir->bypass = allbypass;
         pfir->taps = 1024;
         memset((void*)pfir->coeffs, 0, sizeof(pfir->coeffs));
         pfir->coeffs[0] = 1;
=======
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
      break;
      default:
@@ -545,7 +486,6 @@
s32 tgScene::set_parameters_content(uvoid* param, s32 size)
{
   tag_parameters* pp = (tag_parameters*)param;
<<<<<<< HEAD
   int L[24] = {0};
   if(pp->magic != 0xbcba || size != sizeof(tag_parameters)) {
      printf("preset param error!\n");
@@ -568,10 +508,6 @@
      printf("tag_group:%d, %d\n", sizeof(tag_group), L[18]=sizeof(tag_group)+L[17]);*/
      printf("Len parameters:%d, Len recv:%d\n", L[19]=sizeof(tag_parameters), size);
=======
   if(pp->magic != 0xbcba || size != sizeof(tag_parameters)) {
      printf("preset param error!\n");
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
      return -1;
   }
   memcpy(&parameters, param, sizeof(tag_parameters));
@@ -639,11 +575,7 @@
s32 tgScene::update_module()
{
<<<<<<< HEAD
   s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num, usb_input_num, usb_output_num ;
=======
   s8 ana_input_num, ana_output_num,dante_input_num,dante_output_num ;
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   s16 input_num, output_num ;
   s16 dual_dsp = hw_adapter->get_system_is_dual_dsp();
   s16 dsp_index = hw_adapter->get_dsp_index();