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


#ifndef	__ISAMPLE__
#define	__ISAMPLE__


		#include "audio/sample_format.h"
		#include "time/ntime.h"


namespace GS {

/*!
	@short	Sample base interface.
	@author Emmanuel Julien (ejulien@nworks.fr)
*/
struct	ISample
{
		/// Return the format identifier (eg. "WAV").
virtual	const char		*GetFormat() = 0;

		/// Get sample format.
virtual	bool			GetSampleFormat(SampleFormat &) const = 0;
		/// Get sample duration.
virtual	Time			GetDuration() const = 0;

virtual ~ISample() {}
};

} // GS


#endif	// __ISAMPLE__
