1#ifndef HEATSHRINK_DECODER_H
2#define HEATSHRINK_DECODER_H
28#if HEATSHRINK_DYNAMIC_ALLOC
29#define HEATSHRINK_DECODER_INPUT_BUFFER_SIZE(BUF) \
30 ((BUF)->input_buffer_size)
31#define HEATSHRINK_DECODER_WINDOW_BITS(BUF) \
33#define HEATSHRINK_DECODER_LOOKAHEAD_BITS(BUF) \
34 ((BUF)->lookahead_sz2)
36#define HEATSHRINK_DECODER_INPUT_BUFFER_SIZE(_) \
37 HEATSHRINK_STATIC_INPUT_BUFFER_SIZE
38#define HEATSHRINK_DECODER_WINDOW_BITS(_) \
39 (HEATSHRINK_STATIC_WINDOW_BITS)
40#define HEATSHRINK_DECODER_LOOKAHEAD_BITS(BUF) \
41 (HEATSHRINK_STATIC_LOOKAHEAD_BITS)
54#if HEATSHRINK_DYNAMIC_ALLOC
69#if HEATSHRINK_DYNAMIC_ALLOC
76 uint8_t expansion_buffer_sz2, uint8_t lookahead_sz2);
88 uint8_t *in_buf,
size_t size,
size_t *input_size);
93 uint8_t *out_buf,
size_t out_buf_size,
size_t *output_size);
HSD_finish_res
Definition heatshrink_decoder.h:22
@ HSDR_FINISH_DONE
Definition heatshrink_decoder.h:23
@ HSDR_FINISH_ERROR_NULL
Definition heatshrink_decoder.h:25
@ HSDR_FINISH_MORE
Definition heatshrink_decoder.h:24
HSD_sink_res
Definition heatshrink_decoder.h:9
@ HSDR_SINK_ERROR_NULL
Definition heatshrink_decoder.h:12
@ HSDR_SINK_OK
Definition heatshrink_decoder.h:10
@ HSDR_SINK_FULL
Definition heatshrink_decoder.h:11
HSD_poll_res heatshrink_decoder_poll(heatshrink_decoder *hsd, uint8_t *out_buf, size_t out_buf_size, size_t *output_size)
Definition heatshrink_decoder.c:135
#define HEATSHRINK_DECODER_INPUT_BUFFER_SIZE(BUF)
Definition heatshrink_decoder.h:29
#define HEATSHRINK_DECODER_WINDOW_BITS(BUF)
Definition heatshrink_decoder.h:31
void heatshrink_decoder_reset(heatshrink_decoder *hsd)
Definition heatshrink_decoder.c:80
HSD_sink_res heatshrink_decoder_sink(heatshrink_decoder *hsd, uint8_t *in_buf, size_t size, size_t *input_size)
Definition heatshrink_decoder.c:95
heatshrink_decoder * heatshrink_decoder_alloc(uint16_t input_buffer_size, uint8_t expansion_buffer_sz2, uint8_t lookahead_sz2)
Definition heatshrink_decoder.c:49
HSD_finish_res heatshrink_decoder_finish(heatshrink_decoder *hsd)
Definition heatshrink_decoder.c:337
HSD_poll_res
Definition heatshrink_decoder.h:15
@ HSDR_POLL_MORE
Definition heatshrink_decoder.h:17
@ HSDR_POLL_EMPTY
Definition heatshrink_decoder.h:16
@ HSDR_POLL_ERROR_NULL
Definition heatshrink_decoder.h:18
@ HSDR_POLL_ERROR_UNKNOWN
Definition heatshrink_decoder.h:19
void heatshrink_decoder_free(heatshrink_decoder *hsd)
Definition heatshrink_decoder.c:72
Definition heatshrink_decoder.h:44
uint8_t current_byte
Definition heatshrink_decoder.h:51
uint16_t input_buffer_size
Definition heatshrink_decoder.h:58
uint8_t buffers[]
Definition heatshrink_decoder.h:61
uint16_t output_count
Definition heatshrink_decoder.h:47
uint8_t window_sz2
Definition heatshrink_decoder.h:56
uint8_t bit_index
Definition heatshrink_decoder.h:52
uint8_t lookahead_sz2
Definition heatshrink_decoder.h:57
uint16_t head_index
Definition heatshrink_decoder.h:49
uint16_t output_index
Definition heatshrink_decoder.h:48
uint16_t input_index
Definition heatshrink_decoder.h:46
uint16_t input_size
Definition heatshrink_decoder.h:45
uint8_t state
Definition heatshrink_decoder.h:50