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

📄 interfacetoboard.h

📁 这是G.723和G.729的音频编解码的源代码
💻 H
字号:
// InterfaceToBoard.h: interface for the CInterfaceToBoard class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_)
#define AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxmt.h>
#include <conio.h>

#define INTERRUPT_NUMBER	10

#define READ_PORT			0x3b01
#define WRITE_PORT          0x3b01

#define CONTROL_PORT        0x3b00
#define STATE_PORT          0x3b00
#define RATE_PORT           0x3b02

#define RATE_RESET          0x1
#define RATE_16K            0x0
#define RATE_32K            0x2
#define RATE_64K            0x4
#define DEFAULT_RATE        RATE_32K

#define READ_MASK           0x4
#define WRITE_MASK          0x2

#define START_COMMAND       0x1
#define RESET_COMMAND       0x0

#define READ_BLOCK_LENGTH   1024
#define WRITE_BLOCK_LENGTH  1024

#define WATCH_THREAD_POLL_INTERVAL 5 //ms

class CInterfaceToBoard;

class CInterfaceToBoard
{
	friend UINT ReadThreadProc(LPVOID pParam);
	friend UINT WriteThreadProc(LPVOID pParam);
	friend UINT WatchThreadProc(LPVOID pParam);

private:
	BOOL m_bBegin;

	CWinThread * m_pWatchThread;
	CWinThread * m_pWriteThread;
	CWinThread * m_pReadThread;	

	CEvent m_ReadEvent;
	CEvent m_WriteEvent;

	CEvent m_RequestWatchQuitEvent;
	CEvent m_WatchQuitEvent;

	CEvent m_RequestReadQuitEvent;	
	CEvent m_ReadQuitEvent;

	CEvent m_RequestWriteQuitEvent;	
	CEvent m_WriteQuitEvent;	

	void ResetBoard()
	{
		_outp(CONTROL_PORT,RESET_COMMAND);
		_outp(RATE_PORT,RATE_RESET);
		Sleep(500);
	}

	void StartBoard(DWORD dwRate)
	{
		_outp(CONTROL_PORT,START_COMMAND);
		_outp(RATE_PORT,dwRate);
		Sleep(500);
	}

	void BeginBoard(DWORD dwRate);	
	BOOL BeginThread();

	void EndThread();
	void EndBoard();

	void ReadThreadFunc();
	void WriteThreadFunc();
	void WatchThreadFunc();

	void ReadBlock();
	void WriteBlock();

protected:
	virtual int Input(BYTE * pbyBuffer,int nBufferLength);
	virtual void Output(BYTE * pbyBlock,int nBlockLength);

public:
	CInterfaceToBoard();
	virtual ~CInterfaceToBoard();
	
	BOOL Begin(DWORD dwRate=DEFAULT_RATE);
	void End();	
};

#endif // !defined(AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_)

⌨️ 快捷键说明

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