lcd-m6sp.c: remove \r
[kugel-rb.git] / apps / plugins / imageviewer / imageviewer.h
blob79ac5ed9f1081032092505019ffa29fea81f7aae
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * user intereface of image viewers (jpeg, png, etc.)
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef _IMGVIEW_IMGVIEW_H
23 #define _IMGVIEW_IMGVIEW_H
25 #include "plugin.h"
27 /* variable button definitions */
28 #if CONFIG_KEYPAD == RECORDER_PAD
29 #define IMGVIEW_ZOOM_IN BUTTON_PLAY
30 #define IMGVIEW_ZOOM_OUT BUTTON_ON
31 #define IMGVIEW_UP BUTTON_UP
32 #define IMGVIEW_DOWN BUTTON_DOWN
33 #define IMGVIEW_LEFT BUTTON_LEFT
34 #define IMGVIEW_RIGHT BUTTON_RIGHT
35 #define IMGVIEW_NEXT BUTTON_F3
36 #define IMGVIEW_PREVIOUS BUTTON_F2
37 #define IMGVIEW_MENU BUTTON_OFF
39 #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
40 #define IMGVIEW_ZOOM_IN BUTTON_SELECT
41 #define IMGVIEW_ZOOM_OUT BUTTON_ON
42 #define IMGVIEW_UP BUTTON_UP
43 #define IMGVIEW_DOWN BUTTON_DOWN
44 #define IMGVIEW_LEFT BUTTON_LEFT
45 #define IMGVIEW_RIGHT BUTTON_RIGHT
46 #define IMGVIEW_NEXT BUTTON_F3
47 #define IMGVIEW_PREVIOUS BUTTON_F2
48 #define IMGVIEW_MENU BUTTON_OFF
50 #elif CONFIG_KEYPAD == ONDIO_PAD
51 #define IMGVIEW_ZOOM_PRE BUTTON_MENU
52 #define IMGVIEW_ZOOM_IN (BUTTON_MENU | BUTTON_REL)
53 #define IMGVIEW_ZOOM_OUT (BUTTON_MENU | BUTTON_DOWN)
54 #define IMGVIEW_UP BUTTON_UP
55 #define IMGVIEW_DOWN BUTTON_DOWN
56 #define IMGVIEW_LEFT BUTTON_LEFT
57 #define IMGVIEW_RIGHT BUTTON_RIGHT
58 #define IMGVIEW_NEXT (BUTTON_MENU | BUTTON_RIGHT)
59 #define IMGVIEW_PREVIOUS (BUTTON_MENU | BUTTON_LEFT)
60 #define IMGVIEW_MENU BUTTON_OFF
62 #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
63 (CONFIG_KEYPAD == IRIVER_H300_PAD)
64 #define IMGVIEW_ZOOM_IN BUTTON_SELECT
65 #define IMGVIEW_ZOOM_OUT BUTTON_MODE
66 #define IMGVIEW_UP BUTTON_UP
67 #define IMGVIEW_DOWN BUTTON_DOWN
68 #define IMGVIEW_LEFT BUTTON_LEFT
69 #define IMGVIEW_RIGHT BUTTON_RIGHT
70 #if (CONFIG_KEYPAD == IRIVER_H100_PAD)
71 #define IMGVIEW_NEXT BUTTON_ON
72 #define IMGVIEW_PREVIOUS BUTTON_REC
73 #else
74 #define IMGVIEW_NEXT BUTTON_REC
75 #define IMGVIEW_PREVIOUS BUTTON_ON
76 #endif
77 #define IMGVIEW_MENU BUTTON_OFF
78 #define IMGVIEW_RC_MENU BUTTON_RC_STOP
80 #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
81 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
82 #define IMGVIEW_ZOOM_IN BUTTON_SCROLL_FWD
83 #define IMGVIEW_ZOOM_OUT BUTTON_SCROLL_BACK
84 #define IMGVIEW_UP BUTTON_MENU
85 #define IMGVIEW_DOWN BUTTON_PLAY
86 #define IMGVIEW_LEFT BUTTON_LEFT
87 #define IMGVIEW_RIGHT BUTTON_RIGHT
88 #define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT)
89 #define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT)
90 #define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU)
91 #define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY)
93 #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
94 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
95 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
96 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
97 #define IMGVIEW_UP BUTTON_UP
98 #define IMGVIEW_DOWN BUTTON_DOWN
99 #define IMGVIEW_LEFT BUTTON_LEFT
100 #define IMGVIEW_RIGHT BUTTON_RIGHT
101 #define IMGVIEW_NEXT BUTTON_PLAY
102 #define IMGVIEW_PREVIOUS BUTTON_REC
103 #define IMGVIEW_MENU BUTTON_POWER
105 #elif CONFIG_KEYPAD == GIGABEAT_PAD
106 #define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
107 #define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
108 #define IMGVIEW_UP BUTTON_UP
109 #define IMGVIEW_DOWN BUTTON_DOWN
110 #define IMGVIEW_LEFT BUTTON_LEFT
111 #define IMGVIEW_RIGHT BUTTON_RIGHT
112 #define IMGVIEW_NEXT (BUTTON_A | BUTTON_RIGHT)
113 #define IMGVIEW_PREVIOUS (BUTTON_A | BUTTON_LEFT)
114 #define IMGVIEW_MENU BUTTON_MENU
115 #define IMGVIEW_QUIT BUTTON_POWER
117 #elif CONFIG_KEYPAD == SANSA_E200_PAD
118 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
119 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
120 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
121 #define IMGVIEW_UP BUTTON_UP
122 #define IMGVIEW_DOWN BUTTON_DOWN
123 #define IMGVIEW_LEFT BUTTON_LEFT
124 #define IMGVIEW_RIGHT BUTTON_RIGHT
125 #define IMGVIEW_NEXT BUTTON_SCROLL_FWD
126 #define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
127 #define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
128 #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
129 #define IMGVIEW_MENU BUTTON_POWER
130 #define IMGVIEW_SLIDE_SHOW BUTTON_REC
132 #elif CONFIG_KEYPAD == SANSA_FUZE_PAD
133 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
134 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
135 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
136 #define IMGVIEW_UP BUTTON_UP
137 #define IMGVIEW_DOWN BUTTON_DOWN
138 #define IMGVIEW_LEFT BUTTON_LEFT
139 #define IMGVIEW_RIGHT BUTTON_RIGHT
140 #define IMGVIEW_NEXT BUTTON_SCROLL_FWD
141 #define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
142 #define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
143 #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
144 #define IMGVIEW_MENU (BUTTON_HOME|BUTTON_REPEAT)
146 #elif CONFIG_KEYPAD == SANSA_C200_PAD
147 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
148 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
149 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
150 #define IMGVIEW_UP BUTTON_UP
151 #define IMGVIEW_DOWN BUTTON_DOWN
152 #define IMGVIEW_LEFT BUTTON_LEFT
153 #define IMGVIEW_RIGHT BUTTON_RIGHT
154 #define IMGVIEW_NEXT BUTTON_VOL_UP
155 #define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
156 #define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
157 #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
158 #define IMGVIEW_MENU BUTTON_POWER
159 #define IMGVIEW_SLIDE_SHOW BUTTON_REC
161 #elif CONFIG_KEYPAD == SANSA_CLIP_PAD
162 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
163 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
164 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
165 #define IMGVIEW_UP BUTTON_UP
166 #define IMGVIEW_DOWN BUTTON_DOWN
167 #define IMGVIEW_LEFT BUTTON_LEFT
168 #define IMGVIEW_RIGHT BUTTON_RIGHT
169 #define IMGVIEW_NEXT BUTTON_VOL_UP
170 #define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
171 #define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
172 #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
173 #define IMGVIEW_MENU BUTTON_POWER
174 #define IMGVIEW_SLIDE_SHOW BUTTON_HOME
176 #elif CONFIG_KEYPAD == SANSA_M200_PAD
177 #define IMGVIEW_ZOOM_PRE BUTTON_SELECT
178 #define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
179 #define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
180 #define IMGVIEW_UP BUTTON_UP
181 #define IMGVIEW_DOWN BUTTON_DOWN
182 #define IMGVIEW_LEFT BUTTON_LEFT
183 #define IMGVIEW_RIGHT BUTTON_RIGHT
184 #define IMGVIEW_NEXT BUTTON_VOL_UP
185 #define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
186 #define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
187 #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
188 #define IMGVIEW_MENU BUTTON_POWER
189 #define IMGVIEW_SLIDE_SHOW (BUTTON_SELECT | BUTTON_UP)
191 #elif CONFIG_KEYPAD == IRIVER_H10_PAD
192 #define IMGVIEW_ZOOM_PRE BUTTON_PLAY
193 #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
194 #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
195 #define IMGVIEW_UP BUTTON_SCROLL_UP
196 #define IMGVIEW_DOWN BUTTON_SCROLL_DOWN
197 #define IMGVIEW_LEFT BUTTON_LEFT
198 #define IMGVIEW_RIGHT BUTTON_RIGHT
199 #define IMGVIEW_NEXT BUTTON_FF
200 #define IMGVIEW_PREVIOUS BUTTON_REW
201 #define IMGVIEW_MENU BUTTON_POWER
203 #elif CONFIG_KEYPAD == MROBE500_PAD
204 #define IMGVIEW_MENU BUTTON_POWER
206 #elif CONFIG_KEYPAD == GIGABEAT_S_PAD
207 #define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
208 #define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
209 #define IMGVIEW_UP BUTTON_UP
210 #define IMGVIEW_DOWN BUTTON_DOWN
211 #define IMGVIEW_LEFT BUTTON_LEFT
212 #define IMGVIEW_RIGHT BUTTON_RIGHT
213 #define IMGVIEW_NEXT BUTTON_NEXT
214 #define IMGVIEW_PREVIOUS BUTTON_PREV
215 #define IMGVIEW_MENU BUTTON_MENU
216 #define IMGVIEW_QUIT BUTTON_BACK
218 #elif CONFIG_KEYPAD == MROBE100_PAD
219 #define IMGVIEW_ZOOM_IN BUTTON_SELECT
220 #define IMGVIEW_ZOOM_OUT BUTTON_PLAY
221 #define IMGVIEW_UP BUTTON_UP
222 #define IMGVIEW_DOWN BUTTON_DOWN
223 #define IMGVIEW_LEFT BUTTON_LEFT
224 #define IMGVIEW_RIGHT BUTTON_RIGHT
225 #define IMGVIEW_NEXT (BUTTON_DISPLAY | BUTTON_RIGHT)
226 #define IMGVIEW_PREVIOUS (BUTTON_DISPLAY | BUTTON_LEFT)
227 #define IMGVIEW_MENU BUTTON_MENU
228 #define IMGVIEW_QUIT BUTTON_POWER
230 #elif CONFIG_KEYPAD == IAUDIO_M3_PAD
231 #define IMGVIEW_ZOOM_PRE BUTTON_RC_PLAY
232 #define IMGVIEW_ZOOM_IN (BUTTON_RC_PLAY|BUTTON_REL)
233 #define IMGVIEW_ZOOM_OUT (BUTTON_RC_PLAY|BUTTON_REPEAT)
234 #define IMGVIEW_UP BUTTON_RC_VOL_UP
235 #define IMGVIEW_DOWN BUTTON_RC_VOL_DOWN
236 #define IMGVIEW_LEFT BUTTON_RC_REW
237 #define IMGVIEW_RIGHT BUTTON_RC_FF
238 #define IMGVIEW_NEXT BUTTON_RC_MODE
239 #define IMGVIEW_PREVIOUS BUTTON_RC_MENU
240 #define IMGVIEW_MENU BUTTON_RC_REC
242 #elif CONFIG_KEYPAD == COWON_D2_PAD
244 #elif CONFIG_KEYPAD == IAUDIO67_PAD
245 #define IMGVIEW_ZOOM_IN BUTTON_VOLUP
246 #define IMGVIEW_ZOOM_OUT BUTTON_VOLDOWN
247 #define IMGVIEW_UP BUTTON_STOP
248 #define IMGVIEW_DOWN BUTTON_PLAY
249 #define IMGVIEW_LEFT BUTTON_LEFT
250 #define IMGVIEW_RIGHT BUTTON_RIGHT
251 #define IMGVIEW_NEXT (BUTTON_PLAY|BUTTON_VOLUP)
252 #define IMGVIEW_PREVIOUS (BUTTON_PLAY|BUTTON_VOLDOWN)
253 #define IMGVIEW_MENU BUTTON_MENU
255 #elif CONFIG_KEYPAD == CREATIVEZVM_PAD
257 #define IMGVIEW_ZOOM_IN BUTTON_PLAY
258 #define IMGVIEW_ZOOM_OUT BUTTON_CUSTOM
259 #define IMGVIEW_UP BUTTON_UP
260 #define IMGVIEW_DOWN BUTTON_DOWN
261 #define IMGVIEW_LEFT BUTTON_LEFT
262 #define IMGVIEW_RIGHT BUTTON_RIGHT
263 #define IMGVIEW_NEXT BUTTON_SELECT
264 #define IMGVIEW_PREVIOUS BUTTON_BACK
265 #define IMGVIEW_MENU BUTTON_MENU
267 #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
268 #define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
269 #define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
270 #define IMGVIEW_UP BUTTON_UP
271 #define IMGVIEW_DOWN BUTTON_DOWN
272 #define IMGVIEW_LEFT BUTTON_LEFT
273 #define IMGVIEW_RIGHT BUTTON_RIGHT
274 #define IMGVIEW_NEXT BUTTON_VIEW
275 #define IMGVIEW_PREVIOUS BUTTON_PLAYLIST
276 #define IMGVIEW_MENU BUTTON_MENU
277 #define IMGVIEW_QUIT BUTTON_POWER
279 #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
280 #define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
281 #define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
282 #define IMGVIEW_UP BUTTON_UP
283 #define IMGVIEW_DOWN BUTTON_DOWN
284 #define IMGVIEW_LEFT BUTTON_PREV
285 #define IMGVIEW_RIGHT BUTTON_NEXT
286 #define IMGVIEW_NEXT BUTTON_RIGHT
287 #define IMGVIEW_PREVIOUS BUTTON_LEFT
288 #define IMGVIEW_MENU BUTTON_MENU
289 #define IMGVIEW_QUIT BUTTON_POWER
291 #elif CONFIG_KEYPAD == ONDAVX747_PAD
292 #elif CONFIG_KEYPAD == ONDAVX777_PAD
294 #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
295 #define IMGVIEW_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
296 #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY|BUTTON_DOWN)
297 #define IMGVIEW_UP BUTTON_UP
298 #define IMGVIEW_DOWN BUTTON_DOWN
299 #define IMGVIEW_LEFT BUTTON_LEFT
300 #define IMGVIEW_RIGHT BUTTON_RIGHT
301 #define IMGVIEW_NEXT BUTTON_FFWD
302 #define IMGVIEW_PREVIOUS BUTTON_REW
303 #define IMGVIEW_MENU_PRE BUTTON_PLAY
304 #define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REL)
305 #define IMGVIEW_QUIT BUTTON_REC
307 #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
308 #define IMGVIEW_ZOOM_IN (BUTTON_REC | BUTTON_UP)
309 #define IMGVIEW_ZOOM_OUT (BUTTON_REC | BUTTON_DOWN)
310 #define IMGVIEW_UP BUTTON_UP
311 #define IMGVIEW_DOWN BUTTON_DOWN
312 #define IMGVIEW_LEFT BUTTON_PREV
313 #define IMGVIEW_RIGHT BUTTON_NEXT
314 #define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
315 #define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
316 #define IMGVIEW_MENU BUTTON_MENU
317 #define IMGVIEW_QUIT BUTTON_CANCEL
319 #elif CONFIG_KEYPAD == MPIO_HD200_PAD
320 #define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP)
321 #define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN)
322 #define IMGVIEW_UP BUTTON_PREV
323 #define IMGVIEW_DOWN BUTTON_NEXT
324 #define IMGVIEW_LEFT BUTTON_VOL_DOWN
325 #define IMGVIEW_RIGHT BUTTON_VOL_UP
326 #define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
327 #define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
328 #define IMGVIEW_MENU BUTTON_SELECT
329 #define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY)
331 #else
332 #error No keymap defined!
333 #endif
335 #ifdef HAVE_TOUCHSCREEN
336 #ifndef IMGVIEW_UP
337 #define IMGVIEW_UP BUTTON_TOPMIDDLE
338 #endif
339 #ifndef IMGVIEW_DOWN
340 #define IMGVIEW_DOWN BUTTON_BOTTOMMIDDLE
341 #endif
342 #ifndef IMGVIEW_LEFT
343 #define IMGVIEW_LEFT BUTTON_MIDLEFT
344 #endif
345 #ifndef IMGVIEW_RIGHT
346 #define IMGVIEW_RIGHT BUTTON_MIDRIGHT
347 #endif
348 #ifndef IMGVIEW_ZOOM_IN
349 #define IMGVIEW_ZOOM_IN BUTTON_TOPRIGHT
350 #endif
351 #ifndef IMGVIEW_ZOOM_OUT
352 #define IMGVIEW_ZOOM_OUT BUTTON_TOPLEFT
353 #endif
354 #ifndef IMGVIEW_MENU
355 #define IMGVIEW_MENU (BUTTON_CENTER|BUTTON_REL)
356 #endif
357 #ifndef IMGVIEW_NEXT
358 #define IMGVIEW_NEXT BUTTON_BOTTOMRIGHT
359 #endif
360 #ifndef IMGVIEW_PREVIOUS
361 #define IMGVIEW_PREVIOUS BUTTON_BOTTOMLEFT
362 #endif
363 #endif
365 /* different graphics libraries */
366 #if LCD_DEPTH < 8
367 #define USEGSLIB
368 #include <lib/grey.h>
369 #else
370 #include <lib/xlcd.h>
371 #endif
373 #include <lib/mylcd.h>
375 /* Min memory allowing us to use the plugin buffer
376 * and thus not stopping the music
377 * *Very* rough estimation:
378 * Max 10 000 dir entries * 4bytes/entry (char **) = 40000 bytes
379 * + 30k code size = 70 000
380 * + 50k min for image = 120 000
382 #define MIN_MEM 120000
384 /* State code for output with return. */
385 #define PLUGIN_OTHER 10
386 #define PLUGIN_ABORT 11
387 #define PLUGIN_OUTOFMEM 12
389 #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && defined(HAVE_DISK_STORAGE)
390 #define DISK_SPINDOWN
391 #endif
392 #if PLUGIN_BUFFER_SIZE >= MIN_MEM
393 #define USE_PLUG_BUF
394 #endif
396 /* Settings. jpeg needs these */
397 struct imgview_settings
399 /* include all settings for varias decoders as using same setting file. */
400 #ifdef HAVE_LCD_COLOR
401 int jpeg_colour_mode;
402 int jpeg_dither_mode;
403 #endif
404 int ss_timeout;
407 /* structure passed to decoder. */
408 struct image_info {
409 int x_size, y_size; /* set size of loaded image in load_image(). */
410 int width, height; /* set size of resized image in get_image(). */
411 int x, y; /* display position */
412 void *data; /* use freely in decoder. not touched in ui. */
415 /* callback updating a progress meter while image decoding */
416 extern void cb_progress(int current, int total);
418 extern struct imgview_settings settings;
419 extern bool slideshow_enabled;
420 extern bool running_slideshow;
421 #ifdef DISK_SPINDOWN
422 extern bool immediate_ata_off;
423 #endif
424 #ifdef USE_PLUG_BUF
425 extern bool plug_buf;
426 #endif
428 /* functions need to be implemented in each image decoders. */
429 /* return true if ext is supported by the decoder. */
430 extern bool img_ext(const char *ext);
431 /* return needed size of buffer to store downscaled image by ds */
432 extern int img_mem(int ds);
433 /* load image from filename. set width and height of info properly. also, set
434 * buf_size to remaining size of buf after load image. it is used to caluclate
435 * min downscale. */
436 extern int load_image(char *filename, struct image_info *info,
437 unsigned char *buf, ssize_t *buf_size);
438 /* downscale loaded image by ds. note that buf to store reszied image is not
439 * provided. return PLUGIN_ERROR for error. ui will skip to next image. */
440 extern int get_image(struct image_info *info, int ds);
441 /* draw part of image */
442 extern void draw_image_rect(struct image_info *info,
443 int x, int y, int width, int height);
445 #endif /* _IMGVIEW_IMGVIEW_H */