16#include <OgreDataStream.h>
38 void Write(
const void *in_buffer){
50 size_t Read(
void *out_buffer,
size_t count){
51 assert(
available_ &&
"Can't read if no data is available");
53 uint8 *buffer(
static_cast<uint8*
>(out_buffer));
71 return buffer_[offset % buffer_size];
84 memset(
buffer_, 0, buffer_size);
127 const String &name,
const Ogre::DataStreamPtr &compressed_stream
145 virtual size_t read(
void *buf,
size_t count)
override;
152 virtual bool eof()
const override;
161 virtual void skip(
long count)
override;
170 virtual void seek(
size_t pos)
override;
177 virtual size_t tell()
const override;
182 virtual void close()
override;
Handles LZS compressed data streams.
Definition: VGearsLZSDataStream.h:109
virtual void DecompressChunk()
Decompresses the stream.
Definition: VGearsLZSDataStream.cpp:76
size_t AvailableCompressed() const
Checks how many data still remains compresses.
Definition: VGearsLZSDataStream.h:189
virtual void close() override
Closes the stream.
Definition: VGearsLZSDataStream.cpp:147
Ogre::DataStreamPtr compressed_stream_
Definition: VGearsLZSDataStream.h:222
virtual size_t tell() const override
Retrieves the current stream position.
Definition: VGearsLZSDataStream.cpp:145
virtual void skip(long count) override
Unimplemented.
Definition: VGearsLZSDataStream.cpp:125
virtual ~LZSDataStream()
Destructor.
Definition: VGearsLZSDataStream.cpp:37
uint32 available_compressed_
Definition: VGearsLZSDataStream.h:223
void FlipEndian(uint32 &inout_data)
Flips the endian mode of some data.
Definition: VGearsLZSDataStream.cpp:53
virtual size_t read(void *buf, size_t count) override
Reads from the current position of stream into a buffer.
Definition: VGearsLZSDataStream.cpp:61
virtual void seek(size_t pos) override
Unimplemented.
Definition: VGearsLZSDataStream.cpp:133
LZSDataStream(const Ogre::DataStreamPtr &compressed_stream)
Constructor.
Definition: VGearsLZSDataStream.cpp:21
virtual void init()
Initializes the stream and sets instance data.
Definition: VGearsLZSDataStream.cpp:39
virtual bool eof() const override
Indicates if the stream has reached the end.
Definition: VGearsLZSDataStream.cpp:141
size_t position_
Definition: VGearsLZSDataStream.h:224
RingBuffer< 4096 > buffer_
Definition: VGearsLZSDataStream.h:225
size_t AvailableUncompressed() const
Checks how many data still has been uncompressesed.
Definition: VGearsLZSDataStream.h:196
A ring buffer used by LZS streams.
Definition: VGearsLZSDataStream.h:24
size_t available_
Available data to read.
Definition: VGearsLZSDataStream.h:102
uint8 Get(const size_t offset)
Gets data from the buffer at an offset.
Definition: VGearsLZSDataStream.h:70
size_t Available() const
Checks the available data size in the buffer.
Definition: VGearsLZSDataStream.h:79
size_t position_
Current buffer position.
Definition: VGearsLZSDataStream.h:97
void clear()
Definition: VGearsLZSDataStream.h:81
size_t Read(void *out_buffer, size_t count)
Reads data from the buffer and extracts it into other buffer.
Definition: VGearsLZSDataStream.h:50
void Write(const void *in_buffer)
Writes to the buffer from other buffer.
Definition: VGearsLZSDataStream.h:38
uint8 buffer_[buffer_size]
The buffer.
Definition: VGearsLZSDataStream.h:92
RingBuffer()
Constructor.
Definition: VGearsLZSDataStream.h:31
Definition: FF7NameLookup.h:24
Ogre::String String
Definition: TypeDefine.h:37
Ogre::SharedPtr< LZSDataStream > LZSDataStreamPtr
Definition: VGearsLZSDataStream.h:228
Ogre::uint32 uint32
Definition: TypeDefine.h:33
Ogre::uint8 uint8
Definition: TypeDefine.h:31