mci_obuf.h

来自「完整的MP3播放器源码」· C头文件 代码 · 共 66 行

H
66
字号
/* mci_obuf.h

   Obuffer implementation for Win32. Written by Jeff Tsay. */

#ifndef MCI_OBUF_H
#define MCI_OBUF_H



#include <windows.h>


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	<mmsystem.h>


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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?