📄 soundbase.h
字号:
/**///////////////////////////////////////////////////////////////////////
// SoundBase.h: interface for the CSoundBase class. //
/**///////////////////////////////////////////////////////////////////////
//AUTHOR: //
// norains //
//VERSION: //
// 1.0.0 //
//DATE: //
// Wednesday 10-January -2007 //
//Environment: //
// EVC4.0 + Standard SDK //
/**///////////////////////////////////////////////////////////////////////
#ifndef SOUNDBASE_H
#define SOUNDBASE_H
#include "mmsystem.h"
//------------------------------------------------------------------------------
//Macro define
#define MAX_SAVEPATH_LENGTH 500 //The length of saved path
//------------------------------------------------------------------------------
//Value type
enum ChannelType
{
CHANNEL_SINGLE,
CHANNEL_DOUBLE
};
enum SamplesPerSecType
{
SAMPLES_11025,
SAMPLES_22050,
SAMPLES_44100
};
enum BitsPerSampleType
{
BITS_8,
BITS_16
};
//---------------------------------------------------------------------------
//Struct
//Wave format data
typedef struct
{
ChannelType channel;
SamplesPerSecType samples;
BitsPerSampleType bits;
}WAVEFORMAT_SETTING,*PWAVEFORMAT_SETTING;
//------------------------------------------------------------------------------
class CSoundBase
{
public:
void StopPlaying();
void StopRecording();
void StopAll();
static CSoundBase* GetInstance();
BOOL Play(const TCHAR *pszPath = NULL);
BOOL Record(TCHAR *pszPath,const PWAVEFORMAT_SETTING pWaveFormat = NULL);
virtual ~CSoundBase();
protected:
void OnWIM_OPEN(WPARAM wParam, LPARAM lParam);
void OnWIM_DATA(WPARAM wParam, LPARAM lParam);
void OnWIM_CLOSE(WPARAM wParam, LPARAM lParam);
BOOL WriteWaveFileHeader(TCHAR *pszFilename, const PWAVEFORMATEX pWFX, DWORD dwBufferSize,BOOL bCover);
static void CALLBACK WaveInProc(HWAVEIN hWi,UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
CSoundBase();
void SetRecordWaveFormat(const PWAVEFORMAT_SETTING pWaveFormat);
static CSoundBase *m_pInstance;
WAVEFORMATEX m_WaveFormatEx;
BOOL m_bRecording;
HANDLE m_hSaveFile;
HWAVEIN m_hWaveIn;
PBYTE m_pBuffer1;
PBYTE m_pBuffer2;
PWAVEHDR m_pWaveHdr1;
PWAVEHDR m_pWaveHdr2;
DWORD m_dwDataLength; //The length of the data
TCHAR m_szSavePath[MAX_SAVEPATH_LENGTH]; //The path to save
};
#endif // SOUNDBASE_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -