#ifndef CSoundDecoderWave_h
#define CSoundDecoderWave_h 


/*!
 	@file
 	@brief	WAVEファイルをＰＣＭに変換するインターフェース
 */

#include"CSoundDecoder.h"
#include"../../../Auxiliary/FileIO/CFileRead.h"

#include"../../../Setup/Win32.h"
#include<mmreg.h>

namespace Maid
{
	class CSoundDecoderWave : public ISoundDecoder
	{
	public:
		CSoundDecoderWave();
		virtual ~CSoundDecoderWave();
		virtual void	Open( const mstring& FileName );
		virtual int		Read( void* pDst, int dwSize );
		virtual void	SetPosition( int Offset, POSITION ePos );
		virtual void	Close();
		virtual int		GetPosition()		const;
		virtual int		GetLength()			const;
		virtual int		GetSamplesPerSec()	const;
		virtual int		GetChannels()		const;
		virtual int		GetBitsPerSamples()	const;

	private:
		CFileRead	m_hFile;

		WAVEFORMATEX	m_WaveFormat;		//!<	読み込んだファイルフォーマット
		int				m_PCMLength;
		int				m_BeginOffset;		//!<	PCMデータの先頭オフセット
	};
}

#endif