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

📄 ccomm.h

📁 这是G.723和G.729的音频编解码的源代码
💻 H
字号:

#ifndef __CCOMM_H__
#define __CCOMM_H__

#define USECOMM      // yes, we need the COMM API

#define MAXBLOCK        256
#define READ_BUFFER_SIZE	1024

#define ASCII_XON       0x11
#define ASCII_XOFF      0x13

class CComm;
DWORD FAR PASCAL CommWatchProc(CComm* pCommObject);
typedef void(* CommCallBackFunc)(BYTE* pContent,UINT uSize,LPVOID lpUserInstance);

class CComm
{
	friend DWORD FAR PASCAL CommWatchProc(CComm* pCommObject);
	friend DWORD FAR PASCAL WriteThreadProc(CComm* pCommObject);
	friend DWORD FAR PASCAL ReadThreadProc(CComm* pCommObject);

protected:
	HANDLE m_hComm;
	OVERLAPPED m_WriteOS;
	OVERLAPPED m_ReadOS;
	int m_nPort;
	BOOL m_bConnected;
	BOOL m_bDisplayError;
	int m_nBaudRate;
	int m_nInputBufferSize;
	int m_nOutputBufferSize;
	DWORD m_dwThreadID;
	HANDLE m_hThread;
	CommCallBackFunc m_pCallBackFunc;
	LPVOID m_lpUserInstance;
	
	HANDLE m_hWriteThread;
	DWORD m_dwWriteThreadID;

	HANDLE m_hReadThread;
	DWORD m_dwReadThreadID;
	
	HANDLE m_hQuitEvent;
	HANDLE m_hWriteEvent;
	HANDLE m_hCTSEvent;
	HANDLE m_hReadEvent;

	UINT m_uMiniBlockSize;
	UINT m_uBlockSize;
	CMultiplex * m_pMultiplex;
	CDemultiplex * m_pDemultiplex;
	CByteBuffer m_InputBuffer;

public:
	CComm(CommCallBackFunc pCallBackFunc=NULL,
    	  CMultiplex * pMultiplex=NULL,
  		  CDemultiplex * pDemultiplex=NULL,
		  int nBaudRate=9600,
		  int nInputBufferSize=4096,
		  int nOutputBufferSize=4096,
		  BOOL bDisplayError=FALSE);
	virtual ~CComm(){CloseConnection();}

	BOOL WriteCommBlock(BYTE* lpByte , DWORD dwBytesToWrite);
	BOOL OpenComm(int nPortNumber=2,LPVOID lpUserInstance=NULL);
	BOOL SetRate(int nBaudRate);
	BOOL CloseConnection();

private:
	BOOL CreateTTYInfo();
	int ReadCommBlock(LPSTR lpszBlock, int nMaxLength );
	BOOL OpenConnection();
	BOOL SetupConnection();
};

inline BOOL CComm::SetRate(int nBaudRate)
{
	if(m_bConnected)
		return FALSE;
	m_nBaudRate=nBaudRate;
	return TRUE;
}
#endif//__CCOMM_H__

⌨️ 快捷键说明

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