From 96cfbbcc47a845cad3f3248c284703eca519650f Mon Sep 17 00:00:00 2001
From: graydon <weidong.gao@cretone.cn>
Date: 星期四, 24 七月 2025 17:36:56 +0800
Subject: [PATCH] 修正

---
 src/tob.cpp |  128 ++----------------------------------------
 1 files changed, 8 insertions(+), 120 deletions(-)

diff --git a/src/tob.cpp b/src/tob.cpp
index 22f4e44..7de4099 100644
--- a/src/tob.cpp
+++ b/src/tob.cpp
@@ -39,7 +39,6 @@
 	frames = NULL;
 	processed = ufalse;
 	mModuleNum =0;
-	mLevelPacketNum =0;
 	mModuleIndex.resize(0);
 }
 
@@ -382,130 +381,19 @@
 	return ErrStatus::SUCCESS;
 }
 
-u32 ToB::GetLevels(Message* handle , MSG* pmsg)
+u32 ToB::GetLevels(s16* buffer)
 {
-	u32 n =0,len =0;
-	s8 buffer[MSG_DATA_LEN];
-	u32 packetNo =0;
+	u32 n =0,size =0;
 
 	if( !processed ) {
 		return 0;
 	}
-//
-//	for (std::vector<IModule*>::iterator iter = mList.begin();
-//		iter != mList.end() ; iter++) {
-//		IModule* m = *iter;
-//
-//		u32 ID = m->GetModuleID();
-//
-//		struct Level* p = (struct Level*)buffer;
-//
-//		n = sizeof(struct Level);
-//		p->mID = ID;
-//
-//		/*graydon-230905: 多通道模块会出现电平数量超出1024,比如32通道32点反馈抑制,
-//		 * ps: 讨论决定多通道模块在界面做数量限制且过多多通道不符合应用需求.
-//		 */
-//		p->num = m->GetLevel((s16*)(buffer + n));
-//		if(p->num == 0) continue;
-//
-//		n += p->num*sizeof(s16);
-//
-//		//过去的电平数量+当前的电平数量是否大于MSG_DATA_LEN
-//		if(len + n > MSG_DATA_LEN) {
-//			pmsg->pktNo = packetNo++;
-//			pmsg->totalPkts = mLevelPacketNum;
-//			pmsg->Enc(MsgType::MSG_LEVEL_GET_RES, 0, len);
-//			handle->Send(pmsg);//入队列
-//			len = 0;
-//		}
-//		memcpy(pmsg->data+len, p , n);
-//		len += n;
-//	}
-//
-//	if(len > 0) {
-//		pmsg->pktNo = packetNo++;
-//		pmsg->totalPkts = mLevelPacketNum;
-//		pmsg->Enc(MsgType::MSG_LEVEL_GET_RES, 0, len);
-//		handle->Send(pmsg);
-//	}
-//
-//	if(packetNo > 0){
-//		mLevelPacketNum = packetNo;
-//	}
-//	return n;
-	return 0;
-}
-
-
-//cpu = time*SAMPLE_RATE/SAMPLE_NUM
-//cpu *1000 -> s32
-//cpu * 100 -> percent.
-u32 ToB::GetModuleCPU(Message* handle , MSG* pmsg)
-{
-//	u32 n =0;
-//	const ufloat period_s = SAMPLE_NUM*1.f/SAMPLE_RATE;
-//	const u32 percent = 100000;
-//	ufloat module_cpu ;
-//	u32* data = (u32*)pmsg->data;
-//
-//	if( !processed ) {
-//		return 0;
-//	}
-//
-//	for (std::vector<IModule*>::iterator iter = mList.begin();
-//		iter != mList.end() ; iter++) {
-//		IModule* m = *iter;
-//		ufloat time = m->GetRuntime();
-//		ModuleType type = (ModuleType)m->GetModuleType();
-//		u32 tag = m->GetModuleTag();
-//		u16 rxNum = m->GetModuleInputNum();
-//		u16 txNum = m->GetModuleOutputNum();
-//		u32 ID = m->GetModuleID();
-//
-//
-//		switch(type) {
-//		case ModuleType::Mixer:
-//		case ModuleType::SupperMatrix:
-//			time = time / rxNum  ;
-//			module_cpu = time / period_s ;
-//			break;
-//		case ModuleType::GEQ:
-//		case ModuleType::EQ:
-//		case ModuleType::NHS:
-//			time = time / (tag * rxNum) ;
-//			module_cpu = time / period_s ;
-//			break;
-//		case ModuleType::SignalGenerator:
-//		case ModuleType::Ducker:
-//		case ModuleType::ContinuitySPL:
-//			time = time / txNum ;
-//			module_cpu = time / period_s ;
-//			break;
-//		case ModuleType::AEC:
-//			module_cpu = time / 0.01f ;//aec 10ms处理一次.
-//			break;
-//		default:
-//			time = time / rxNum ;
-//			module_cpu = time / period_s ;
-//			break;
-//		}
-//		data[n++] = ID;
-//		data[n++] = (u32)(module_cpu* percent);
-//
-//		if(n*sizeof(u32) >= MSG_DATA_LEN) {
-//			pmsg->Enc(MsgType::MSG_MODULE_CPU_RES, 0, MSG_DATA_LEN);
-//			handle->Send(pmsg);
-//			n = 0;
-//		}
-//	}
-//
-//	if(n > 0) {
-//		pmsg->Enc(MsgType::MSG_MODULE_CPU_RES, 0, n*sizeof(u32));
-//		handle->Send(pmsg);
-//	}
-
-	return 0;
+	for (std::vector<IModule*>::iterator iter = mList.begin();
+		iter != mList.end() ; iter++) {
+		size = (*iter)->GetLevel(buffer + n );
+		n += size;
+	}
+	return n;
 }
 
 

--
Gitblit v1.9.3