"L. Spiro Engine"
|
00001 00017 #ifndef __LSS_WAVESTREAMINGSOUNDSOURCESTREAMER_H__ 00018 #define __LSS_WAVESTREAMINGSOUNDSOURCESTREAMER_H__ 00019 00020 #include "../LSSSoundLib.h" 00021 #include "../SoundComponents/LSSStreamingSoundSourceStreamer.h" 00022 #include "../SoundComponentsEx/LSSStreamerTypes.h" 00023 #include "HighLevel/LSFFileMap.h" 00024 #include "LSSWaveLoader.h" 00025 00026 namespace lss { 00027 00035 class CWaveStreamingSoundSourceStreamer : public IStreamingSoundSourceStreamer { 00036 public : 00037 // == Various constructors. 00038 LSE_CALLCTOR CWaveStreamingSoundSourceStreamer( const LSCHAR * _pcFile, 00039 CAllocator * _paAllocator ); 00040 virtual LSE_CALLCTOR ~CWaveStreamingSoundSourceStreamer(); 00041 00042 00043 // == Functions. 00055 virtual LSBOOL LSE_CALL GetData( LSUINT64 _ui64From, LSUINT64 &_ui64Length, 00056 LSUINT8 * &_pui8Data, CAllocator * _paAllocator ) const; 00057 00063 virtual LSUINT32 LSE_CALL GetType() const; 00064 00070 virtual const LSCHAR * LSE_CALL GetName() const; 00071 00077 virtual LSUINT32 LSE_CALL GetFrequency() const; 00078 00084 virtual LSUINT32 LSE_CALL GetBits() const; 00085 00091 virtual LSUINT32 LSE_CALL GetChannels() const; 00092 00098 virtual LSUINT64 LSE_CALL GetAudioLength() const; 00099 00100 00101 protected : 00102 // == Members. 00107 LSCHAR * m_pcPath; 00108 00112 CAllocator * m_paAllocator; 00113 00117 CFileMap m_fmMap; 00118 00122 CWaveLoader::LSE_WAVE_FILE_INFO m_wfiInfo; 00123 00127 LSUINT64 m_ui64SoundTime; 00128 00129 private : 00130 typedef IStreamingSoundSourceStreamer Parent; 00131 }; 00132 00133 } // namespace lss 00134 00135 #endif // __LSS_WAVESTREAMINGSOUNDSOURCESTREAMER_H__