From e0f29d5815a7dd4d45733ce1d661f1df263913d4 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期四, 09 十月 2025 15:23:10 +0800
Subject: [PATCH] 第一轮测试OK版提交

---
 src/tg/tg_user_ctrl.cpp |  175 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 117 insertions(+), 58 deletions(-)

diff --git a/src/tg/tg_user_ctrl.cpp b/src/tg/tg_user_ctrl.cpp
index 21c176a..f63dbb7 100644
--- a/src/tg/tg_user_ctrl.cpp
+++ b/src/tg/tg_user_ctrl.cpp
@@ -4,12 +4,13 @@
  *  Created on: 2025年7月24日
  *      Author: 86189
  */
+#include <stdio.h>
 #include "IModule.h"
 #include "module_def.h"
 #include "tg_user_ctrl.h"
 
 
-u32 tg_param_ctrl::Signalgen_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Signalgen_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum SGItemType{
 		SG_MUTE = 0x1,
@@ -49,41 +50,37 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Input_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Input_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
-	enum GainID {
+	enum Input_ID{
 		GAIN = 0x1,
 		MUTE,
 		SENSI,
 		PHANTOM,
 
-		PHASE = 9,
-		STEP,//-500~+500
+		TYPE,
+		FREQ,
+		LEVEL,
+		NAME,
+		PHASE,
+		STEP,
+		LINK,
+		CHANNEL_LEVEL,
+
+		INPUT_MIN,
+		INPUT_MAX,
 	};
-
-
-	enum PitchID {
-		PITCH_BYPASS = 0x1,//
-		PITCH_SEMITONES,//
-	};
-
 
 	short val[4];
-	int channel = val_c[0]&(MAX_INPUT_NUM-1);
+	int channel = val_c[0];//&(MAX_INPUT_NUM-1);
 
-	if(pID == INPUT_STEP) {
-		val[0] = channel;  val[1] = RESSIGNBIT(val_c[1]);
-		m->Ctrl(STEP, val, 2);
-	}
-	else {
-		val[0] = channel;  val[1] = RESSIGNBIT(val_c[1]);
-		m->Ctrl(pID, val, 2);
-	}
+	val[0] = channel;  val[1] = RESSIGNBIT(val_c[1]);
+	m->Ctrl(pID, val, 2);
 
 	return 0;
 }
 
-u32 tg_param_ctrl::Gain_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Gain_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum GainID {
 		GAIN = 0x1,
@@ -96,7 +93,7 @@
 	};
 
 	short val[4];
-	int channel = val_c[0]&(MAX_INPUT_NUM-1);
+	int channel = val_c[0];//&(MAX_INPUT_NUM-1);
 
 	if(pID == 0x20) {
 		val[0] = channel;  val[1] = RESSIGNBIT(val_c[1]);
@@ -106,7 +103,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Output_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Output_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum GainID {
 		GAIN = 0x1,
@@ -119,7 +116,7 @@
 	};
 
 	short val[4];
-	int channel = val_c[0]&(MAX_OUTPUT_NUM-1);
+	int channel = val_c[0];//&(MAX_OUTPUT_NUM-1);
 
 	short cmd[16] = {GAIN, MUTE, 0, PHASE, SENSI, STEP, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 };
 	val[0] = channel;
@@ -130,7 +127,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Mixer_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Mixer_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	short val[4];
 
@@ -152,7 +149,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Crossover_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Crossover_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum CFilterID {
 		_BYPASS = 0x1,
@@ -179,25 +176,8 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Feedback_Ctrl(IModule* m, u32 pID, s16* val_c)
+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,
@@ -223,7 +203,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Automixer_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Automixer_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum GainSharingAMID {
 		AM_BYPASS =0x1,
@@ -247,7 +227,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Aec_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Aec_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum AECID{
 	  BYPASS = 0X1,
@@ -265,18 +245,16 @@
 	  AGC_GAIN,
 	};
 
+	short val[4] = {0,0,0,0};
+	short cmd[3] = {0, BYPASS, NLPLEVEL};
 
-	short val[4];
-	short cmd[12] = {0, BYPASS, NLPLEVEL, 0, 0,0};
-
-	val[0] = RESSIGNBIT(val_c[0]);
-	val[1] = RESSIGNBIT(val_c[1]);
-	m->Ctrl(cmd[pID], val, 1);
+	val[1] = RESSIGNBIT(val_c[0]);
+	m->Ctrl(cmd[pID], val, 2);
 
 	return 0;
 }
 
-u32 tg_param_ctrl::Sysctl_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Sysctl_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum SYSCTRLID{
 		SYSCTL_MUTE = 0x1, //val[0]:0-unmute,1-mute
@@ -292,7 +270,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Geq_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Geq_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum EQID{
 	  EQ_BYPASS_ALL = 0x1,
@@ -314,7 +292,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Reverb_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Reverb_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	short val[4];
 
@@ -326,7 +304,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::Echo_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::Echo_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	enum EchoID{
 		ECHO_BYPASS = 1,
@@ -346,7 +324,7 @@
 	return 0;
 }
 
-u32 tg_param_ctrl::General_Ctrl(IModule* m, u32 pID, s16* val_c)
+u32 tg_param_ctrl::General_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
 {
 	short val[4];
 
@@ -354,8 +332,89 @@
 	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]);
 
 	return 0;
 }
 
+u32 tg_param_ctrl::Fir_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num)
+{
+	enum FIRID {
+		FIR_BYPASS = 0x1,  ////val[0]: 0-取消bypass, 1- 使能bypass
+		FIR_NAME, //无用
+		FIR_TAPS, //无用
+		FIR_COEFFS, //val: 分包,最大长度1024 float. 无转换直接拷贝float.
+	};
+	s16 val[4];
+	val[0] = RESSIGNBIT(val_c[0]);
+
+	if(FIR_BYPASS == pID){
+		m->Ctrl(pID, val, 1);	// val[0] is bypass or nobypass
+	}
+	else if (FIR_COEFFS == pID){
+		m->Ctrl(pID, val_c, num);
+	}
+
+	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