"L. Spiro Engine"
|
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