#include <revolution/cx/CXStreamingUncompression.h>
typedef struct { u8* destp; // 4B s32 destCount; // 4B u32 freq9[ 0x200 ]; // 2048B u32 low_cnt9[ 0x200 ]; // 2048B u32 freq12[ 0x1000 ]; // 16384B u32 low_cnt12[ 0x1000 ]; // 16384B u32 total9; // 4B u32 total12; // 4B u32 range; // 4B u32 code; // 4B u32 low; // 4B u32 carry_cnt; // 4B u8 carry; // 1B u8 codeLen; // 1B u16 length; // 2B u32 headerSize; // 4B // Total 36904B } CXUncompContextLRC;
Context structure where the status of data uncompression is stored when LRC-compressed data is undergoing streaming uncompression while being read from the card.
The context is initialized by the CXInitUncompContextLRC function and used by the CXReadUncompLRC function to store the uncompression status.
| destp | Pointer to the region where uncompressed data will be written |
|---|---|
| destCount | Remaining write size |
| forceDestCount | Decompression size. |
| freq9 | Frequency table for code data. |
| low_cnt9 | low_cnt table for code data. |
| freq12 | Frequency table for offset data. |
| low_cnt12 | low_cnt table for offset data. |
| total9 | Total value for code data. |
| total12 | Total value for offset data. |
| range | Range status of range coda. |
| code | Code status of range coda. |
| low | Low status of range coda. |
| carry_cnt | Number of carry digits for range coda. |
| carry | Carry status of range coda. |
| codeLen | Required code length for range coda. |
| len | LZ compression capture length. |
| headerSize | Size of header being read. |
CXInitUncompContextLRC
CXReadUncompLRC
CXUncompContextRL
CXUncompContextHuffman
2009/01/28 Initial version.
CONFIDENTIAL