/* * CPlainWavFileReaderクラスのインタフェースを記述するためのファイルです。 * Author: AKIYAMA Kouhei * Created: 2002-09-25 */ #ifndef SSLIB2_PLAIN_WAV_FILE_READER_H_INCLUDED #define SSLIB2_PLAIN_WAV_FILE_READER_H_INCLUDED #include "WaveReader.h" namespace sslib2 { /** * WAVファイルを読み込むためのクラスです。 * 圧縮無し(WAVE_FORMAT_PCM)のファイルしか読めません。 */ class CPlainWavFileReader : public CWaveReader { private: HANDLE m_hFile; DWORD m_topPtr; DWORD m_totalSize; DWORD m_remainSize; PCMWAVEFORMAT m_pcmwf; public: CPlainWavFileReader(); virtual ~CPlainWavFileReader(); bool Open(const char *filename); bool Open(HANDLE fileHandle, const PCMWAVEFORMAT *pcmwf, DWORD dataOffset, DWORD dataSize); virtual void Close(void); virtual bool IsOpen(void) const; virtual bool Read(void *dst, unsigned long size, unsigned long *read); virtual bool Seek(unsigned long sample); virtual unsigned long Tell(void) const; virtual bool IsTerminated(void) const; virtual PCMWAVEFORMAT GetFormat(void) const; virtual unsigned long GetTotal(void) const; virtual unsigned long GetLoopIn(void) const; virtual unsigned long GetLoopOut(void) const; virtual int GetLoopCount(void) const; virtual bool GetStreamFlag(void) const; }; } #endif