XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
upng.cpp File Reference
#include "upng.h"
#include <stdlib.h>
#include <string.h>
Include dependency graph for upng.cpp:

Classes

struct  huffman_tree
 
struct  upng_t
 

Macros

#define MAKE_BYTE(a, b, c, d)   (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
 
#define CHUNK_IHDR   MAKE_BYTE('I', 'H', 'D', 'R')
 
#define CHUNK_IDAT   MAKE_BYTE('I', 'D', 'A', 'T')
 
#define CHUNK_IEND   MAKE_BYTE('I', 'E', 'N', 'D')
 
#define FIRST_LENGTH_CODE_INDEX   257
 
#define LAST_LENGTH_CODE_INDEX   285
 
#define NUM_DEFLATE_CODE_SYMBOLS   288
 
#define NUM_DISTANCE_SYMBOLS   32
 
#define NUM_CODE_LENGTH_CODES   19
 
#define MAX_BITS   15
 
#define MAX_BITS_SPECIAL   7
 
#define SET_ERROR(upng, code)   do { (upng)->error = (code); (upng)->error_line = __LINE__; } while (0)
 
#define upng_chunk_length(chunk)
 
#define upng_chunk_type(chunk)   MAKE_BYTE((chunk)[4], (chunk)[5], (chunk)[6], (chunk)[7])
 
#define upng_chunk_critical(chunk)   (((chunk)[4] & 32) == 0)
 

Typedefs

typedef struct huffman_tree huffman_tree
 

Functions

upng_t * upng_new_from_bytes (const unsigned char *buffer, unsigned long size)
 
void upng_free (upng_t *upng)
 
upng_error upng_header (upng_t *upng)
 
upng_error upng_decode (upng_t *upng)
 
unsigned int upng_get_width (const upng_t *upng)
 
unsigned int upng_get_height (const upng_t *upng)
 
unsigned int upng_get_bpp (const upng_t *upng)
 
const unsigned char * upng_get_buffer (const upng_t *upng)
 
unsigned int upng_get_size (const upng_t *upng)
 
upng_format upng_get_format (const upng_t *upng)
 
upng_error upng_get_error (const upng_t *upng)
 

Macro Definition Documentation

◆ CHUNK_IDAT

#define CHUNK_IDAT   MAKE_BYTE('I', 'D', 'A', 'T')

◆ CHUNK_IEND

#define CHUNK_IEND   MAKE_BYTE('I', 'E', 'N', 'D')

◆ CHUNK_IHDR

#define CHUNK_IHDR   MAKE_BYTE('I', 'H', 'D', 'R')

◆ FIRST_LENGTH_CODE_INDEX

#define FIRST_LENGTH_CODE_INDEX   257

◆ LAST_LENGTH_CODE_INDEX

#define LAST_LENGTH_CODE_INDEX   285

◆ MAKE_BYTE

#define MAKE_BYTE (   a,
  b,
  c,
  d 
)    (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))

◆ MAX_BITS

#define MAX_BITS   15

◆ MAX_BITS_SPECIAL

#define MAX_BITS_SPECIAL   7

◆ NUM_CODE_LENGTH_CODES

#define NUM_CODE_LENGTH_CODES   19

◆ NUM_DEFLATE_CODE_SYMBOLS

#define NUM_DEFLATE_CODE_SYMBOLS   288

◆ NUM_DISTANCE_SYMBOLS

#define NUM_DISTANCE_SYMBOLS   32

◆ SET_ERROR

#define SET_ERROR (   upng,
  code 
)    do { (upng)->error = (code); (upng)->error_line = __LINE__; } while (0)

◆ upng_chunk_critical

#define upng_chunk_critical (   chunk)    (((chunk)[4] & 32) == 0)

◆ upng_chunk_length

#define upng_chunk_length (   chunk)
Value:
( \
((unsigned long)(chunk)[0] << 24) | \
((unsigned long)(chunk)[1] << 16) | \
((unsigned long)(chunk)[2] << 8) | \
((unsigned long)(chunk)[3]))

◆ upng_chunk_type

#define upng_chunk_type (   chunk)    MAKE_BYTE((chunk)[4], (chunk)[5], (chunk)[6], (chunk)[7])

Typedef Documentation

◆ huffman_tree

typedef struct huffman_tree huffman_tree

Function Documentation

◆ upng_decode()

upng_error upng_decode ( upng_t *  upng)

◆ upng_free()

void upng_free ( upng_t *  upng)

◆ upng_get_bpp()

unsigned int upng_get_bpp ( const upng_t *  upng)

◆ upng_get_buffer()

const unsigned char * upng_get_buffer ( const upng_t *  upng)

◆ upng_get_error()

upng_error upng_get_error ( const upng_t *  upng)

◆ upng_get_format()

upng_format upng_get_format ( const upng_t *  upng)

◆ upng_get_height()

unsigned int upng_get_height ( const upng_t *  upng)

◆ upng_get_size()

unsigned int upng_get_size ( const upng_t *  upng)

◆ upng_get_width()

unsigned int upng_get_width ( const upng_t *  upng)

◆ upng_header()

upng_error upng_header ( upng_t *  upng)

◆ upng_new_from_bytes()

upng_t * upng_new_from_bytes ( const unsigned char *  buffer,
unsigned long  size 
)