"L. Spiro Engine"
|
00001 00018 #ifndef __LSS_STREAMINGSOUNDSOURCESTREAMER_H__ 00019 #define __LSS_STREAMINGSOUNDSOURCESTREAMER_H__ 00020 00021 #include "../LSSSoundLib.h" 00022 #include "Allocator/LSTLAllocator.h" 00023 00024 namespace lss { 00025 00029 enum LSS_DATA_SOURCE_STREAMERS { 00030 LSS_DSS_BASE = (1UL << 0UL), 00031 }; 00032 00041 class IStreamingSoundSourceStreamer { 00042 public : 00043 // == Various constructors. 00044 LSE_CALLCTOR IStreamingSoundSourceStreamer(); 00045 virtual LSE_CALLCTOR ~IStreamingSoundSourceStreamer(); 00046 00047 00048 // == Functions. 00060 virtual LSBOOL LSE_CALL GetData( LSUINT64 _ui64From, LSUINT64 &_ui64Length, 00061 LSUINT8 * &_pui8Data, CAllocator * _paAllocator ) const = 0; 00062 00069 virtual LSUINT32 LSE_CALL GetType() const = 0; 00070 00076 virtual const LSCHAR * LSE_CALL GetName() const = 0; 00077 00083 virtual LSUINT32 LSE_CALL GetFrequency() const = 0; 00084 00090 virtual LSUINT32 LSE_CALL GetBits() const = 0; 00091 00097 virtual LSUINT32 LSE_CALL GetChannels() const = 0; 00098 00104 virtual LSUINT64 LSE_CALL GetAudioLength() const = 0; 00105 00109 LSVOID LSE_CALL IncRef() const; 00110 00114 LSVOID LSE_CALL DecRef() const; 00115 00121 LSUINT32 LSE_CALL GetRef() const; 00122 00123 00124 protected : 00125 // == Members. 00129 mutable LSUINT32 m_ui32RefCount; 00130 00131 }; 00132 00133 } // namespace lss 00134 00135 #endif // __LSS_STREAMINGSOUNDSOURCESTREAMER_H__