/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __AUDIOIO__ #define __AUDIOIO__ #include "audio/stream_interface.h" #include "audio/stream_factory.h" #include "audio/sample_interface.h" #include "audio/sample_factory.h" #include "memory/singleton.h" #include "container/nlist.h" namespace GS { /* @short Audio factory. @author Emmanuel Julien (ejulien@owloh.com) */ class AudioIO : public Singleton { AutoList stream_factories; AutoList sample_factories; public: /// Register a stream codec. void RegisterStreamFactory(IAudioStreamFactory *); /// Register a sample codec. void RegisterSampleFactory(ISampleFactory *); /// Open stream. IAudioStream *OpenStream(const char *path, const char *format = 0); /// Load a sample. ISample *LoadSample(const char *path, const char *format = 0); }; } // GS #endif // __AUDIOIO__