summaryrefslogtreecommitdiff
path: root/apps/plugins/imageviewer/gif/gif_lib_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/imageviewer/gif/gif_lib_private.h')
-rw-r--r--apps/plugins/imageviewer/gif/gif_lib_private.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/apps/plugins/imageviewer/gif/gif_lib_private.h b/apps/plugins/imageviewer/gif/gif_lib_private.h
new file mode 100644
index 0000000000..4e95aa4ee5
--- /dev/null
+++ b/apps/plugins/imageviewer/gif/gif_lib_private.h
@@ -0,0 +1,59 @@
1/****************************************************************************
2
3gif_lib_private.h - internal giflib routines and structures
4
5****************************************************************************/
6
7#ifndef _GIF_LIB_PRIVATE_H
8#define _GIF_LIB_PRIVATE_H
9
10#include "gif_lib.h"
11#include "gif_hash.h"
12
13#define EXTENSION_INTRODUCER 0x21
14#define DESCRIPTOR_INTRODUCER 0x2c
15#define TERMINATOR_INTRODUCER 0x3b
16
17#define LZ_MAX_CODE 4095 /* Biggest code possible in 12 bits. */
18#define LZ_BITS 12
19
20#define FLUSH_OUTPUT 4096 /* Impossible code, to signal flush. */
21#define FIRST_CODE 4097 /* Impossible code, to signal first. */
22#define NO_SUCH_CODE 4098 /* Impossible code, to signal empty. */
23
24#define FILE_STATE_WRITE 0x01
25#define FILE_STATE_SCREEN 0x02
26#define FILE_STATE_IMAGE 0x04
27#define FILE_STATE_READ 0x08
28
29#define IS_READABLE(Private) (Private->FileState & FILE_STATE_READ)
30#define IS_WRITEABLE(Private) (Private->FileState & FILE_STATE_WRITE)
31
32typedef struct GifFilePrivateType {
33 GifWord FileState, FileHandle, /* Where all this data goes to! */
34 BitsPerPixel, /* Bits per pixel (Codes uses at least this + 1). */
35 ClearCode, /* The CLEAR LZ code. */
36 EOFCode, /* The EOF LZ code. */
37 RunningCode, /* The next code algorithm can generate. */
38 RunningBits, /* The number of bits required to represent RunningCode. */
39 MaxCode1, /* 1 bigger than max. possible code, in RunningBits bits. */
40 LastCode, /* The code before the current code. */
41 CrntCode, /* Current algorithm code. */
42 StackPtr, /* For character stack (see below). */
43 CrntShiftState; /* Number of bits in CrntShiftDWord. */
44 unsigned long CrntShiftDWord; /* For bytes decomposition into codes. */
45 unsigned long PixelCount; /* Number of pixels in image. */
46 int File; /* File as stream. (converted to int in rb) */
47 InputFunc Read; /* function to read gif input (TVT) */
48 OutputFunc Write; /* function to write gif output (MRB) */
49 GifByteType Buf[256]; /* Compressed input is buffered here. */
50 GifByteType Stack[LZ_MAX_CODE]; /* Decoded pixels are stacked here. */
51 GifByteType Suffix[LZ_MAX_CODE + 1]; /* So we can trace the codes. */
52 GifPrefixType Prefix[LZ_MAX_CODE + 1];
53 GifHashTableType *HashTable;
54 bool gif89;
55} GifFilePrivateType;
56
57#endif /* _GIF_LIB_PRIVATE_H */
58
59/* end */