mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 01:46:42 +00:00
Implemented SeekableSubReadStreamEndian moddeled after MemoryReadStreamEndian.
svn-id: r31270
This commit is contained in:
parent
639c4597cd
commit
ff2ba585b3
@ -358,6 +358,36 @@ public:
|
||||
virtual void seek(int32 offset, int whence = SEEK_SET);
|
||||
};
|
||||
|
||||
/**
|
||||
* This is a wrapper around SeekableSubReadStream, but it adds non-endian
|
||||
* read methods whose endianness is set on the stream creation.
|
||||
*/
|
||||
class SeekableSubReadStreamEndian : public SeekableSubReadStream {
|
||||
public:
|
||||
bool _bigEndian;
|
||||
|
||||
SeekableSubReadStreamEndian(SeekableReadStream *parentStream, uint32 begin, uint32 end, bool bigEndian = false, bool disposeParentStream = false)
|
||||
: SeekableSubReadStream(parentStream, begin, end, disposeParentStream), _bigEndian(bigEndian) {
|
||||
}
|
||||
|
||||
inline uint16 readUint16() {
|
||||
return (_bigEndian) ? readUint16BE() : readUint16LE();
|
||||
}
|
||||
|
||||
inline uint32 readUint32() {
|
||||
return (_bigEndian) ? readUint32BE() : readUint32LE();
|
||||
}
|
||||
|
||||
inline int16 readSint16() {
|
||||
return (int16)readUint16();
|
||||
}
|
||||
|
||||
inline int32 readSint32() {
|
||||
return (int32)readUint32();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Simple memory based 'stream', which implements the ReadStream interface for
|
||||
* a plain memory block.
|
||||
@ -414,11 +444,11 @@ public:
|
||||
MemoryReadStreamEndian(const byte *buf, uint32 len, bool bigEndian = false) : MemoryReadStream(buf, len), _bigEndian(bigEndian) {}
|
||||
|
||||
inline uint16 readUint16() {
|
||||
return (_bigEndian) ? readUint16BE(): readUint16LE();
|
||||
return (_bigEndian) ? readUint16BE() : readUint16LE();
|
||||
}
|
||||
|
||||
inline uint32 readUint32() {
|
||||
return (_bigEndian) ? readUint32BE(): readUint32LE();
|
||||
return (_bigEndian) ? readUint32BE() : readUint32LE();
|
||||
}
|
||||
|
||||
inline int16 readSint16() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user