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 | 58 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 38 insertions(+), 20 deletions(-)
diff --git a/src/tg/tg_scene.h b/src/tg/tg_scene.h
index cc34a79..5815a22 100644
--- a/src/tg/tg_scene.h
+++ b/src/tg/tg_scene.h
@@ -10,61 +10,79 @@
#include <vector>
#include "../scene.h"
+#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;//514
-
- 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);
//根据模块类型更新模块信息.
virtual s32 update_module() override;
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 ¶meters; }
+
+ 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;
};
+
+//void param_init(ptag_device_config pDevCfg);
+//void preset_init(tag_parameters *p);
+
+
#endif /* TG_SCENE_H_ */
--
Gitblit v1.9.3