"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSSoundLib/Src/Ogg/LSSOggStreamingSoundSourceStreamer.h

00001 
00017 #ifndef __LSS_OGGSTREAMINGSOUNDSOURCESTREAMER_H__
00018 #define __LSS_OGGSTREAMINGSOUNDSOURCESTREAMER_H__
00019 
00020 #include "../LSSSoundLib.h"
00021 #include "../SoundComponents/LSSStreamingSoundSourceStreamer.h"
00022 #include "../SoundComponentsEx/LSSStreamerTypes.h"
00023 #include "LSSVorbisFile.h"
00024 
00025 namespace lss {
00026 
00034         class COggStreamingSoundSourceStreamer : public IStreamingSoundSourceStreamer {
00035         public :
00036                 // == Various constructors.
00037                 LSE_CALLCTOR                                                            COggStreamingSoundSourceStreamer( const LSCHAR * _pcFile,
00038                         CAllocator * _paAllocator );
00039                 virtual LSE_CALLCTOR                                            ~COggStreamingSoundSourceStreamer();
00040 
00041 
00042                 // == Functions.
00054                 virtual LSBOOL LSE_CALL                                         GetData( LSUINT64 _ui64From, LSUINT64 &_ui64Length,
00055                         LSUINT8 * &_pui8Data, CAllocator * _paAllocator ) const;
00056 
00062                 virtual LSUINT32 LSE_CALL                                       GetType() const;
00063 
00069                 virtual const LSCHAR * LSE_CALL                         GetName() const;
00070 
00076                 virtual LSUINT32 LSE_CALL                                       GetFrequency() const;
00077 
00083                 virtual LSUINT32 LSE_CALL                                       GetBits() const;
00084 
00090                 virtual LSUINT32 LSE_CALL                                       GetChannels() const;
00091 
00097                 virtual LSUINT64 LSE_CALL                                       GetAudioLength() const;
00098 
00099 
00100         protected :
00101                 // == Members.
00105                 CVorbisFile::LSS_OV_FILE                                        m_ovfFile;
00106 
00111                 LSCHAR *                                                                        m_pcPath;
00112 
00116                 CAllocator *                                                            m_paAllocator;
00117 
00121                 LSUINT64                                                                        m_ui64SoundTime;
00122 
00126                 LSUINT64                                                                        m_ui64Pcms;
00127 
00131                 CVorbisCodec::vorbis_info *                                     m_pviInfo;
00132 
00133 
00134         private :
00135                 typedef IStreamingSoundSourceStreamer           Parent;
00136         };
00137 
00138 }       // namespace lss
00139 
00140 #endif  // __LSS_OGGSTREAMINGSOUNDSOURCESTREAMER_H__
00141 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator