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 #includestatic 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