IAudioFileFormat.hpp

Go to the documentation of this file.
00001 #ifndef __IAudioFileFormat__
00002 #define __IAudioFileFormat__
00003 
00004 #include <Collections/CollectionTypedef.h>
00005 #include <Basics/CSystemString.hpp>
00006 #include <IO/CFileStream.hpp>
00007 #include "TAudioBuffer.hpp"
00008 using Exponent::Audio::TAudioBuffer;
00009 using Exponent::IO::CFileStream;
00010 using Exponent::Basics::CSystemString;
00011 using Exponent::Collections::TStringCountedPointerArray;
00012 
00013 //  ===========================================================================
00014 
00015 namespace Exponent
00016 {
00017     namespace Audio
00018     {
00019 
00020 //  ===========================================================================
00021 
00109         template<typename TypeName> interface IAudioFileFormat
00110         {
00111         public:
00112 
00113 //  ===========================================================================
00114 
00119             struct SAudioFileFormat
00120             {
00121                 unsigned long m_sampleRate;             
00122                 unsigned long m_numberOfChannels;       
00123                 unsigned long m_numberOfSamples;        
00124                 unsigned long m_bitDepth;               
00125             };
00126 
00127 //  ===========================================================================
00128 
00133             enum EBitDepth
00134             {
00135                 e_eightBit      = 8,            
00136                 e_sixteenBit    = 16,           
00137                 e_twentyFourBit = 24,           
00138             };
00139 
00140 //  ===========================================================================
00141 
00145             IAudioFileFormat() { }
00146 
00150             virtual ~IAudioFileFormat() { }
00151 
00152 //  ===========================================================================
00153 
00160             virtual bool openFile(CFileStream::EStreamMode mode, const CSystemString &filename) = 0;
00161 
00166             virtual bool closeFile() = 0;
00167 
00168 //  ===========================================================================
00169 
00174             virtual void getFileExtension(TStringCountedPointerArray &array) const = 0;
00175 
00181             virtual bool isValidFormat(const CSystemString &filename) const = 0;
00182 
00183 //  ===========================================================================
00184 
00190             virtual bool readHeader(SAudioFileFormat &format) = 0;
00191 
00197             virtual bool readData(TAudioBuffer< TypeName > &data) = 0;
00198 
00199 //  ===========================================================================
00200 
00206             virtual bool writeHeader(const SAudioFileFormat &format) = 0;
00207 
00213             virtual bool writeData(const TAudioBuffer< TypeName > &data) = 0;
00214 
00215 //  ===========================================================================
00216         };
00217     }
00218 }
00219 #endif  // End of IAudioFileFormat.hpp

Infinity API - IAudioFileFormat.hpp Source File generated on 7 Mar 2007