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


#ifndef	__ISAMPLEFACTORY__
#define	__ISAMPLEFACTORY__


namespace GS {
	struct ISample;

/*
	@short	Sample I/O codec interface.
	@author Emmanuel Julien (ejulien@owloh.com)
*/
struct	ISampleFactory
{
		/// Get the codec name.
virtual	const char	*GetName() = 0;
		/// Load a sample.
virtual	ISample		*Load(const char *path) = 0;

virtual	~ISampleFactory() {}
};

} // GS


#endif	// __ISAMPLEFACTORY__

