From 8758151dcdb0f89e362dd297405a384d3a034380 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期三, 28 一月 2026 20:21:37 +0800
Subject: [PATCH] 天宫输入源模块设置时爆音及参数拷贝更新

---
 src/tg/tg_scene.h |   51 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/src/tg/tg_scene.h b/src/tg/tg_scene.h
index df553cb..5815a22 100644
--- a/src/tg/tg_scene.h
+++ b/src/tg/tg_scene.h
@@ -13,51 +13,54 @@
 #include "../protocol.h"
 #include "module_def.h"
 
-
+#pragma pack (1)
 typedef struct {
 	unsigned short magic;
 	unsigned short nmds;
 
 	unsigned short pad1;
 	unsigned short  pad2;
-
 	unsigned short  crc[2];
 
+	tag_input input;	//1362
 
-	tag_input input;//1282
-
-	tag_module  in1[MAX_INPUT_NUM];
+	tag_module  in1[MAX_INPUT_NUM];	//4352
 	tag_module  in2[MAX_INPUT_NUM];
 	tag_module  in3[MAX_INPUT_NUM];
 	tag_module  in4[MAX_INPUT_NUM];
 	tag_module  in5[MAX_INPUT_NUM];
 
-	tag_automixer   automixer;//138
-	tag_selector	 aec_selector; //68
-	tag_aec 			aec; //4
-	tag_selector   ans_selector; //68
-	tag_3a        	afc_ns;//4
-	tag_mixer			mixer; //728   -4
+	tag_automixer	automixer;	//366
+	tag_selector	aec_selector;	//208
+	tag_aec			aec;	//4
+	tag_selector	ans_selector;	//208
+	tag_3a			afc_ns;	//36
+	tag_mixer		mixer;	//5242
 
-	tag_module  out1[MAX_OUTPUT_NUM];
-	tag_module	out2[MAX_OUTPUT_NUM];
-	tag_module  out3[MAX_OUTPUT_NUM];
-	tag_module  out4[MAX_OUTPUT_NUM];
-	tag_output     output;
-	tag_sysctl sysctl;
-	tag_group group;
+	tag_module  	out1[MAX_OUTPUT_NUM];	//4352
+//	tag_module	out2[MAX_OUTPUT_NUM];
+	tag_module_fir	out2[MAX_OUTPUT_NUM];	//140080
+	tag_module  	out3[MAX_OUTPUT_NUM];
+	tag_module  	out4[MAX_OUTPUT_NUM];
+	tag_output	output;	//1158
+	tag_sysctl	sysctl;	//6
+	tag_group	group;	//272
 } tag_parameters, *ptag_parameters;
-
+#pragma pack ()
 
 class tgScene: public Scene
 {
 private:
 	tag_parameters parameters; //预设参数由ARM下发
+	s32 **chin_mid, **chout_mid;	//chin_mid[i][0]、chout_mid[i][0]为输入输出ID,算法模块ID第二维从1开始; i表示通道,从0开始
+	std::vector<void *> paramPtr;
+	s32 input_num, output_num;
 
 	//更新动态模块level_num和tag. 非动态模块已经静态固定.
 	s32 update_dynmodule_tag(s32 proc_type,struct proc_field* proc);
 public:
 	tgScene(hw_adapter_t* adapter);
+	~tgScene();
 	void module_def(s32 proc_type, void* param_ptr);
 	void tgScene_param_default(ptag_parameters p);
 
@@ -66,9 +69,15 @@
 
 	virtual s32 set_parameters_content(uvoid* param, s32 size) override;
 
-	virtual uvoid* get_module_param_ptr(uvoid *param, s32 fixed) override;
+	virtual uvoid* get_module_param_ptr(s32 mType, uvoid *param, s32 fixed) override;
 
-	virtual u32 get_module_id(u32 mid, s32 mtype ,u32 pid) override;
+	virtual void* get_parameters() override { return &parameters; }
+
+	virtual s32** get_chin_mid() override { return chin_mid; }
+	virtual s32** get_chout_mid() override { return chout_mid; }
+	virtual s32 get_input_num() override { return input_num; }
+	virtual s32 get_output_num() override { return output_num; }
+//	virtual u32 get_module_id(u32 mid, s32 mtype ,u32 pid) override;
 };
 
 

--
Gitblit v1.9.3