diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-10 18:28:31 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-06-10 18:28:31 +0000 |
commit | 0acf34fc2dac40aca238d77a5813a4dc91de340f (patch) | |
tree | d0d6de2712645ef04f396fb055f2304068f1ab6d /apps/plugins/ppmviewer.c | |
parent | 05ca8978c4fe965a619f016d79aaf6955767abf9 (diff) | |
download | rockbox-0acf34fc2dac40aca238d77a5813a4dc91de340f.tar.gz rockbox-0acf34fc2dac40aca238d77a5813a4dc91de340f.zip |
ppmviewer: steal from audiobuffer for large arrays
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26744 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/ppmviewer.c')
-rw-r--r-- | apps/plugins/ppmviewer.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/apps/plugins/ppmviewer.c b/apps/plugins/ppmviewer.c index b186393d05..af66b58736 100644 --- a/apps/plugins/ppmviewer.c +++ b/apps/plugins/ppmviewer.c | |||
@@ -38,8 +38,7 @@ PLUGIN_HEADER | |||
38 | 38 | ||
39 | #define ppm_error(...) rb->splashf(HZ*2, __VA_ARGS__ ) | 39 | #define ppm_error(...) rb->splashf(HZ*2, __VA_ARGS__ ) |
40 | 40 | ||
41 | static fb_data buffer[PPM_MAXSIZE]; | 41 | static fb_data *buffer, *lcd_buf; |
42 | static fb_data lcd_buf[LCD_WIDTH * LCD_HEIGHT]; | ||
43 | 42 | ||
44 | int ppm_read_magic_number(int fd) | 43 | int ppm_read_magic_number(int fd) |
45 | { | 44 | { |
@@ -294,6 +293,19 @@ enum plugin_status plugin_start(const void* parameter) | |||
294 | 293 | ||
295 | if(!parameter) return PLUGIN_ERROR; | 294 | if(!parameter) return PLUGIN_ERROR; |
296 | 295 | ||
296 | size_t buffer_size; | ||
297 | char *audiobuf = rb->plugin_get_audio_buffer(&buffer_size); | ||
298 | if (buffer_size < PPM_MAXSIZE + LCD_WIDTH * LCD_HEIGHT + 1) | ||
299 | { | ||
300 | rb->splash(HZ, "Not enough memory"); | ||
301 | return PLUGIN_ERROR; | ||
302 | } | ||
303 | |||
304 | /* align on 16 bits */ | ||
305 | audiobuf = (char *)(((uintptr_t)audiobuf + 1) & ~1); | ||
306 | buffer = (fb_data *)audiobuf; | ||
307 | lcd_buf = (fb_data*) (audiobuf + PPM_MAXSIZE); | ||
308 | |||
297 | rb->strcpy(filename, parameter); | 309 | rb->strcpy(filename, parameter); |
298 | 310 | ||
299 | fd = rb->open(filename, O_RDONLY); | 311 | fd = rb->open(filename, O_RDONLY); |