graydon
2025-08-30 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
src/tg/tg_adapter.cpp
@@ -2,39 +2,40 @@
#include "tg_config.h"
#include "tg_adapter.h"
//参数logic_channel逻辑通道从0开始.
s32 tg_hw_adapter_t::get_physical_channel(s32 input , s32 logic_channel)
{
   //s32 phy_channel[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19};
   if(input) {
//      s32 input_num = ana_input_num + dante_input_num ;
      s32 local_ch = ana_input_num + usb_input_num;   // C H G 18
      s32 input_num = ana_input_num + dante_input_num ;
//      s32 local_ch = ana_input_num + usb_input_num;   // C H G 18
      if(logic_channel < ana_input_num) {
         //analog
         return logic_channel + 1;
         return logic_channel+1;
      }
      else if(logic_channel < local_ch) {
         //usb
         return 17 + (logic_channel + 2 - local_ch);
      else if(logic_channel < input_num) {
         //dante
         return 19 + (logic_channel - ana_input_num);
      }
      else {
         //dante
         return 19 + (logic_channel - local_ch);
         //usb
         return 17 + (logic_channel - input_num);
      }
   }
   else {   //output
//      s32 output_num = ana_output_num + dante_output_num ;
      s32 local_ch = ana_output_num + usb_output_num;   // C H G 18
      s32 output_num = ana_output_num + dante_output_num ;
//      s32 local_ch = ana_output_num + usb_output_num;   // C H G 18
      //analog
      if(logic_channel < ana_output_num) {
         return logic_channel +1;
         return logic_channel;
      }
      else if(logic_channel < local_ch) {
         //usb
         return 17 + (logic_channel + 2 - local_ch);
      else if(logic_channel < output_num) {
         //dante
         return 19 + (logic_channel - ana_output_num);
      }
      else {
         //dante
         return 19 + (logic_channel - local_ch);
         //usb
         return 17 + (logic_channel - output_num);
      }
   }
}