IAudioDecoder.h

00001 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
00002 // This file is part of the "cAudio Engine"
00003 // For conditions of distribution and use, see copyright notice in cAudio.h
00004 
00005 #ifndef IAUDIODECODER_H
00006 #define IAUDIODECODER_H
00007 
00008 #include "IRefCounted.h"
00009 #include "IDataSource.h"
00010 #include "EAudioFormats.h"
00011 
00012 namespace cAudio
00013 {
00015         class IAudioDecoder : public IRefCounted
00016         {
00017                 public:
00019 
00020                         IAudioDecoder(IDataSource* stream) : Stream(stream) { if(Stream) Stream->grab(); }
00021                         virtual ~IAudioDecoder() { if(Stream) Stream->drop(); }
00022 
00024                         virtual AudioFormats getFormat() = 0;
00025 
00027                         virtual int getFrequency() = 0;
00028 
00030                         virtual bool isSeekingSupported() = 0;
00031 
00033                         virtual bool isValid() = 0;
00034 
00036 
00040                         virtual int readAudioData(void* output, int amount) = 0;
00041 
00043 
00047                         virtual bool setPosition(int position, bool relative) = 0;
00048 
00050 
00054                         virtual bool seek(float seconds, bool relative) = 0;
00055 
00057                         virtual float getTotalTime() = 0;
00058 
00060                         virtual int getTotalSize() = 0;
00061 
00063                         virtual int getCompressedSize() = 0;
00064 
00066                         virtual float getCurrentTime() = 0;
00067 
00069                         virtual int getCurrentPosition() = 0;
00070 
00072                         virtual int getCurrentCompressedPosition() = 0;
00073                 protected:
00075                         IDataSource* Stream;
00076         };
00077 };
00078 
00079 #endif 
 All Classes Namespaces Functions Variables Enumerations

Generated on Sat Feb 20 22:55:07 2010 for cAudio by  doxygen 1.6.2