diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2012-11-02 13:03:58 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2012-11-13 18:13:10 +0100 |
commit | 0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5 (patch) | |
tree | 49d8d297cbba93902bc612a9aa4ded1b6e2d46e5 /apps/plugins/imageviewer/imageviewer.h | |
parent | b35f82c91ff050b4405b19a3e56e9d031bf940e2 (diff) | |
download | rockbox-0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5.tar.gz rockbox-0ceaff2b65c50b75ad8cc5b2d12e7b3f864092e5.zip |
imageviewer: gif viewer based on giflib-5.0.2
This adds ability to view gif images in rockbox.
Works both on color and gray/monochrome targets (greylib).
Aspect correction is supported as well.
Limitations:
- animated gifs are restricted to 32 frames
- animated gifs loop always (loopcount is ignored)
- plain text extension is not supported
- animated gifs with interframe delay = 0 are treated as still
images (web browsers usually treat delay 0 as 100ms to prevent
exhaustive CPU load by such images)
Change-Id: I61501f801ddcd403410e38d83e6bddc9883e7ede
Diffstat (limited to 'apps/plugins/imageviewer/imageviewer.h')
-rw-r--r-- | apps/plugins/imageviewer/imageviewer.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h index 9cc1a9117a..19b5db15bb 100644 --- a/apps/plugins/imageviewer/imageviewer.h +++ b/apps/plugins/imageviewer/imageviewer.h | |||
@@ -58,6 +58,7 @@ enum { | |||
58 | 58 | ||
59 | ZOOM_IN, | 59 | ZOOM_IN, |
60 | ZOOM_OUT, | 60 | ZOOM_OUT, |
61 | NEXT_FRAME, | ||
61 | }; | 62 | }; |
62 | 63 | ||
63 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && defined(HAVE_DISK_STORAGE) | 64 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && defined(HAVE_DISK_STORAGE) |
@@ -82,6 +83,8 @@ struct image_info { | |||
82 | int x_size, y_size; /* set size of loaded image in load_image(). */ | 83 | int x_size, y_size; /* set size of loaded image in load_image(). */ |
83 | int width, height; /* set size of resized image in get_image(). */ | 84 | int width, height; /* set size of resized image in get_image(). */ |
84 | int x, y; /* display position */ | 85 | int x, y; /* display position */ |
86 | int frames_count; /* number of subframes */ | ||
87 | int delay; /* delay expressed in ticks between frames */ | ||
85 | void *data; /* use freely in decoder. not touched in ui. */ | 88 | void *data; /* use freely in decoder. not touched in ui. */ |
86 | }; | 89 | }; |
87 | 90 | ||
@@ -115,6 +118,7 @@ struct image_decoder { | |||
115 | /* return needed size of buffer to store downscaled image by ds. | 118 | /* return needed size of buffer to store downscaled image by ds. |
116 | * this is used to calculate min downscale. */ | 119 | * this is used to calculate min downscale. */ |
117 | int (*img_mem)(int ds); | 120 | int (*img_mem)(int ds); |
121 | |||
118 | /* load image from filename. use the passed buffer to store loaded, decoded | 122 | /* load image from filename. use the passed buffer to store loaded, decoded |
119 | * or resized image later, so save it to local variables if needed. | 123 | * or resized image later, so save it to local variables if needed. |
120 | * set width and height of info properly. also, set buf_size to remaining | 124 | * set width and height of info properly. also, set buf_size to remaining |
@@ -125,7 +129,8 @@ struct image_decoder { | |||
125 | /* downscale loaded image by ds. use the buffer passed to load_image to | 129 | /* downscale loaded image by ds. use the buffer passed to load_image to |
126 | * reszie image and/or store resized image. | 130 | * reszie image and/or store resized image. |
127 | * return PLUGIN_ERROR for error. ui will skip to next image. */ | 131 | * return PLUGIN_ERROR for error. ui will skip to next image. */ |
128 | int (*get_image)(struct image_info *info, int ds); | 132 | int (*get_image)(struct image_info *info, int frame, int ds); |
133 | |||
129 | /* draw part of image */ | 134 | /* draw part of image */ |
130 | void (*draw_image_rect)(struct image_info *info, | 135 | void (*draw_image_rect)(struct image_info *info, |
131 | int x, int y, int width, int height); | 136 | int x, int y, int width, int height); |