From e0f29d5815a7dd4d45733ce1d661f1df263913d4 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期四, 09 十月 2025 15:23:10 +0800
Subject: [PATCH] 第一轮测试OK版提交
---
.cproject | 86 +++++++++++++
src/tob.cpp | 14 +
src/tg/tg_scene.cpp | 6
inc/ModuleProAPI.h | 2
src/main.cpp | 3
src/tg/tg_adapter.cpp | 4
src/messageproc.h | 2
src/tg/tg_param_convert.cpp | 84 ++++++-------
drv/FIR_acc.c | 15 +
src/ModuleExport.cpp | 4
src/scene.cpp | 21 ---
lib/ModuleProcLibs.dlb | 0
src/tg/tg_user_ctrl.h | 1
src/tg/tg_user_ctrl.cpp | 68 ++++++++--
14 files changed, 206 insertions(+), 104 deletions(-)
diff --git a/.cproject b/.cproject
index 50e78eb..be525cf 100644
--- a/.cproject
+++ b/.cproject
@@ -30,8 +30,8 @@
<inputType id="assembler.input.1304626576" name="Assembler Source" superClass="assembler.input"/>
</tool>
<tool id="sharc.toolchain.compiler.913943905" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler">
- <option id="compiler.option.optimization.556394403" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="false" valueType="boolean"/>
- <option id="compiler.option.debugcode.900335004" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.optimization.556394403" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.900335004" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
<option id="compiler.option.proc.775463007" name="-proc" superClass="compiler.option.proc" useByScannerDiscovery="false" value=" ADSP-21569" valueType="string"/>
<option id="compiler.option.sirevision.375383135" name="-si-revision" superClass="compiler.option.sirevision" useByScannerDiscovery="false" value=" 0.0" valueType="string"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="compiler.option.preprocessdefs.200157960" name="Preprocessor definitions (-D):" superClass="compiler.option.preprocessdefs" useByScannerDiscovery="false" valueType="definedSymbols">
@@ -45,7 +45,7 @@
</option>
<option id="compiler.option.compilerswitch.182237227" name="Compiler Switch" superClass="compiler.option.compilerswitch" useByScannerDiscovery="false" value="false" valueType="boolean"/>
<option id="compiler.option.cpp11.976576354" name="Compile C++ source files with C++11 feature extensions (-c++11)" superClass="compiler.option.cpp11" useByScannerDiscovery="false" value="true" valueType="boolean"/>
- <option id="compiler.option.interprocdoptim.1504058608" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.1504058608" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<inputType id="compiler.inputType.1651873364" name="C/C++ Source" superClass="compiler.inputType"/>
</tool>
<tool id="sharc.toolchain.linker.1433934460" name="CrossCore SHARC Linker" superClass="sharc.toolchain.linker">
@@ -102,12 +102,80 @@
<tool id="sharc.toolchain.deviceprogrammer.630556623" name="CrossCore SHARC Device Programmer" superClass="sharc.toolchain.deviceprogrammer.185366862"/>
</toolChain>
</folderInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.985913406" name="frames.cpp" rcbsApplicability="disable" resourcePath="src/frames.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.950550964">
+ <tool id="sharc.toolchain.compiler.913943905.950550964" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.1980437294" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.611728753" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.1138950828" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.687677118" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.1691965581" name="scene.cpp" rcbsApplicability="disable" resourcePath="src/scene.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1234586496">
+ <tool id="sharc.toolchain.compiler.913943905.1234586496" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.410348796" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.1690047913" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.490184311" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.85154209" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.534564055" name="main.cpp" rcbsApplicability="disable" resourcePath="src/main.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.763200458">
+ <tool id="sharc.toolchain.compiler.913943905.763200458" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.debugcode.949526148" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.optimization.1191857628" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <inputType id="compiler.inputType.867448223" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.1691181675" name="tg_user_ctrl.cpp" rcbsApplicability="disable" resourcePath="src/tg/tg_user_ctrl.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1114977386">
+ <tool id="sharc.toolchain.compiler.913943905.1114977386" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.debugcode.991518921" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.optimization.1075741573" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <inputType id="compiler.inputType.1527595622" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.1405857650" name="tg_scene.cpp" rcbsApplicability="disable" resourcePath="src/tg/tg_scene.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.113949997">
+ <tool id="sharc.toolchain.compiler.913943905.113949997" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.debugcode.661630120" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.optimization.736282020" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <inputType id="compiler.inputType.1287708546" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.114413652" name="tg_param_convert.cpp" rcbsApplicability="disable" resourcePath="src/tg/tg_param_convert.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1973590061">
+ <tool id="sharc.toolchain.compiler.913943905.1973590061" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.debugcode.1559779574" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.optimization.49705725" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <inputType id="compiler.inputType.168258965" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
<fileInfo id="sharc.toolchain.configuration.debug.986561216.776821550" name="tob.cpp" rcbsApplicability="disable" resourcePath="src/tob.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1208184272">
<tool id="sharc.toolchain.compiler.913943905.1208184272" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
- <option id="compiler.option.debugcode.1852700867" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="true" valueType="boolean"/>
- <option id="compiler.option.optimization.1367621719" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.debugcode.1852700867" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <option id="compiler.option.optimization.1367621719" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="compiler.option.interprocdoptim.1519443625" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<inputType id="compiler.inputType.1256387287" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.16834260" name="messageproc.cpp" rcbsApplicability="disable" resourcePath="src/messageproc.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1594903641">
+ <tool id="sharc.toolchain.compiler.913943905.1594903641" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.1587905573" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.1994466859" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.1592451212" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.1011213956" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.1616289192" name="dsp_report.cpp" rcbsApplicability="disable" resourcePath="src/dsp_report.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.1246190550">
+ <tool id="sharc.toolchain.compiler.913943905.1246190550" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.1678551806" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.1566787524" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.823940128" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.2000351035" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.1607308522" name="ModuleExport.cpp" rcbsApplicability="disable" resourcePath="src/ModuleExport.cpp" toolsToInvoke="sharc.toolchain.compiler.913943905.837808415">
+ <tool id="sharc.toolchain.compiler.913943905.837808415" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.1154201452" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.639477731" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.614342811" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.1357284043" name="C/C++ Source" superClass="compiler.inputType"/>
</tool>
</fileInfo>
<fileInfo id="sharc.toolchain.configuration.debug.986561216.961651879" name="f2f.c" rcbsApplicability="disable" resourcePath="src/f2f.c" toolsToInvoke="sharc.toolchain.compiler.913943905.255253029">
@@ -118,6 +186,14 @@
<inputType id="compiler.inputType.142353510" name="C/C++ Source" superClass="compiler.inputType"/>
</tool>
</fileInfo>
+ <fileInfo id="sharc.toolchain.configuration.debug.986561216.2082366073" name="FIR_acc.c" rcbsApplicability="disable" resourcePath="drv/FIR_acc.c" toolsToInvoke="sharc.toolchain.compiler.913943905.1500758045">
+ <tool id="sharc.toolchain.compiler.913943905.1500758045" name="CrossCore SHARC C/C++ Compiler" superClass="sharc.toolchain.compiler.913943905">
+ <option id="compiler.option.optimization.507494327" name="Enable optimization (-O)" superClass="compiler.option.optimization" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.interprocdoptim.615814182" name="Interprocedural optimization (-ipa)" superClass="compiler.option.interprocdoptim" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="compiler.option.debugcode.389728662" name="Generate debug information (-g)" superClass="compiler.option.debugcode" useByScannerDiscovery="false" value="false" valueType="boolean"/>
+ <inputType id="compiler.inputType.1521254096" name="C/C++ Source" superClass="compiler.inputType"/>
+ </tool>
+ </fileInfo>
<sourceEntries>
<entry excluding="system|src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
diff --git a/drv/FIR_acc.c b/drv/FIR_acc.c
index bb94baa..eb25654 100644
--- a/drv/FIR_acc.c
+++ b/drv/FIR_acc.c
@@ -58,13 +58,20 @@
firHead.status = acc_completely;
firHead.count++;
}
+
+ if(firHead.status == acc_completely) {
+ for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) {
+ if(fir->callback) fir->callback(fir->content);
+ }
+ firHead.status = acc_idle;
+ }
}
uvoid fir_acc_init()
{
firHead.count =0;
firHead.num =0 ;
- firHead.status = acc_completely ;
+ firHead.status = acc_idle ;
firHead.first = NULL;
firHead.last = NULL;
@@ -77,9 +84,9 @@
{
s32 restarting = 0;
- if(firHead.status == acc_completely && firHead.num > 0) {
+ if(firHead.status == acc_idle && firHead.num > 0) {
for(struct FIR_tcb* fir = firHead.first; fir != NULL ; fir = fir->next) {
- if(fir->callback) fir->callback(fir->content);
+
if(fir->cp_update) {
memcpy((uvoid*)fir->cf_buff, fir->cf_temp , fir->tap*sizeof(ufloat));
fir->cp_update = ufalse;
@@ -199,7 +206,7 @@
firHead.last->next = fir;
firHead.last = fir ;
}
- //fir->tcb[0] = ((s32)(firHead.first->tcb+12)>>2)|MP_OFFSET;
+
firHead.num ++;
return fir;
diff --git a/inc/ModuleProAPI.h b/inc/ModuleProAPI.h
index 8a0437c..125ede2 100644
--- a/inc/ModuleProAPI.h
+++ b/inc/ModuleProAPI.h
@@ -30,6 +30,7 @@
__MODULE_EXPORT IModule* DEQCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* DeReverbCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* DuckerCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
+__MODULE_EXPORT IModule* DuckerWithMixCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* EchoCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* ReverbCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* EQsCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
@@ -41,6 +42,7 @@
__MODULE_EXPORT IModule* NHSCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* SignalGeneraterCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* ContinuousSPLCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
+__MODULE_EXPORT IModule* ContSplWithMixCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* DummyCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* SignalSourceCreate(u32 n, ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
__MODULE_EXPORT IModule* InputCreate(u32 n,ubool linkEnable , u32 sampleRate, u32 sampleNum, u16 inputNum, u16 outputNum);
diff --git a/lib/ModuleProcLibs.dlb b/lib/ModuleProcLibs.dlb
index 0948ad9..29bcd0d 100644
--- a/lib/ModuleProcLibs.dlb
+++ b/lib/ModuleProcLibs.dlb
Binary files differ
diff --git a/src/ModuleExport.cpp b/src/ModuleExport.cpp
index 2114d46..9679d68 100644
--- a/src/ModuleExport.cpp
+++ b/src/ModuleExport.cpp
@@ -32,9 +32,9 @@
modules.push_back(ModuleEntry("Gain",ModuleType::PROC_GAIN, GainCreate, utrue));
modules.push_back(ModuleEntry("GainSharingmixer",ModuleType::PROC_AUTOMIXER, GSAMCreate, ufalse));
modules.push_back(ModuleEntry("GatingMixer",ModuleType::PROC_GATING_AUTOMIXER, GatingAMCreate, ufalse));
- modules.push_back(ModuleEntry("SPL",ModuleType::PROC_CONTINUNOUS_SPL, ContinuousSPLCreate, utrue));
+ modules.push_back(ModuleEntry("SPL",ModuleType::PROC_CONTINUNOUS_SPL, ContSplWithMixCreate, ufalse));
//modules.push_back(ModuleEntry(ModuleType::GapSPL, InputCreate, 0.00));
- modules.push_back(ModuleEntry("Ducker",ModuleType::PROC_DUCKER, DuckerCreate, utrue));
+ modules.push_back(ModuleEntry("Ducker",ModuleType::PROC_DUCKER, DuckerWithMixCreate, ufalse));
modules.push_back(ModuleEntry("AGC",ModuleType::PROC_AGC, AGCCreate, utrue));
modules.push_back(ModuleEntry("SELECTOR",ModuleType::PROC_SELECTOR, MixerCreate, ufalse));
modules.push_back(ModuleEntry("SignalGenerator",ModuleType::PROC_SIGNALGEN, SignalGeneraterCreate, utrue));
diff --git a/src/main.cpp b/src/main.cpp
index 876ea9d..0c943ef 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -67,6 +67,9 @@
}
if(tob == NULL) return ;
+ if (iid == 53)
+ int ii = 0;
+
if(var.TopoLoading){
MuteOutput();
}
diff --git a/src/messageproc.h b/src/messageproc.h
index 4eeb767..3d75768 100644
--- a/src/messageproc.h
+++ b/src/messageproc.h
@@ -37,7 +37,7 @@
Message(u32 num)
{
txQueue = new Queue<MSG>(num);
- Levels = new s16[1000];
+ Levels = new s16[1688];
}
~Message()
{
diff --git a/src/scene.cpp b/src/scene.cpp
index e8618b9..3c33ade 100644
--- a/src/scene.cpp
+++ b/src/scene.cpp
@@ -81,25 +81,9 @@
continue;
}
- //ducker & spl.
+ //ducker & spl with mix.
if(p->proc_type == PROC_DUCKER || p->proc_type == PROC_CONTINUNOUS_SPL) {
- //insert a mixer.
- struct Module *mixer = (struct Module *)(bin + size);
- u16 channelID[64];
-
- mixer->mDsp = 0;
- mixer->mID = p->proc_id + 320;
- mixer->mType = ModuleType::PROC_MIXER;
- mixer->mTag = 0;
- mixer->mPhyModule = 0;
- mixer->mParamaddr = (s32)get_module_param_ptr(mixer->mType, p->parameters, p->fixed);
-
- size += sizeof(struct Module);
-
- mixer->mRxNum = str_delim(proc_list[1].inportstr, channelID) ;
- memcpy(bin + size , channelID, mixer->mRxNum*sizeof(u16)); size += mixer->mRxNum*sizeof(u16);
- mixer->mTxNum = 1;
- memcpy(bin + size , &rxBufID[1], mixer->mTxNum*sizeof(u16)); size += mixer->mTxNum*sizeof(u16);
+ ninports = str_delim(proc_list[1].inportstr, &rxBufID[1]) + 1; // rxBufID[0] is the dataIn Frame, rxBufID[1]~rxBufID[inportstr] is the mix channel.
}
if(hw_adapter->get_system_is_dual_dsp()){
dsp_index = p->dsp_index ;
@@ -107,7 +91,6 @@
else {
dsp_index = 0;
}
-
m = (struct Module *)(bin + size);
for(j = 0 ; j< ninports ;j ++) {
diff --git a/src/tg/tg_adapter.cpp b/src/tg/tg_adapter.cpp
index b3ad5b5..d227e73 100644
--- a/src/tg/tg_adapter.cpp
+++ b/src/tg/tg_adapter.cpp
@@ -38,7 +38,7 @@
}
}
-
+//物理buffer定义顺序是16通道模拟+2通道USB+32通道Dante.
uvoid tg_hw_adapter_t::config_board(struct DSPConfig * conf)
{
u32 i;
@@ -73,7 +73,7 @@
conf->sports[0].interrupt = utrue;
conf->sports[0].rx = utrue;
- //pcg
+ //pcg 产生时钟
conf->pcgs[0].enable = utrue;
conf->pcgs[0].opmode = 1;
conf->pcgs[0].width = 2;
diff --git a/src/tg/tg_param_convert.cpp b/src/tg/tg_param_convert.cpp
index 26f9e16..5968698 100644
--- a/src/tg/tg_param_convert.cpp
+++ b/src/tg/tg_param_convert.cpp
@@ -300,7 +300,7 @@
for (i =0 ;i < input_num_channels; i++) {
val[0] = i; val[1] = 0;
- val[2] = (pducker->mask[i/15]>>(i&15))&0x1; m->Ctrl(MIXER_SWITCH, val, 3);
+ val[2] = (pducker->mask[i/16]>>(i&15))&0x1; m->Ctrl(MIXER_SWITCH, val, 3);
}
}
@@ -312,7 +312,7 @@
for(i=0 ;i < pmixer->output_num ;i ++) {
for(j =0 ;j < pmixer->input_num ;j++) {
- val[0] = j; val[1] = i; val[2] = (pmixer->input_mask[i][j/15]>>(j&15))&0x1; m->Ctrl(MIXER_SWITCH, val, 3);
+ val[0] = j; val[1] = i; val[2] = (pmixer->input_mask[i][j/16]>>(j&15))&0x1; m->Ctrl(MIXER_SWITCH, val, 3);
// printf("oich %d %d= %x %x %x\n", i,j, val[0],val[1],val[2]);
val[0] = j; val[1] = i; val[2] = RESSIGNBIT(pmixer->input_gain[i][j]); m->Ctrl(MIXER_GAIN, val, 3);
}
@@ -382,7 +382,6 @@
FB_FLT_TYPE,
FB_STEP,
-
FB_CLEAR,
FB_PANIC,
FB_FLT_DEPTH,
@@ -621,40 +620,41 @@
u32 tg_param_convert::DuckerParamCtrl(IModule* m, void* handle, int &plen)
{
- enum DuckerID {
- DUCKER_BYPASS = 0x1,
- DUCKER_THRESHOLD,
- DUCKER_DEPTH,
- DUCKER_ATTACK,
- DUCKER_HOLD,
- DUCKER_RELEASE,
- DUCKER_SIDE_GAIN,
- DUCKER_SIDE_MUTE,
- };
-
- enum MixerID {
- MIXER_SWITCH = 0x1,
- MIXER_GAIN,
- MIXER_DELAY,
- MIXER_INPUT_MUTE,
- MIXER_OUTPUT_MUTE,
+ enum DuckerWithMixID {
+ DUCKER_BYPASS = 0x1, //val[0]:0-取消bypass,1-使能bypass
+ DUCKER_THRESHOLD,//val[0]:阈值,乘以100,范围:-6000~0
+ DUCKER_DEPTH,//val[0]:深度,乘以100,范围:-7200~0
+ DUCKER_ATTACK,//val[0]:建立时间,范围:1~2000ms
+ DUCKER_HOLD,//val[0]:保持时间,范围:1~10000ms
+ DUCKER_RELEASE,//val[0]:释放时间,范围:1~60000ms
+ DUCKER_SIDE_GAIN,//val[0]:侧链增益,乘以100,范围:-7200~1200
+ DUCKER_SIDE_MUTE,//val[0]:侧链静音,0-取消静音,1-静音
+ DUCKER_SIDE_MIX,//val[0]:侧链混音,0-取消混音,1-混音
};
if(handle == NULL) return 1;
- int i;
+ u16 input_num_channels, output_num_channels;
+ VarState var = VarState::GetInstance();
+ hw_adapter_t* adpater = var.get_hw_adapter();
+ adpater->get_channel_num(&input_num_channels, &output_num_channels);
short val[4];
- ptag_ducker pducker = (ptag_ducker)handle;
+ ptag_ducker pduck = (ptag_ducker)handle;
plen = sizeof(tag_ducker);
- val[0] = RESSIGNBIT(pducker->bypass); m->Ctrl(DUCKER_BYPASS, val, 1);
- val[0] = RESSIGNBIT(pducker->threshold); m->Ctrl(DUCKER_THRESHOLD, val, 1);
- val[0] = RESSIGNBIT(pducker->depth); m->Ctrl(DUCKER_DEPTH, val, 1);
- val[0] = RESSIGNBIT(pducker->attacktime); m->Ctrl(DUCKER_ATTACK, val, 1);
- val[0] = RESSIGNBIT(pducker->holdtime); m->Ctrl(DUCKER_HOLD, val, 1);
- val[0] = RESSIGNBIT(pducker->releasetime); m->Ctrl(DUCKER_RELEASE, val, 1);
- val[0] = RESSIGNBIT(pducker->side_gain); m->Ctrl(DUCKER_SIDE_GAIN, val, 1);
- val[0] = RESSIGNBIT(pducker->mute); m->Ctrl(DUCKER_SIDE_MUTE, val, 1);
+ val[0] = RESSIGNBIT(pduck->bypass); m->Ctrl(DUCKER_BYPASS, val, 1);
+ val[0] = RESSIGNBIT(pduck->threshold); m->Ctrl(DUCKER_THRESHOLD, val, 1);
+ val[0] = RESSIGNBIT(pduck->depth); m->Ctrl(DUCKER_DEPTH, val, 1);
+ val[0] = RESSIGNBIT(pduck->attacktime); m->Ctrl(DUCKER_ATTACK, val, 1);
+ val[0] = RESSIGNBIT(pduck->holdtime); m->Ctrl(DUCKER_HOLD, val, 1);
+ val[0] = RESSIGNBIT(pduck->releasetime); m->Ctrl(DUCKER_RELEASE, val, 1);
+ val[0] = RESSIGNBIT(pduck->side_gain); m->Ctrl(DUCKER_SIDE_GAIN, val, 1);
+ val[0] = RESSIGNBIT(pduck->mute); m->Ctrl(DUCKER_SIDE_MUTE, val, 1);
+
+ for (s16 i =0 ;i < input_num_channels; i++) {
+ val[0] = i;
+ val[1] = (pduck->mask[i/16]>>(i&15))&0x1; m->Ctrl(DUCKER_SIDE_MIX, val, 2);
+ }
return 0;
}
@@ -688,24 +688,16 @@
u32 tg_param_convert::SplParamCtrl(IModule* m, void* handle, int &plen)
{
- enum ContinousSPLID {
- SPL_BYPASS = 0x1,
+ enum ContSplWithMixID {
+ SPLMIX_BYPASS = 0x1, //val[0]:0-取消bypass,1-bypass
SPL_MAX_GAIN,
SPL_MIN_GAIN,
SPL_SENSE_RATIO,
- SPL_UPSPEED,
- SPL_DOWNSPEED,
+ SPL_SPEED,
SPL_TRIM,
SPL_THR,
SPL_DISTANCE,
- };
-
- enum MixerID {
- MIXER_SWITCH = 0x1,
- MIXER_GAIN,
- MIXER_DELAY,
- MIXER_INPUT_MUTE,
- MIXER_OUTPUT_MUTE,
+ SPL_MIX,
};
if(handle == NULL) return 1;
@@ -713,7 +705,6 @@
u16 input_num_channels, output_num_channels ;
VarState var = VarState::GetInstance();
hw_adapter_t* adpater = var.get_hw_adapter();
-
adpater->get_channel_num(&input_num_channels, &output_num_channels);
int i ,j;
@@ -725,15 +716,14 @@
val[0] = RESSIGNBIT(pspl->maxgain); m->Ctrl(SPL_MAX_GAIN, val, 1);
val[0] = RESSIGNBIT(pspl->mingain); m->Ctrl(SPL_MIN_GAIN, val, 1);
val[0] = RESSIGNBIT(pspl->sense_ratio); m->Ctrl(SPL_SENSE_RATIO, val, 1);
- val[0] = RESSIGNBIT(pspl->speed); m->Ctrl(SPL_UPSPEED, val, 1);
- val[0] = RESSIGNBIT(pspl->speed); m->Ctrl(SPL_DOWNSPEED, val, 1);
+ val[0] = RESSIGNBIT(pspl->speed); m->Ctrl(SPL_SPEED, val, 1);
val[0] = RESSIGNBIT(pspl->trim); m->Ctrl(SPL_TRIM, val, 1);
val[0] = RESSIGNBIT(pspl->noise_thr); m->Ctrl(SPL_THR, val, 1);
val[0] = RESSIGNBIT(pspl->distance); m->Ctrl(SPL_DISTANCE, val, 1);
for (i =0 ;i < input_num_channels; i++) {
- val[0] = i; val[1] = 0;
- val[2] = (pspl->mask[i/15]>>(i&15))&0x1 ; m->Ctrl(MIXER_SWITCH, val, 3);
+ val[0] = i;
+ val[1] = (pspl->mask[i/16]>>(i&15))&0x1 ; m->Ctrl(SPL_MIX, val, 2);
}
return 0;
diff --git a/src/tg/tg_scene.cpp b/src/tg/tg_scene.cpp
index a6021bb..56f000a 100644
--- a/src/tg/tg_scene.cpp
+++ b/src/tg/tg_scene.cpp
@@ -164,9 +164,9 @@
sprintf(outport_str, "1-%d", output_num);
__MADD(295,PROC_OUTPUT,outport_str,outport_str,1, 1, ¶meters.output,0, ModuleInterfaceType::SOFT_MODULE);
//sysctrl
- __MADD(296,PROC_SYSCTL,outport_str,outport_str,1, 1, ¶meters.sysctl,0, ModuleInterfaceType::PHY_OUTPUT);
+ __MADD(296,PROC_SYSCTL,outport_str,outport_str,1, 1, ¶meters.sysctl,0, ModuleInterfaceType::SOFT_MODULE);
//meter
- __MADD(297,PROC_METER,outport_str,"",1, 1, NULL, 0, ModuleInterfaceType::SOFT_MODULE);
+ __MADD(297,PROC_METER,outport_str,outport_str,1, 1, NULL, 0, ModuleInterfaceType::PHY_OUTPUT);
};
@@ -190,7 +190,7 @@
pInput->input[j].gain =0;
pInput->input[j].mute = 0;
pInput->input[j].type=0;
- pInput->input[j].phase =0 ;
+ pInput->input[j].phase =0;
pInput->input[j].mingain = -8000;
pInput->input[j].maxgain = 1200;
}
diff --git a/src/tg/tg_user_ctrl.cpp b/src/tg/tg_user_ctrl.cpp
index 96497a4..f63dbb7 100644
--- a/src/tg/tg_user_ctrl.cpp
+++ b/src/tg/tg_user_ctrl.cpp
@@ -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,
@@ -375,7 +358,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;
+}
diff --git a/src/tg/tg_user_ctrl.h b/src/tg/tg_user_ctrl.h
index 76ada01..1f225c2 100644
--- a/src/tg/tg_user_ctrl.h
+++ b/src/tg/tg_user_ctrl.h
@@ -26,6 +26,7 @@
static u32 Echo_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num);
static u32 General_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num);
static u32 Fir_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num);
+ static u32 Spl_Ctrl(IModule* m, u32 pID, s16* val_c, u32 num);
};
diff --git a/src/tob.cpp b/src/tob.cpp
index 8d34e61..ceee284 100644
--- a/src/tob.cpp
+++ b/src/tob.cpp
@@ -200,7 +200,7 @@
return ErrStatus::SUCCESS;
}
#define DEBUG 0
-#if 1//DEBUG
+#if DEBUG
const s8* type_string[ModuleType::PROC_COUNT] = {
"none"
,"input"
@@ -271,7 +271,8 @@
if (pmod->mDsp != dsp_index) continue;
#if DEBUG
- //if (PROC_FIR == pmod->mType)
+// if (1+320 == pmod->mID)
+// if (PROC_FEEDBACK == pmod->mType)
printf("Module ID %d type %d %s rxnum %d txnum %d tag %d. \n",pmod->mID ,pmod->mType, type_string[pmod->mType], pmod->mRxNum,pmod->mTxNum,pmod->mTag);
#endif
@@ -319,7 +320,7 @@
if(nPhyOutput[mPhyID[i].mIntType] < mPhyID[i].mPhyID)
nPhyOutput[mPhyID[i].mIntType] = mPhyID[i].mPhyID;
- //pcm = frames->AllocFrame(); // It is not necessary to be compatible with the AXE1208 series here, because the TOP architecture is different.
+ pcm = frames->AllocFrame(); // It is not necessary to be compatible with the AXE1208 series here, because the TOP architecture is different.
m->SetOutputChannelDataPtr(i, pcm);
SetTxChannelPtr(static_cast<IntDataType>(mPhyID[i].mIntType), mPhyID[i].mPhyID-1, pcm->Data());
// printf("mID %d,bid %d\n", pmod->mID, mPhyID[i].mPhyID-1);
@@ -399,7 +400,7 @@
{
if(processed) {
for (auto iter = mList.begin(); iter < mList.end(); iter++) {
-// if(((*iter)->GetModuleType() >= 6) && ((*iter)->GetModuleType() <= 6)) {
+// if(((*iter)->GetModuleType() >= PROC_FEEDBACK) && ((*iter)->GetModuleType() <= PROC_FEEDBACK)) {
// printf("%d ", (*iter)->GetModuleID());
(*iter)->Proc();
// }
@@ -453,6 +454,11 @@
}
IModule* m = mList[mModuleIndex[mID]-1];
+// if (m->GetModuleType() == PROC_CONTINUNOUS_SPL && pID == 9) {
+// mID += 320;
+// m = mList[mModuleIndex[mID]-1];
+// }
+
if( m != NULL) {
// m->Ctrl(pID, val, num);
paramset->GetCtrlEntry(m->GetModuleType())(m, pID, (s16*)val, num);
--
Gitblit v1.9.3