1
0
Fork 0
forked from len0rd/rockbox

Make JPEG and BMP scaler optional with HAVE_JPEG and HAVE_BMP_SCALING, both defined for all targets that have HAVE_ALBUMART. Disable JPEG in PictureFlow and pluginlib album art search with 32KiB plugin buffer until PictureFlow

gets overlay support.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20851 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Andrew Mahone 2009-05-04 15:46:41 +00:00
parent dfb24d6cee
commit 20f76d61ae
46 changed files with 318 additions and 79 deletions

View file

@ -5,15 +5,13 @@ fixedpoint.c
playback_control.c
rgb_hsv.c
buflib.c
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
/*
The scaler is not provided in core on mono targets, but is built in
pluginlib for use with greylib overlay output
*/
#if LCD_DEPTH == 1
#if !defined(HAVE_BMP_SCALING) || !defined(HAVE_JPEG)
pluginlib_resize.c
#endif
#ifndef HAVE_JPEG
pluginlib_jpeg_load.c
#endif
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH < 4)
grey_core.c
grey_draw.c
grey_parm.c
@ -45,7 +43,7 @@ read_image.c
#ifdef HAVE_LCD_COLOR
bmp_smooth_scale.c
#endif
#ifndef HAVE_ALBUMART
#if !defined(HAVE_ALBUMART) || !defined(HAVE_JPEG)
pluginlib_albumart.c
#endif
#endif

View file

@ -30,24 +30,27 @@
* but can easily be implement in pluginlib as long as the database is
* available.
*/
#ifdef HAVE_ALBUMART
#if defined(HAVE_ALBUMART) && defined(HAVE_JPEG)
#define search_albumart_files rb->search_albumart_files
#endif
/* This should only be used when loading scaled bitmaps, or using custom output
* plugins. The pluginlib loader does not support loading bitmaps unscaled in
* native format, so rb->read_bmp_file should always be used directly to load
* such images.
* plugins. A native output plugin for the scaler is available as format_native
* on targets with LCD_DEPTH > 1
*/
#if LCD_DEPTH > 1
#ifdef HAVE_BMP_SCALING
#define scaled_read_bmp_file rb->read_bmp_file
#define scaled_read_bmp_fd rb->read_bmp_fd
#define read_jpeg_file rb->read_jpeg_file
#define read_jpeg_fd rb->read_jpeg_fd
#else
#define scaled_read_bmp_file read_bmp_file
#define scaled_read_bmp_fd read_bmp_fd
#endif
#ifdef HAVE_JPEG
#define read_jpeg_file rb->read_jpeg_file
#define read_jpeg_fd rb->read_jpeg_fd
#else
#endif
#endif

View file

@ -122,10 +122,16 @@ void simple_resize_bitmap(struct bitmap *src, struct bitmap *dst)
}
}
#else /* LCD_DEPTH == 1 */
#endif /* LCD_DEPTH > 1 */
#ifndef HAVE_BMP_SCALING
#include "wrappers.h"
/* import the core bmp loader */
#include "../../recorder/bmp.c"
#include "recorder/bmp.c"
#else
/* the full 16x16 Bayer dither matrix may be calculated quickly with this table
*/
const unsigned char dither_table[16] =
{ 0,192, 48,240, 12,204, 60,252, 3,195, 51,243, 15,207, 63,255 };
#endif

View file

@ -28,12 +28,10 @@
int read_image_file(const char* filename, struct bitmap *bm, int maxsize,
int format, const struct custom_format *cformat)
{
#if LCD_DEPTH > 1
int namelen = rb->strlen(filename);
if (rb->strcmp(filename + namelen - 4, ".bmp"))
return read_jpeg_file(filename, bm, maxsize, format, cformat);
else
#endif
return scaled_read_bmp_file(filename, bm, maxsize, format, cformat);
}
@ -46,11 +44,9 @@ int read_image_file_offset(int offset, const char* filename, struct bitmap *bm,
return fd;
if (offset != rb->lseek(fd, offset, SEEK_SET))
return -1;
#if LCD_DEPTH > 1
int namelen = rb->strlen(filename);
if (rb->strcmp(filename + namelen - 4, ".bmp"))
return read_jpeg_fd(fd, bm, maxsize, format, cformat);
else
#endif
return scaled_read_bmp_fd(fd, bm, maxsize, format, cformat);
}