
#ifndef _OggFile_H_
#define _OggFile_H_

#include "SoundFile.h"

struct OggVorbis_File;

/////////////////////////////////////////////////////////////////////////////////////////
//

class COGGFile : public ISoundFile
{
	FILE *			m_fp;
	OggVorbis_File*	m_pVF;
	char *			m_pszFilename;

	DWORD			m_dwAvgBytesPerSec;

public:
	COGGFile();
	COGGFile( const char * );
	~COGGFile();

	void	Create( const char * );
	void	Destroy();
	WORD	GetBitsPerSample();
	DWORD	GetSamplePerSec();
	WORD	GetChannelCount();
	DWORD	GetSize();
	void	Reset();
	size_t	Read( void * pBuf, size_t readSize );
	size_t	ReadWhole( void * pBuf );

	DWORD	SeekWaveData( DWORD offset, eSeekPos );

	double	GetTotalTime();

	const char *	GetFilename();
};

/////////////////////////////////////////////////////////////////////////////////////////

#endif