delta_private.h revision 312518
1230557Sjimharris///////////////////////////////////////////////////////////////////////////////
2230557Sjimharris//
3230557Sjimharris/// \file       delta_private.h
4230557Sjimharris/// \brief      Private common stuff for Delta encoder and decoder
5230557Sjimharris//
6230557Sjimharris//  Author:     Lasse Collin
7230557Sjimharris//
8230557Sjimharris//  This file has been put into the public domain.
9230557Sjimharris//  You can do whatever you want with this file.
10230557Sjimharris//
11230557Sjimharris///////////////////////////////////////////////////////////////////////////////
12230557Sjimharris
13230557Sjimharris#ifndef LZMA_DELTA_PRIVATE_H
14230557Sjimharris#define LZMA_DELTA_PRIVATE_H
15230557Sjimharris
16230557Sjimharris#include "delta_common.h"
17230557Sjimharris
18230557Sjimharristypedef struct {
19230557Sjimharris	/// Next coder in the chain
20230557Sjimharris	lzma_next_coder next;
21230557Sjimharris
22230557Sjimharris	/// Delta distance
23230557Sjimharris	size_t distance;
24230557Sjimharris
25230557Sjimharris	/// Position in history[]
26230557Sjimharris	uint8_t pos;
27230557Sjimharris
28230557Sjimharris	/// Buffer to hold history of the original data
29230557Sjimharris	uint8_t history[LZMA_DELTA_DIST_MAX];
30230557Sjimharris} lzma_delta_coder;
31230557Sjimharris
32230557Sjimharris
33230557Sjimharrisextern lzma_ret lzma_delta_coder_init(
34230557Sjimharris		lzma_next_coder *next, const lzma_allocator *allocator,
35230557Sjimharris		const lzma_filter_info *filters);
36230557Sjimharris
37230557Sjimharris#endif
38230557Sjimharris