Pedal Point源码发布及说明(5)

类别:VC语言 点击:0 评论:0 推荐:

本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!

/*/////////////////////////////////////////////////////////////////////

  文件:waveRecorder.h

  描述:录音类定义文件

  作者:张友邦

  时间:2004-09-10

  声明:本文件系作者辛苦熬夜的产物,任何人使用本文件请保留本描述文本。

  历史:

/*/////////////////////////////////////////////////////////////////////

#if !defined(_WAVERECORDER_H)
#define _WAVERECORDER_H

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

namespace wa
{
//////////////////////////////////////////////////////////////////////

class waveRecorder
{
protected:
 HWAVEIN hRecord; //音频设备句柄

 //录音回调函数
 static void CALLBACK waveInProc
 (
  HWAVEIN hwi,       //音频设备句柄
  UINT uMsg,         //消息标识
  DWORD dwInstance,  //用户定义数据
  DWORD dwParam1,    //消息参数
  DWORD dwParam2     //消息参数
 );

 static float waveRecorder::constraint(char v);
 static void smooth(char* input, int* output, int length,
  double smoothness = 0.8, int scale = 100);

public:
 waveRecorder();
 waveRecorder(const WAVEFORMATEX& waveFormatConfig);
 waveRecorder(const int& frequency, const int& channels);
 virtual ~waveRecorder();

 WAVEFORMATEX waveFormat; //Wave格式定义
 typedef enum
 {
  E_STATUS_STOPED = 0,
  E_STATUS_STARTED = 1
 } recorderStatus;
 recorderStatus status;     //录音状态
 static float sampleCoef;    //采样系数

 //开始
 virtual void start() throw (std::exception);

 //停止
 virtual void stop() throw (std::exception);
};

//////////////////////////////////////////////////////////////////////
};//namespace wa
#endif

本文地址:http://com.8s8s.com/it/it244.htm