From fe4d335b54ede7a47fd4bcf5c228fb427cbcc8c9 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期二, 20 一月 2026 14:46:01 +0800
Subject: [PATCH] 新增通道参数拷贝功能

---
 src/tg/tg_user_ctrl.cpp |   88 ++++++++++++++++++++++++++++++--------------
 1 files changed, 60 insertions(+), 28 deletions(-)

diff --git a/src/tg/tg_user_ctrl.cpp b/src/tg/tg_user_ctrl.cpp
index 96497a4..f9bc97d 100644
--- a/src/tg/tg_user_ctrl.cpp
+++ b/src/tg/tg_user_ctrl.cpp
@@ -57,16 +57,16 @@
 		MUTE,
 		SENSI,
 		PHANTOM,
-
 		TYPE,
+
 		FREQ,
 		LEVEL,
 		NAME,
 		PHASE,
 		STEP,
+
 		LINK,
 		CHANNEL_LEVEL,
-
 		INPUT_MIN,
 		INPUT_MAX,
 	};
@@ -178,23 +178,6 @@
 
 u32 tg_param_ctrl::Feedback_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
-//	enum NHSID{
-//		FB_BYPASS = 0x1,
-//		FB_PANIC,
-//		FB_THRS,
-//		FB_FLT_DEPTH,
-//		FB_STEP,
-//		FB_FLT_Q,
-//		FB_RECYCLETIME,
-//
-//		FB_FLT_FREQ,
-//		FB_FLT_GAIN,
-//		FB_FLT_TYPE,
-//
-//		FB_CLEAR,
-//		FB_CLEAR_DYNAMIC,
-//	};
-
 	enum NHSID{
 		FB_BYPASS= 0x1,
 		FB_FLT_FREQ,
@@ -289,17 +272,15 @@
 
 u32 tg_param_ctrl::Geq_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
-	enum EQID{
-	  EQ_BYPASS_ALL = 0x1,
-	  EQ_BYPASS,
-	  EQ_FREQ,
-	  EQ_GAIN,
-	  EQ_QVALUE,
-	  EQ_TYPE,
+	enum GEQID{
+		GEQ_BYPASS_ALL = 0x1,//val[0]: 0-取消bypass, 1- 使能bypass
+		GEQ_QVALUE,//val[0]: 1-narrow, 2-normal, 3-wide
+		GEQ_GAIN,//val[0]: 段序号,val[1] : 增益,乘以100,范围:-4800~2400
+		GEQ_CLEAR,//val[0]: 复位EQ参数
 	};
 
 	short val[4];
-	short cmd[8] = {0,EQ_BYPASS_ALL, EQ_QVALUE, EQ_GAIN};
+	short cmd[8] = {0, GEQ_BYPASS_ALL, GEQ_QVALUE, GEQ_GAIN, GEQ_CLEAR};
 
 	val[0] = RESSIGNBIT(val_c[0]);
 	val[1] = RESSIGNBIT(val_c[1]);
@@ -349,7 +330,7 @@
 	val[1] = RESSIGNBIT(val_c[1]);
 
 	m->Ctrl(pID, val, 2);
-//	printf("pID:%d v[0]:%d v[1]:%d\n", pID, val[0], val[1]);
+//	dbg_printf("pID:%d v[0]:%d v[1]:%d\n", pID, val[0], val[1]);
 
 	return 0;
 }
@@ -375,7 +356,58 @@
 	return 0;
 }
 
+u32 tg_param_ctrl::Spl_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
+{
+	enum ContinousSPLID {
+		SPL_BYPASS = 0x1,
+		SPL_MAX_GAIN,
+		SPL_MIN_GAIN,
+		SPL_SENSE_RATIO = 4,
+		SPL_UPSPEED = 5,
+		SPL_DOWNSPEED,
+		SPL_TRIM,
+		SPL_THR,
+		SPL_DISTANCE,
+	};
+	enum ContSplWithMixID {
+		SPLMIX_BYPASS = 0x1, //val[0]:0-取消bypass,1-bypass
+		SPLMIX_MAX_GAIN,
+		SPLMIX_MIN_GAIN,
+		SPLMIX_SENSE_RATIO,
+		SPLMIX_SPEED = 5,
+		SPLMIX_TRIM,
+		SPLMIX_THR,
+		SPLMIX_DISTANCE,
+		SPLMIX_MIX,
+	};
 
+	s16 val[4];
+	val[0] = RESSIGNBIT(val_c[0]), val[0] = RESSIGNBIT(val_c[1]);
+
+	if (pID < 5) {
+		General_Ctrl(m, pID, val_c, num);
+	}
+	else {
+		switch (pID) {
+			case ContSplWithMixID::SPLMIX_SPEED:
+				m->Ctrl(ContinousSPLID::SPL_UPSPEED, val, 1);
+				m->Ctrl(ContinousSPLID::SPL_DOWNSPEED, val, 1);
+				break;
+			case ContSplWithMixID::SPLMIX_TRIM:
+				m->Ctrl(ContinousSPLID::SPL_TRIM, val, 1);
+				break;
+			case ContSplWithMixID::SPLMIX_THR:
+				m->Ctrl(ContinousSPLID::SPL_THR, val, 1);
+				break;
+			case ContSplWithMixID::SPLMIX_DISTANCE:
+				m->Ctrl(ContinousSPLID::SPL_DISTANCE, val, 1);
+				break;
+			default:
+				break;
+		}
+	}
+	return 0;
+}
 
 
 

--
Gitblit v1.9.3