From 8445c54f01777513912d4c6d36c28e92a0ff33a0 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期四, 18 九月 2025 14:40:53 +0800
Subject: [PATCH] 首轮测试代码提交

---
 src/tg/tg_scene.cpp |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/src/tg/tg_scene.cpp b/src/tg/tg_scene.cpp
index a6021bb..802f32e 100644
--- a/src/tg/tg_scene.cpp
+++ b/src/tg/tg_scene.cpp
@@ -14,24 +14,45 @@
 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;
 
 	//鐗╃悊杈撳叆鍏�6+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);
 
@@ -96,7 +117,11 @@
 	//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);
@@ -121,7 +146,11 @@
 	//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++) {
@@ -135,29 +164,56 @@
 
 	//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
@@ -436,11 +492,14 @@
 		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:
@@ -486,6 +545,7 @@
 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");
@@ -508,6 +568,10 @@
 		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));
@@ -575,7 +639,11 @@
 
 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();

--
Gitblit v1.9.3