Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Burger::DecompressILBMRLE Class Reference

Decompress RLE format. More...

Inheritance diagram for Burger::DecompressILBMRLE:
Collaboration diagram for Burger::DecompressILBMRLE:

Public Member Functions

const Burger::StaticRTTIget_StaticRTTI (void) const noexcept override
 Get the description to the class.
 
 DecompressILBMRLE ()
 Default constructor.
 
eError Reset (void) override
 Reset the RLE decompression.
 
eError Process (void *pOutput, uintptr_t uOutputChunkLength, const void *pInput, uintptr_t uInputChunkLength) override
 Decompress data using RLE compression.
 
- Public Member Functions inherited from Burger::Decompress
 Decompress (void)
 Default constructor.
 
uintptr_t GetTotalInputSize (void) const noexcept
 Get the total processed input data in bytes.
 
uintptr_t GetTotalOutputSize (void) const noexcept
 Get the total processed output data in bytes.
 
uintptr_t GetProcessedInputSize (void) const noexcept
 Get the total processed output data in bytes from the last process pass.
 
uintptr_t GetProcessedOutputSize (void) const noexcept
 Get the total processed output data in bytes from the last process pass.
 
uint32_t GetSignature (void) const noexcept
 Return the signature for this decompressor.
 
- Public Member Functions inherited from Burger::Base
const char * get_class_name (void) const noexcept
 Get the name of the class.
 
virtual ~Base () noexcept=default
 Destructor.
 

Static Public Attributes

static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
static const uint32_t Signature = 0x524C4420
 'RLE '
 
- Static Public Attributes inherited from Burger::Decompress
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
- Static Public Attributes inherited from Burger::Base
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 

Protected Types

enum  eState { STATE_INIT , STATE_FILLTOKEN , STATE_FILL , STATE_RUN }
 

Protected Attributes

uintptr_t m_uRun
 Run in progress.
 
uint_t m_uFill
 Last fill value.
 
eState m_eState
 State of the decompression.
 
- Protected Attributes inherited from Burger::Decompress
uintptr_t m_uTotalInput
 Total number of bytes processed for input.
 
uintptr_t m_uTotalOutput
 Total number of bytes processed for output.
 
uintptr_t m_uInputLength
 Number of input bytes processed from the last call to Process()
 
uintptr_t m_uOutputLength
 Number of output bytes processed from the last call to Process()
 
uint32_t m_uSignature
 4 character code to identify this decompresser
 

Detailed Description

Decompress RLE format.


Decompress data in RLE format (Documented here Burger::CompressRLE ) Token >=0x80 = 0x101-Token Repeat (Min 2, Max 129) Token < 0x80 = Token+1 Data[Token+1] (Min 1, Max 128)

See also
Burger::Decompress and Burger::CompressILBMRLE

Member Enumeration Documentation

◆ eState

Enumerator
STATE_INIT 

Start of a compression token.

STATE_FILLTOKEN 

Obtained a fill token, awaiting fill byte.

STATE_FILL 

Data fill in progress.

STATE_RUN 

Raw data copy in progress.

Constructor & Destructor Documentation

◆ DecompressILBMRLE()

Burger::DecompressILBMRLE::DecompressILBMRLE ( void )

Default constructor.


Initializes the defaults

Member Function Documentation

◆ get_StaticRTTI()

const Burger::StaticRTTI * Burger::DecompressILBMRLE::get_StaticRTTI ( void ) const
overridevirtualnoexcept

Get the description to the class.


This virtual function will pull the pointer to the StaticRTTI instance that has the name of the class. Due to it being virtual, it will be the name of the most derived class.

Returns
Pointer to a global, read only instance of StaticRTTI for the true class

Reimplemented from Burger::Decompress.

◆ Process()

Burger::eError Burger::DecompressILBMRLE::Process ( void * pOutput,
uintptr_t uOutputChunkLength,
const void * pInput,
uintptr_t uInputChunkLength )
overridevirtual

Decompress data using RLE compression.


Using the RLE compression algorithm, decompress the data

Parameters
pOutputPointer to the buffer to accept the decompressed data
uOutputChunkLengthNumber of bytes in the output buffer
pInputPointer to data to compress
uInputChunkLengthNumber of bytes in the data to decompress
Returns
Decompress::eError code with zero if no failure, non-zero is an error code
See also
Burger::SimpleDecompressILBMRLE()

Implements Burger::Decompress.

◆ Reset()

Burger::eError Burger::DecompressILBMRLE::Reset ( void )
overridevirtual

Reset the RLE decompression.


Returns
kErrorNone (No error is possible)

Implements Burger::Decompress.

Member Data Documentation

◆ g_StaticRTTI

const Burger::StaticRTTI Burger::DecompressILBMRLE::g_StaticRTTI
static

The global description of the class.


This record contains the name of this class and a reference to the parent

◆ m_eState

eState Burger::DecompressILBMRLE::m_eState
protected

State of the decompression.

◆ m_uFill

uint_t Burger::DecompressILBMRLE::m_uFill
protected

Last fill value.

◆ m_uRun

uintptr_t Burger::DecompressILBMRLE::m_uRun
protected

Run in progress.

◆ Signature

const uint32_t Burger::DecompressILBMRLE::Signature = 0x524C4420
static

'RLE '