⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hgf.cpp

📁 实现了精简的FFT语音压缩 采取了一种新的算法有一定的参考价值
💻 CPP
字号:
// HGF.cpp: implementation of the HGF class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HGF.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

HGF::HGF()
{

}

HGF::~HGF()
{

}

bool HGF::Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp)
{
	if(byClassLevels>1)
		return DSPACT::Serialize(byClassLevels-1,byAttrNo,dsp);
	else
	{
		switch(byAttrNo)
		{
			case 1:						//序列化一个BYTE型变量
				dsp.Write(this->m_byValue);
				return false;
			case 2:						//序列化一个short型变量
				dsp.Write(this->m_sValue);
				return false;
			case 3:						//序列化一个WORD型变量
				dsp.Write(this->m_wValue);
				return false;
			case 4:						//序列化一个结构
				dsp.Write((char*)&this->m_hCVB,sizeof(struct HGF_CVB),true);
				return false;
			case 5:						//序列化一个内含指针的复杂结构,先序列化非指针变量部分
				dsp.Write((char*)&this->m_hCOMB,2);
				return false;
			case 6:						//序列化复杂结构中的指针变量string
				dsp.Write(this->m_hCOMB.strDetail);
				return false;
			case 7:						//序列化复杂结构中的指针变量CString
				dsp.Write((LPSTR)(LPCTSTR)this->m_hCOMB.strApp,this->m_hCOMB.strApp.GetLength());
		}
	}

	return true;
}

bool HGF::UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen)
{
	//反序列化对象
	if(byClassLevels>1)
		return DSPACT::UnSerialize(byClassLevels-1,byAttrNo,dsp,dwLen);
	else
	{
		switch(byAttrNo)
		{
			case 1:						//反序列化一个BYTE类型变量
				dsp.Read(this->m_byValue);
				return false;
			case 2:						//反序列化一个short类型变量
				dsp.Read(this->m_sValue);
				return false;
			case 3:						//反序列化一个WORD类型变量
				dsp.Read(this->m_wValue);
				return false;
			case 4:						//反序列化一个结构
				dsp.Read((char*)&this->m_hCVB,dwLen);
				return false;
			case 5:						//反序列化一个内含指针的复杂结构,先反序列化非指针变量部分
				dsp.Read((char*)&this->m_hCOMB,dwLen);
				return false;
			case 6:						//反序列化复杂结构中的指针变量string
				dsp.Read(this->m_hCOMB.strDetail,dwLen);
				return false;
			case 7:						//反序列化复杂结构中的指针变量CString
				if(this->m_hCOMB.strApp.IsEmpty())
				{
					//如果对象还没有被初始化
					char *lp	=this->m_hCOMB.strApp.GetBuffer(dwLen);
					dsp.Read(lp,dwLen);
				}
				else
				{
					//如果对象已经被初始化
					this->m_hCOMB.strApp.ReleaseBuffer();
				}
		}
	}

	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -