#ifndef CSoundBufferPCM_h
#define CSoundBufferPCM_h 

/*!
 	@file
 	@brief	ＰＣＭバッファ
 */
#include"../../../Setup/CompileMode.h"
#include"CSoundBuffer.h"

#include<boost/smart_ptr.hpp>

namespace Maid
{

	class ISoundBufferPCM : public ISoundBuffer
	{
	public:
		virtual ~ISoundBufferPCM(){}	//!<	デストラクタ

		virtual unt GetPosition () const;
		virtual void SetPosition ( unt pos );
		virtual void SetLoopPosition ( unt pos );

		virtual int	GetSamplePerSec()const=0;
		virtual int	GetBitPerSample()const=0;
		virtual int	GetChannel()const=0;

		int GetBytesPerSec()const;

		virtual int		GetCurrentSample() const=0;
				float	GetNowRatio() const;


	protected:
		virtual unt GetBytePosition () const=0;
		virtual void SetBytePosition ( unt pos )=0;
		virtual void SetByteLoopPosition ( unt pos )=0;
	};

	typedef boost::shared_ptr<ISoundBufferPCM> SPSOUNDBUFFERPCM;

}
#endif
