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

📄 dsp_sdk_.txt

📁 实现了精简的FFT语音压缩 采取了一种新的算法有一定的参考价值
💻 TXT
📖 第 1 页 / 共 3 页
字号:



                                  DSPACT类定义
class AFX_EXT_CLASS DSPACT  
{
public:
	DSPACT(){};
	virtual ~DSPACT(){};
	virtual char *	GetClassID()=0;
	virtual bool	IsKindOf(char* lpClassName)=0;

protected:
	friend	struct	DSP::_DSPPACKET;
	virtual void	Init(BYTE byType){};
	virtual BYTE	GetClassLevel(){ return 0;	};
	virtual bool	AttrSectRecv(BYTE byClassLevels,BYTE byAttrNo,const char* const lpBuff,DWORD dwLen,bool bLast);
	virtual bool	AttrSectSend(BYTE byClassLevels,BYTE byAttrNo,char** const lpBuff,DWORD& dwLen,bool& bContinue);
	virtual bool	Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp);
	virtual bool	UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen);
	virtual bool	Compress(char** const lpBuff,DWORD& dwLen);
	virtual bool	UnCompress(char** const lpBuff,DWORD dwLen,char* lpUnBuff,WORD& wUnLen,bool bStart);
};
                              
                                  

                            DSP::_DSPPACKET结构说明
    类型:构造函数
    定义:_DSPPACKET(bool& bRun)
    描述:创建_DSPPACKET实例时,必需传递一个bool型变量,通过这个布尔变量,可以随时终止序列化和反序列化过程。
    
    
    类型:属性
    定义:bool&		bKeepRun
    描述:是否继续运行,通过这个布尔变量,可以随时中止序列化或反序列化过程
    
    
    类型:属性
    定义:timeval   Timeout
    描述:如果序列化的数据流需要通过Socket来传送,或者反序列化的数据流来自Socket,则该属性有效。
         该属性设定了接收或传送时的Socket超时时间,如果Socket超时,则序列化或反序列化失败。
        
        
    类型:属性
    定义:DWORD     dwData
    描述:在反序列化成功后,该变量内保存了RegisterAct()方法注册类时传递的dwData参数的值。
    
    
    类型:方法
    定义:void Empty()
    参数:无
    描述:清空_DSPPACKET结构,为下一次反序列化作准备。序列化对象时不需要调用该方法。连续进行反序列化时不需要在每次反序列化前都调用该方法。
    
    
    类型:方法
    定义:inline void SetParameter(BOOL bCompress=FALSE,BOOL bVerifyCRC=TRUE,BYTE byInitType=0)
    参数:bCompress --  是否压缩数据,如果值为TRUE,只有重载DSPACT::Compress()方法才有效。
         bVerifyCRC--  是否进行CRC校验。不进行CRC校验时,执行速度会稍快一些。
         byInitType--  对象反序列化完成后,调用对象的Init()方法时传递的参数。
                        取值为[0..15],0表示在反序列化完成后,不调用对象的Init()方法。
    描述:设置序列化时的参数,一次设置会一直有效,直到重新设置。
    
    
    类型:方法
    定义:inline _DSPERROR* GetLastError()
    参数:无
    描述:得到最近的一次错误描述
    
    
    类型:方法
    定义:DSPACT* ReadObject(SOCKET sock,DSPACT* pAct=NULL)
    参数:sock  --  接收序列化数据的SOCKET
         pAct  --  读取一个指定的对象,并将数据读到该对象中。如果值为NULL,表示反序列化为序列化时的对象。
    返回:当pAct==NULL时,如果反序列化成功,则返回一个DSPACT的派生类对象的指针。失败时,返回NULL。
         当pAct!=NULL时,如果读取的数据反序列化时不是指定的类的对象或反序列化过程失败,则返回NULL。
    描述:调用该方法,从SOCKET中读取已序列化的数据,然后反序列化数据流成对象。
    注意:反序列化成功时,返回一个对象的指针,该对象在堆中被创建,返回后DSP并没有再保存该对象的指针,因此,必需注意在反序列化成功时,应该接收该指针,在对象使用完后,必需使用delete释放对象的资源。
    
        
    类型:方法
    定义:DSPACT* ReadObject(ifstream& ifs,DSPACT* pAct=NULL)
    参数:ifs   --  保存有序列化数据的ifstream对象
         pAct  --  读取一个指定的对象,并将数据读到该对象中。如果值为NULL,表示反序列化为序列化时的对象。
    返回:当pAct==NULL时,如果反序列化成功,则返回一个DSPACT的派生类对象的指针。失败时,返回NULL。
         当pAct!=NULL时,如果读取的数据反序列化时不是指定的类的对象,则返回NULL。
    描述:调用该方法,将从文件输入流中读取已序列化的数据,然后反序列化数据流成对象。
    注意:反序列化成功时,返回一个对象的指针,该对象在堆中被创建,返回后DSP并没有再保存该对象的指针,因此,必需注意在反序列化成功时,应该接收该指针,在对象使用完后,必需使用delete释放对象的资源。
    
        
    类型:方法
    定义:bool WriteObject(SOCKET sock,DSPACT* const pAct)
    参数:sock  --  传送序列化数据的SOCKET
         pAct  --  需要序列化的对象的指针,值不可以为NULL。
    返回:true  --  序列化并且传送序列化数据成功;
          false --  序列化过程或传送序列化数据时发生了错误,调用GetLastError()可以得到错误描述。
    描述:调用该方法,将序列化指定的对象,然后通过SOCKET传送序列化后的数据,序列化和传送是一个阻塞的过程。
    
    
    类型:方法
    定义:bool WriteObject(ofstream& ofs,DSPACT* const pAct)
    参数:ofs   --  记录序列化数据的ofstream对象
         pAct  --  需要序列化的对象的指针,值不可以为NULL。
    返回:true  --  序列化并且传送序列化数据成功;
          false --  序列化过程或传送序列化数据时发生了错误,调用GetLastError()可以得到错误描述。
    描述:调用该方法,将序列化指定对象后的数据记录在ofstream对象所打开的文件中。
    
    
    类型:方法
    定义:bool Read(char& attr)
    参数:attr  --  一个字符型变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的char型变量中
    
    
    类型:方法
    定义:bool Read(BYTE& attr)
    参数:attr  --  一个无符号字符型变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的BYTE型变量中
    
    
    类型:方法
    定义:bool Read(short& attr)
    参数:attr  --  一个双字节有符号变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的short型变量中
    
    
    类型:方法
    定义:bool Read(WORD& attr)
    参数:attr  --  一个双字节无符号型变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的WORD型变量中
    
    
    类型:方法
    定义:bool Read(int& attr)
    参数:attr  --  一个4字节有符号变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的int型变量中
    
    
    类型:方法
    定义:bool Read(DWORD& attr)
    参数:attr  --  一个4字节无符号变量。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的DWORD型变量中
    
    
    类型:方法
    定义:bool Read(bool& attr)
    参数:attr  --  一个bool型变量
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的布尔型变量中
    
    
    类型:方法
    定义:bool Read(std::string& attr,DWORD nLen)
    参数:attr  --  一个string型字符串变量。
         nLen  --  反序列化的属性的长度,这个长度值是UnSerialize()方法的参数。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的字符串变量中
 
    
    类型:方法(只有在Window系统下有效)
    定义:bool Read(CString& attr,DWORD nLen)
    参数:attr  --  一个CString型变量。
         nLen  --  反序列化的属性的长度,这个长度值是UnSerialize()方法的参数。
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的字符串变量中

    
    类型:方法
    定义:bool Read(char* const pAttr,DWORD nLen)
    参数:attr  --  一个指向字符型缓冲区指针
         nLen  --  缓冲区的长度,这个长度是缓冲的实际长度,不是UnSerialize()方法的参数
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的二进制流缓冲区变量中
    
    
    类型:方法
    定义:bool Read(DSPACT& attr)
    参数:attr  --  一个基类为DSPACT的类的对象
    返回:true  --  反序列化属性值已经完成,属性的值已经被记录到变量中。
         false --  反序列化属性值还没有完成,属性的值不可用。
    描述:反序列化数据到对象中的一个DSPACT派生类的变量中


    类型:方法
    定义:void Write(int attr)
    参数:attr  --  一个整型的数值型的值
    描述:序列化属性中的整型变量,包括int、DWORD、short、WORD、BYTE、char、BOOL类型的变量
    
    
    类型:方法
    定义:void Write(bool attr)
    参数:attr  --  一个布尔型的数值
    描述:序列化属性中的布尔型的变量
    
    
    类型:方法
    定义:void Write(const std::string& attr)
    参数:attr  --  一个string类型的字符串型变量
    描述:序列化属性中的字符串类型的变量
    
    
    类型:方法(只有在Window系统下有效)
    定义:void Write(const CString& str)
    参数:attr  --  一个CString类型的变量
    描述:序列化属性中的字符串类型的变量
    
    
    类型:方法
    定义:void Write(char* const pAttr,DWORD nLen,bool bLast=true)
    参数:pAttr --  一个指向字符型缓冲区的指针
          nLen  --  缓冲区的长度
          bLast --  是否为普通缓冲区。
                    值为true时,表示为普通缓冲区。
                    值为false时,表示是多段缓冲区;
                    如果缓冲区为多段缓冲区,则缓冲区中的数据在调用对象的AttrSectRecv()方法时填充;
                    如果缓冲区不为普通缓冲区,则当前保存在缓冲区中的数据就是要被序列化的数据。
    描述:序列化属性中的二进制流缓冲区
    
    
    类型:方法
    定义:void Write(DSPACT* const pAttr,BOOL bCompress=FALSE,BOOL bVerifyCRC=TRUE,BYTE byInitType=0)
    参数:pAttr     --  一个指向DSPACT派生类对象的指针
         bCompress --  pAttr所指的对象在序列化时是否压缩
         bVerifyCRC--  pAttr所指的对象在序列化时是否进行CRC校验
         byInitType--  pAttr所指的对象在在反序列化成功后调用对象的Init()方法传递的参数 
    描述:序列化属性中的一个DSPACT派生类的对象 
    

⌨️ 快捷键说明

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