wavebuffer.h

来自「一个语音聊天软件」· C头文件 代码 · 共 72 行

H
72
字号
//-------------------------------------------------------------------------------------
// 
//  文件名: WaveBuffer.cpp
// 
//	创建人: noise 
// 
//  日  期: 2007-5-30
//
//	描  述: Define CWaveBuffer, capsulate WAVEHDR and buf.
//
//	版  本: 1.0
// 
//-------------------------------------------------------------------------------------

#if !defined(AFX_WAVEBUFFER_H__09B3A33B_4DDA_4E35_9BFA_D0A910992DF0__INCLUDED_)
#define AFX_WAVEBUFFER_H__09B3A33B_4DDA_4E35_9BFA_D0A910992DF0__INCLUDED_

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

#include "Mmsystem.h"

const int BUFNUM = 15;

class CWaveBuffer  
{
public:
	enum Wtype {WAVEIN, WAVEOUT};
	enum {BUFSIZE = 1102}; //11025*0.1m

	CWaveBuffer(HWAVEIN hwi);
	CWaveBuffer(HWAVEOUT hwo);
	CWaveBuffer(HWAVEOUT hwo, LPSTR p_buf, DWORD dwNum);

	virtual ~CWaveBuffer();

	MMRESULT Prepare();

	MMRESULT AddToWaveInBuffer();

	void ResetWaveInBuffer();
	void ResetWaveOutBuffer();
	void UseWaveOutBuffer(LPSTR p_buf, DWORD dwNum);

	MMRESULT Play();
	
private:
	HANDLE m_hwio;
	Wtype m_iotype;
	
	WAVEHDR m_waveh;
	LPSTR m_buffer;
};

//////////////////////////////////////////////////////////////////
// 11025Khz
// 8bits/s = 1Byte/s
// So, the buffer you need is T*11025 Bytes
//////////////////////////////////////////////////////////////////
class CWaveFormat
{
public:
	WAVEFORMATEX m_wfx;
	
public:
	CWaveFormat();
	virtual ~CWaveFormat();
};

#endif // !defined(AFX_WAVEBUFFER_H__09B3A33B_4DDA_4E35_9BFA_D0A910992DF0__INCLUDED_)

⌨️ 快捷键说明

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