SoundOut.h
上传用户:zjb_0001
上传日期:2007-01-11
资源大小:154k
文件大小:1k
源码类别:

Audio

开发平台:

Visual C++

  1. // SoundOut.h: interface for the CSoundOut class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SOUNDOUT_H__F926DE0E_4F1A_4A8C_B189_5E4D63446A95__INCLUDED_)
  5. #define AFX_SOUNDOUT_H__F926DE0E_4F1A_4A8C_B189_5E4D63446A95__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "soundbase.h"
  10. // CWinThread must be before CSoundBase -> and it's very difficult to debug!
  11. // Trust me!   Thomas.Holme@openmpeg4.org
  12. class CSoundOut : public CWinThread, public CSoundBase
  13. {
  14. // DECLARE_DYNCREATE(CSoundOut)
  15. public:
  16. CSoundOut();
  17. virtual ~CSoundOut();
  18. // pointer to function
  19. void (*GetDataToSoundOut)(CBuffer* buffer, void* Owner);
  20. void* m_pOwner;
  21. virtual void Stop();
  22. virtual bool Start(WAVEFORMATEX* format = NULL);
  23. static void waveOutErrorMsg(MMRESULT result, LPCTSTR addstr);
  24. afx_msg void OnMM_WOM_DONE(UINT parm1, LONG parm2);
  25. DECLARE_MESSAGE_MAP()
  26. protected:
  27. bool m_bPlaying;
  28. HWAVEOUT m_hPlay;
  29. DWORD m_ThreadID;
  30. int m_QueuedBuffers;
  31. BOOL InitInstance();
  32. int AddOutputBufferToQueue(CBuffer* buffer);
  33. };
  34. #endif // !defined(AFX_SOUNDOUT_H__F926DE0E_4F1A_4A8C_B189_5E4D63446A95__INCLUDED_)