www.pudn.com > VC写的MP3播放器源代码.zip > mci_obuf.h


/* mci_obuf.h 
 
   Obuffer implementation for Win32. Written by Jeff Tsay. */ 
 
#ifndef MCI_OBUF_H 
#define MCI_OBUF_H 
 
 
 
#include  
 
 
static const DWORD OBUFFERSIZE = 2 * 1152; 
 
#define TWO_TIMES   5 
static const DWORD BUFFERSIZE = OBUFFERSIZE << TWO_TIMES; 
#define BIT_SELECT  0x1f 
 
#define SLEEPTIME   256 
#include    "resource.h"       // main symbols 
#include	 
 
 
// 
#pragma comment(linker,"/defaultlib:Winmm.lib") 
 
// MCIbuffer class written by Jeff Tsay 
class MCIbuffer  
{ 
public: 
	static HANDLE m_hEvent; 
	MCIbuffer(){}; 
	MCIbuffer(DWORD number_of_channels); 
	~MCIbuffer(); 
 
  virtual BOOL	InitBuffer(CMpAudioFile* pHdr); 
  virtual void	append(DWORD channel, WORD value); 
  virtual void	write_buffer(int& fd); 
 
#ifdef SEEK_STOP 
  void   clear_buffer(); 
  void   set_stop_flag(); 
#endif 
 
private: 
  DWORD bufferp[2]; 
  DWORD channels; 
  tWAVEFORMATEX *lpwf; 
  LPWAVEHDR* lpwavehdr_arr; 
  HWAVEOUT m_hWaveOut; 
  DWORD buffer_count; 
  DWORD hdr_size; 
  DWORD fillup; 
  DWORD data_size; 
  DWORD user_stop; 
 
  void   wave_swap(); 
 
 
  DWORD m_ct; 
 
}; 
 
 
#endif // MCI_OBUFFER_H