/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NSAMPLEFORMAT__
#define	__NSAMPLEFORMAT__


		#include "ntypes.h"


namespace GS {

/*!
	@short	Sample format.
	@author	Emmanuel Julien (ejulien@nworks.fr)
*/
struct	SampleFormat
{
enum Format
{
	Format_PCM				=	0,
#if	__PLATFORM_NINTENDO_WII__
	Format_Wii_ADPCM
#endif
};

		Format			format;
		uint			channels;

		uint			frequency;
		uchar			resolution;

		/// Get the PCM data memory footprint a given number of samples in this format.
		uint			GetPCMDataSize(uint sample_count) const
		{	return (sample_count * channels * resolution) / 8;	}

		SampleFormat(Format _format = Format_PCM, uint _channels = 2, uint _frequency = 48000, uchar _bit_per_sample = 16) : format(_format), channels(_channels), frequency(_frequency), resolution(_bit_per_sample) {}
};

} // GS


#endif	// __NSAMPLEFORMAT__
