2024-07-31 19:35:12 +12:00
|
|
|
#pragma once
|
2020-05-09 21:05:58 -04:00
|
|
|
|
2024-06-16 16:57:53 +12:00
|
|
|
#include <cstdint>
|
|
|
|
|
|
2020-05-09 21:05:58 -04:00
|
|
|
#include "IDecompressor.h"
|
2024-07-31 19:35:12 +12:00
|
|
|
|
|
|
|
|
class CompactProRLEDecompressor : public IDecompressor
|
|
|
|
|
{
|
2020-05-09 21:05:58 -04:00
|
|
|
public:
|
2024-07-31 19:35:12 +12:00
|
|
|
CompactProRLEDecompressor();
|
2020-05-09 21:05:58 -04:00
|
|
|
~CompactProRLEDecompressor();
|
2024-07-31 19:35:12 +12:00
|
|
|
|
|
|
|
|
bool Reset(CSInputBuffer *input, size_t compressedSize, size_t decompressedSize);
|
2020-05-09 21:05:58 -04:00
|
|
|
bool ReadBytes(void *dest, size_t numBytes);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
CSInputBuffer *input;
|
|
|
|
|
int saved, repeat;
|
|
|
|
|
bool halfescaped;
|
|
|
|
|
|
2024-07-31 19:35:12 +12:00
|
|
|
bool EmitOneByte(uint8_t &b);
|
|
|
|
|
};
|