diff options
author | Gregory Montoir | 2007-01-25 21:42:18 +0000 |
---|---|---|
committer | Gregory Montoir | 2007-01-25 21:42:18 +0000 |
commit | 519af02245354ced0680ad3b0381eb62c69a92ed (patch) | |
tree | 7ea8bdbcf4a2e6ae5c42030a69f685564cdc47c9 /engines/scumm/he/cup_player_he.h | |
parent | d70c83bd4b6b5a37a8c90abfff954823b49e9524 (diff) | |
download | scummvm-rg350-519af02245354ced0680ad3b0381eb62c69a92ed.tar.gz scummvm-rg350-519af02245354ced0680ad3b0381eb62c69a92ed.tar.bz2 scummvm-rg350-519af02245354ced0680ad3b0381eb62c69a92ed.zip |
modified CUP player code to read data directly from a file stream instead of a large memory buffer.
svn-id: r25195
Diffstat (limited to 'engines/scumm/he/cup_player_he.h')
-rw-r--r-- | engines/scumm/he/cup_player_he.h | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/engines/scumm/he/cup_player_he.h b/engines/scumm/he/cup_player_he.h index 6f2f72ba64..317a371a0e 100644 --- a/engines/scumm/he/cup_player_he.h +++ b/engines/scumm/he/cup_player_he.h @@ -24,6 +24,8 @@ #if !defined(CUP_PLAYER_HE_H) && !defined(DISABLE_HE) #define CUP_PLAYER_HE_H +#include "common/stream.h" + namespace Scumm { struct CUP_Sfx { @@ -57,26 +59,22 @@ public: bool open(const char *filename); void close(); - uint32 loadNextChunk(); - void parseHeaderTags(); void play(); - void setDirtyScreenRect(const Common::Rect &r); + void copyRectToScreen(const Common::Rect &r); void updateScreen(); void updateSfx(); void waitForSfxChannel(int channel); - void parseNextTag(const uint8 *data, uint32 &tag, uint32 &size); - void handleHEAD(const uint8 *data, uint32 dataSize); - void handleSFXB(const uint8 *data, uint32 dataSize); - void handleRGBS(const uint8 *data, uint32 dataSize); - void handleFRAM(uint8 *dst, const uint8 *data, uint32 size); - void decodeFRAM(uint8 *dst, Common::Rect &dstRect, const uint8 *data, int type); - void handleSRLE(uint8 *dst, const uint8 *data, uint32 size); - void decodeSRLE(uint8 *dst, const uint8 *colorMap, const uint8 *data, int unpackedSize); - uint8 *handleLZSS(const uint8 *data, uint32 dataSize); - void decodeLZSS(uint8 *dst, const uint8 *src1, const uint8 *src2, const uint8 *src3); - void handleRATE(const uint8 *data, uint32 dataSize); - void handleSNDE(const uint8 *data, uint32 dataSize); - void handleTOIL(const uint8 *data, uint32 dataSize); + bool parseNextHeaderTag(Common::SeekableReadStream &dataStream); + bool parseNextBlockTag(Common::SeekableReadStream &dataStream); + void handleHEAD(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleSFXB(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleRGBS(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleFRAM(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleSRLE(Common::SeekableReadStream &dataStream, uint32 dataSize); + bool handleLZSS(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleRATE(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleSNDE(Common::SeekableReadStream &dataStream, uint32 dataSize); + void handleTOIL(Common::SeekableReadStream &dataStream, uint32 dataSize); protected: @@ -84,8 +82,7 @@ protected: Audio::Mixer *_mixer; OSystem *_system; - Common::File _fd; - uint32 _dataSize; + Common::File _fileStream; int _playbackRate; int _width, _height; @@ -94,10 +91,12 @@ protected: bool _paletteChanged; uint8 *_offscreenBuffer; - uint8 *_currentChunkData; - uint32 _currentChunkSize; - uint8 *_bufferLzssData; - uint32 _bufferLzssSize; + uint8 *_inLzssBufData; + uint32 _inLzssBufSize; + uint8 *_outLzssBufData; + uint32 _outLzssBufSize; + + uint32 _dataSize; int _sfxCount; uint8 *_sfxBuffer; |