www.pudn.com > AudioWave.rar > AudioDlg.h


// AudioDlg.h : header file 
// 
//{{AFX_INCLUDES() 
#include "mci.h" 
#include "WaveBase.h" 
#include "WaveProcess.h" 
#include "Sound.h" 
//}}AFX_INCLUDES 
 
#if !defined(AFX_AUDIODLG_H__9C7A1F59_C609_49DA_BB3B_30F993EEDC44__INCLUDED_) 
#define AFX_AUDIODLG_H__9C7A1F59_C609_49DA_BB3B_30F993EEDC44__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
///////////////////////////////////////////////////////////////////////////// 
// CAudioDlg dialog 
 
class CAudioDlg : public CDialog 
{ 
// Construction 
public: 
	DWORD m_dwSizeSound;					//声音采样点的数量 
	char *m_pcSoundData;					//8bit采样的声音数据 
	int m_nSamplesPerSec;					//每秒采样点数 
	WORD m_wBitsPerSample;					//采样位数 
	float *m_pfSoundData;					//采样的声音浮点数据 
	float *m_pfRecData;						//采样的声音浮点数据 
 
	short m_shEmendation;					//校正 
	BOOL m_bSoundStart; 
 
	CWaveBase m_WaveBase; 
	DWORD m_dwOffSet;						//起始音频数据 
	DWORD m_dwOffSetBak;					//起始音频数据备份 
	int m_nViewWidth;						//视区宽度 
	int m_nViewHeight;						//视区高度 
	CRect m_ClientRect; 
	BOOL m_bPlaying; 
	CPen m_PenAxis; 
	CPen m_PenWave[6]; 
	int m_nViewType;						//判断画图类型 
	CString m_strOriAudioFile;				//原始声音文件名 
	CString m_strResAudioFile;				//结果声音文件名 
					 
	double *m_pdReFFT;						//信号FFT实部 
	double *m_pdImFFT;						//信号FFT虚部 
	float  *m_pfDCT;						//信号DCT系数 
	int m_nPower;							//FFT处理信号长度 
	int m_nListCount;						//列表计数 
	int m_nTestCount;						//测试计数 
	float m_fMusicalScale[84];				//音阶 
 
	void InitMci();							//初始化Mci 
	CAudioDlg(CWnd* pParent = NULL);		// standard constructor 
	long ConvertOffsetToTime(DWORD dwOffSet); 
	void DrawWave(CPen *pPenWaveColor); 
	void DrawWave8bit(CPen *pPenWaveColor); 
	void DrawWaveFFT_Energy(); 
	void DrawWaveDCT(); 
 
	void DrawSimulate(float *pfSimulate, CPen *pPenWaveColor); 
 
	char ChangeFormat(char t);				//转化格式 
	char RestrictToChar(float t);			//限制声音数据范围char 
	short RestrictToShort(float t);			//限制声音数据范围short 
	DWORD ConvertTimeToOffset(long time); 
	void BrushRect();						//刷新区域 
	void SaveAudioWaveFile();				//保存声音文件 
 
	int m_nFlagReal;						//实时检测标制 
	BOOL m_bTest;							//实时检测标志 
 
	CSound  Sound; 
	void DrawSoundIn(CPen *pPenWaveColor); 
 
	void InitDraw(); 
// Dialog Data 
	//{{AFX_DATA(CAudioDlg) 
	enum { IDD = IDD_AUDIO_DIALOG }; 
	CListBox	m_ListBox_Info; 
	CButton	m_cCheckResult; 
	CStatic	m_cView; 
	CScrollBar	m_cScrollBar; 
	BOOL	m_bCheckColor; 
	BOOL	m_bCheckCycle; 
	CString	m_strEditAllTime; 
	int		m_nEditChannel; 
	int		m_nEditPointPerSec; 
	int		m_nEditPosition; 
	int		m_nEditWholeLength; 
	int		m_nEditZoomX; 
	float	m_fEditZoomY; 
	Cmci	m_cMci; 
	int		m_nEditBit; 
	DWORD	m_dwEditOffSet; 
	BOOL	m_bCheckResult; 
	//}}AFX_DATA 
 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CAudioDlg) 
	public: 
	virtual BOOL DestroyWindow(); 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	HICON m_hIcon; 
 
	// Generated message map functions 
	//{{AFX_MSG(CAudioDlg) 
	virtual BOOL OnInitDialog(); 
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 
	afx_msg void OnPaint(); 
	afx_msg HCURSOR OnQueryDragIcon(); 
	afx_msg void OnFileOpenAudioWave(); 
	afx_msg void OnPlayClickMmcontrolAudio(short FAR* Cancel); 
	afx_msg void OnCheckCycle(); 
	afx_msg void OnStopClickMmcontrolAudio(short FAR* Cancel); 
	afx_msg void OnPrevClickMmcontrolAudio(short FAR* Cancel); 
	afx_msg void OnNextClickMmcontrolAudio(short FAR* Cancel); 
	afx_msg void OnStopGotFocusMmcontrolAudio(); 
	afx_msg void OnPlayGotFocusMmcontrolAudio(); 
	afx_msg void OnDoneMmcontrolAudio(short FAR* NotifyCode); 
	afx_msg void OnChangeEditZoomx(); 
	afx_msg void OnChangeEditZoomy(); 
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); 
	afx_msg void OnChangeEditOffset(); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg void OnFileSaveAudioWave(); 
	afx_msg void OnProcessFft(); 
	afx_msg void OnProcessFftI(); 
	afx_msg void OnOptionChangeFftPower(); 
	afx_msg void OnCheckResult(); 
	afx_msg void OnProcessLowpass(); 
	afx_msg void OnProcessDctiv(); 
	afx_msg void OnProcessIdctiv(); 
	afx_msg void OnSoundIn(); 
	afx_msg void OnSoundInStop(); 
	afx_msg void OnPitchDetector(); 
	afx_msg void OnPitchDetectorVoice(); 
	afx_msg void OnPROCESSHighPASS(); 
	afx_msg void OnSoundEmendation(); 
	afx_msg void OnSoundInSquare(); 
	DECLARE_EVENTSINK_MAP() 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_AUDIODLG_H__9C7A1F59_C609_49DA_BB3B_30F993EEDC44__INCLUDED_)