1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| #ifndef GIFDEC_H
| #define GIFDEC_H
|
| #ifdef __cplusplus
| extern "C" {
| #endif
|
| #include <lvgl.h>
|
| #include <stdint.h>
|
| typedef struct _gd_Palette {
| int size;
| uint8_t colors[0x100 * 3];
| } gd_Palette;
|
| typedef struct _gd_GCE {
| uint16_t delay;
| uint8_t tindex;
| uint8_t disposal;
| int input;
| int transparency;
| } gd_GCE;
|
|
|
| typedef struct _gd_GIF {
| lv_fs_file_t fd;
| const char * data;
| uint8_t is_file;
| uint32_t f_rw_p;
| int32_t anim_start;
| uint16_t width, height;
| uint16_t depth;
| int32_t loop_count;
| gd_GCE gce;
| gd_Palette * palette;
| gd_Palette lct, gct;
| void (*plain_text)(
| struct _gd_GIF * gif, uint16_t tx, uint16_t ty,
| uint16_t tw, uint16_t th, uint8_t cw, uint8_t ch,
| uint8_t fg, uint8_t bg
| );
| void (*comment)(struct _gd_GIF * gif);
| void (*application)(struct _gd_GIF * gif, char id[8], char auth[3]);
| uint16_t fx, fy, fw, fh;
| uint8_t bgindex;
| uint8_t * canvas, * frame;
| #if LV_GIF_CACHE_DECODE_DATA
| uint8_t *lzw_cache;
| #endif
| } gd_GIF;
|
| gd_GIF * gd_open_gif_file(const char * fname);
|
| gd_GIF * gd_open_gif_data(const void * data);
|
| void gd_render_frame(gd_GIF * gif, uint8_t * buffer);
|
| int gd_get_frame(gd_GIF * gif);
| void gd_rewind(gd_GIF * gif);
| void gd_close_gif(gd_GIF * gif);
|
| #ifdef __cplusplus
| } /* extern "C" */
| #endif
|
| #endif /* GIFDEC_H */
|
|