From 4003a3bfa8a12ce3927df1d67f65acd4395adab1 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期五, 10 十月 2025 17:30:56 +0800
Subject: [PATCH] 补回.svc文件
---
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