ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
rle.h File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
#include <unistd.h>

Go to the source code of this file.

Data Structures

struct  _RLECompressor

Typedefs

typedef enum _RLECompressorState RLECompressorState
typedef struct _RLECompressor RLECompressor

Enumerations

enum  _RLECompressorState {
  RLE_CS_READY = 0 , RLE_CS_COUNTING = 1 , RLE_CS_EMIT = 2 , RLE_CS_EMIT_CONTINUE = 3 ,
  RLE_CS_END_OF_BLOCK = 4
}

Functions

RLECompressorrle_create ()
MemoryBlockrle_compress (RLECompressor *_rle, MemoryBlock *_input, int _size, int *_output_size)
MemoryBlockrle_uncompress (RLECompressor *_rle, MemoryBlock *_input, int _size, int *_output_size)
void rle_free (RLECompressor *_rle)

Typedef Documentation

◆ RLECompressor

typedef struct _RLECompressor RLECompressor

◆ RLECompressorState

Enumeration Type Documentation

◆ _RLECompressorState

Enumerator
RLE_CS_READY 

Ready to compress

RLE_CS_COUNTING 

Counting characters

RLE_CS_EMIT 

Emit single / duplicate

RLE_CS_EMIT_CONTINUE 

Emit single / duplicate and continue counting

RLE_CS_END_OF_BLOCK 

End of compression

Definition at line 48 of file rle.h.

Function Documentation

◆ rle_compress()

MemoryBlock * rle_compress ( RLECompressor * _rle,
MemoryBlock * _input,
int _size,
int * _output_size )

Definition at line 88 of file rle.c.

◆ rle_create()

RLECompressor * rle_create ( )

Definition at line 41 of file rle.c.

◆ rle_free()

void rle_free ( RLECompressor * _rle)

Definition at line 224 of file rle.c.

◆ rle_uncompress()

MemoryBlock * rle_uncompress ( RLECompressor * _rle,
MemoryBlock * _input,
int _size,
int * _output_size )

Definition at line 230 of file rle.c.