summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-06-04 13:22:50 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-06-04 13:22:50 +0000
commite63e84a5dfb18e9b7eca8dabcd2d58ceac342529 (patch)
tree25989313fa6d7ea9f59ae8bdb1e56fe69f5e1a24 /apps
parentbc26fe7a96d6f5e443003cb871dcb4bfba525352 (diff)
downloadrockbox-e63e84a5dfb18e9b7eca8dabcd2d58ceac342529.tar.gz
rockbox-e63e84a5dfb18e9b7eca8dabcd2d58ceac342529.tar.bz2
rockbox-e63e84a5dfb18e9b7eca8dabcd2d58ceac342529.zip
Convert some more stuff to mylcd_ and support pgfx as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26543 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/cube.c44
-rw-r--r--apps/plugins/fft/fft.c3
-rw-r--r--apps/plugins/fractals/fractal.c30
-rw-r--r--apps/plugins/fractals/fractal_sets.h2
-rw-r--r--apps/plugins/imageviewer/bmp/bmp.c2
-rw-r--r--apps/plugins/imageviewer/imageviewer.c22
-rw-r--r--apps/plugins/imageviewer/imageviewer.h8
-rw-r--r--apps/plugins/imageviewer/jpeg/jpeg.c2
-rw-r--r--apps/plugins/lib/mylcd.h91
-rw-r--r--apps/plugins/mosaique.c23
-rw-r--r--apps/plugins/pictureflow/pictureflow.c43
-rw-r--r--apps/plugins/rockblox.c21
-rw-r--r--apps/plugins/snow.c11
-rw-r--r--apps/plugins/test_core_jpeg.c9
-rw-r--r--apps/plugins/test_gfx.c116
-rw-r--r--apps/plugins/test_mem_jpeg.c9
16 files changed, 223 insertions, 213 deletions
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 5c6f9934eb..2b1e00d690 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -21,8 +21,14 @@
*
***************************************************************************/
#include "plugin.h"
-#include "lib/grey.h"
#include "lib/playergfx.h"
+#if LCD_DEPTH > 1
+#include "lib/mylcd.h" /* MYLCD_CFG_RB_XLCD or MYLCD_CFG_PGFX */
+#include "lib/grey.h"
+#else
+#include "lib/grey.h"
+#include "lib/mylcd.h" /* MYLCD_CFG_GREYLIB or MYLCD_CFG_PGFX */
+#endif
#include "lib/xlcd.h"
#include "lib/fixedpoint.h"
@@ -339,15 +345,9 @@ static struct my_lcd lcdfuncs; /* initialised at runtime */
static struct my_lcd *mylcd = &greyfuncs;
#define MYLCD(fn) mylcd->fn
-#define MY_FILLTRIANGLE(x1, y1, x2, y2, x3, y3) grey_filltriangle(x1, y1, x2, y2, x3, y3)
-#define MY_SET_FOREGROUND(fg) grey_set_foreground(fg)
-#define MY_GET_FOREGROUND() grey_get_foreground()
#else
#define MYLCD(fn) rb->lcd_ ## fn
-#define MY_FILLTRIANGLE(x1, y1, x2, y2, x3, y3) xlcd_filltriangle(x1, y1, x2, y2, x3, y3)
-#define MY_SET_FOREGROUND(fg) rb->lcd_set_foreground(fg)
-#define MY_GET_FOREGROUND() rb->lcd_get_foreground()
#endif
#if CONFIG_LCD == LCD_SSD1815
@@ -540,7 +540,7 @@ static void cube_draw(void)
#if LCD_DEPTH > 1 || defined(USEGSLIB)
case SOLID:
- old_foreground = MY_GET_FOREGROUND();
+ old_foreground = mylcd_get_foreground();
for (i = 0; i < 6; i++)
{
/* backface culling; if the shape winds counter-clockwise, we are
@@ -552,22 +552,22 @@ static void cube_draw(void)
* (point2D[faces[i].corner[2]].x - point2D[faces[i].corner[1]].x))
continue;
- MY_SET_FOREGROUND(face_colors[i]);
- MY_FILLTRIANGLE(point2D[faces[i].corner[0]].x,
- point2D[faces[i].corner[0]].y,
- point2D[faces[i].corner[1]].x,
- point2D[faces[i].corner[1]].y,
- point2D[faces[i].corner[2]].x,
- point2D[faces[i].corner[2]].y);
- MY_FILLTRIANGLE(point2D[faces[i].corner[0]].x,
- point2D[faces[i].corner[0]].y,
- point2D[faces[i].corner[2]].x,
- point2D[faces[i].corner[2]].y,
- point2D[faces[i].corner[3]].x,
- point2D[faces[i].corner[3]].y);
+ mylcd_set_foreground(face_colors[i]);
+ mylcd_filltriangle(point2D[faces[i].corner[0]].x,
+ point2D[faces[i].corner[0]].y,
+ point2D[faces[i].corner[1]].x,
+ point2D[faces[i].corner[1]].y,
+ point2D[faces[i].corner[2]].x,
+ point2D[faces[i].corner[2]].y);
+ mylcd_filltriangle(point2D[faces[i].corner[0]].x,
+ point2D[faces[i].corner[0]].y,
+ point2D[faces[i].corner[2]].x,
+ point2D[faces[i].corner[2]].y,
+ point2D[faces[i].corner[3]].x,
+ point2D[faces[i].corner[3]].y);
}
- MY_SET_FOREGROUND(old_foreground);
+ mylcd_set_foreground(old_foreground);
break;
#endif /* (LCD_DEPTH > 1) || GSLIB */
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index b971a8f92f..e352c1c041 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -22,13 +22,12 @@
#include "lib/helper.h"
#include "lib/xlcd.h"
-#include "lib/mylcd.h"
#include "math.h"
#include "fracmul.h"
-
#ifndef HAVE_LCD_COLOR
#include "lib/grey.h"
#endif
+#include "lib/mylcd.h"
PLUGIN_HEADER
diff --git a/apps/plugins/fractals/fractal.c b/apps/plugins/fractals/fractal.c
index ff768a9516..971ae506ca 100644
--- a/apps/plugins/fractals/fractal.c
+++ b/apps/plugins/fractals/fractal.c
@@ -31,16 +31,6 @@
#include "mandelbrot_set.h"
#ifdef USEGSLIB
-#define MYLCD(fn) grey_ub_ ## fn
-#define MYLCD_UPDATE()
-#define MYXLCD(fn) grey_ub_ ## fn
-#else
-#define MYLCD(fn) rb->lcd_ ## fn
-#define MYLCD_UPDATE() rb->lcd_update();
-#define MYXLCD(fn) xlcd_ ## fn
-#endif
-
-#ifdef USEGSLIB
GREY_INFO_STRUCT
static unsigned char *gbuf;
static size_t gbuf_size = 0;
@@ -143,8 +133,8 @@ enum plugin_status plugin_start(const void* parameter)
switch (redraw)
{
case REDRAW_FULL:
- MYLCD(clear_display)();
- MYLCD_UPDATE();
+ mylcd_ub_clear_display();
+ mylcd_ub_update();
/* fall-through */
case REDRAW_FULL_OVERLAY:
rects_queue_init();
@@ -200,32 +190,32 @@ enum plugin_status plugin_start(const void* parameter)
case FRACTAL_UP:
ops->move(0, +1);
- MYXLCD(scroll_down)(LCD_SHIFT_Y);
- MYLCD_UPDATE();
+ mylcd_ub_scroll_down(LCD_SHIFT_Y);
+ mylcd_ub_update();
if (redraw != REDRAW_FULL)
redraw = rects_move_down() ? REDRAW_FULL : REDRAW_PARTIAL;
break;
case FRACTAL_DOWN:
ops->move(0, -1);
- MYXLCD(scroll_up)(LCD_SHIFT_Y);
- MYLCD_UPDATE();
+ mylcd_ub_scroll_up(LCD_SHIFT_Y);
+ mylcd_ub_update();
if (redraw != REDRAW_FULL)
redraw = rects_move_up() ? REDRAW_FULL : REDRAW_PARTIAL;
break;
case FRACTAL_LEFT:
ops->move(-1, 0);
- MYXLCD(scroll_right)(LCD_SHIFT_X);
- MYLCD_UPDATE();
+ mylcd_ub_scroll_right(LCD_SHIFT_X);
+ mylcd_ub_update();
if (redraw != REDRAW_FULL)
redraw = rects_move_right() ? REDRAW_FULL : REDRAW_PARTIAL;
break;
case FRACTAL_RIGHT:
ops->move(+1, 0);
- MYXLCD(scroll_left)(LCD_SHIFT_X);
- MYLCD_UPDATE();
+ mylcd_ub_scroll_left(LCD_SHIFT_X);
+ mylcd_ub_update();
if (redraw != REDRAW_FULL)
redraw = rects_move_left() ? REDRAW_FULL : REDRAW_PARTIAL;
break;
diff --git a/apps/plugins/fractals/fractal_sets.h b/apps/plugins/fractals/fractal_sets.h
index b2eaa589dc..865517b5b5 100644
--- a/apps/plugins/fractals/fractal_sets.h
+++ b/apps/plugins/fractals/fractal_sets.h
@@ -30,6 +30,8 @@
#include "lib/xlcd.h"
#endif
+#include "lib/mylcd.h"
+
#define DELTA 8 /* Panning moves 1/DELTA of screen */
#define LCD_SHIFT_X (LCD_WIDTH / DELTA)
diff --git a/apps/plugins/imageviewer/bmp/bmp.c b/apps/plugins/imageviewer/bmp/bmp.c
index 1229ac3d35..6b5c4b1759 100644
--- a/apps/plugins/imageviewer/bmp/bmp.c
+++ b/apps/plugins/imageviewer/bmp/bmp.c
@@ -119,7 +119,7 @@ void draw_image_rect(struct image_info *info,
y + MAX(0, (LCD_HEIGHT-info->height)/2),
width, height);
#else
- MYXLCD(gray_bitmap_part)(
+ mylcd_ub_gray_bitmap_part(
pdisp->bitmap, info->x + x, info->y + y, info->width,
x + MAX(0, (LCD_WIDTH-info->width)/2),
y + MAX(0, (LCD_HEIGHT-info->height)/2),
diff --git a/apps/plugins/imageviewer/imageviewer.c b/apps/plugins/imageviewer/imageviewer.c
index ed41719cca..0fd25e7b29 100644
--- a/apps/plugins/imageviewer/imageviewer.c
+++ b/apps/plugins/imageviewer/imageviewer.c
@@ -416,10 +416,10 @@ static void pan_view_right(struct image_info *info)
move = MIN(HSCROLL, info->width - info->x - LCD_WIDTH);
if (move > 0)
{
- MYXLCD(scroll_left)(move); /* scroll left */
+ mylcd_ub_scroll_left(move); /* scroll left */
info->x += move;
draw_image_rect(info, LCD_WIDTH - move, 0, move, info->height-info->y);
- MYLCD_UPDATE();
+ mylcd_ub_update();
}
}
@@ -432,10 +432,10 @@ static void pan_view_left(struct image_info *info)
move = MIN(HSCROLL, info->x);
if (move > 0)
{
- MYXLCD(scroll_right)(move); /* scroll right */
+ mylcd_ub_scroll_right(move); /* scroll right */
info->x -= move;
draw_image_rect(info, 0, 0, move, info->height-info->y);
- MYLCD_UPDATE();
+ mylcd_ub_update();
}
}
@@ -448,7 +448,7 @@ static void pan_view_up(struct image_info *info)
move = MIN(VSCROLL, info->y);
if (move > 0)
{
- MYXLCD(scroll_down)(move); /* scroll down */
+ mylcd_ub_scroll_down(move); /* scroll down */
info->y -= move;
#if defined(HAVE_LCD_COLOR) && defined(JPEG_VIEWER)
if (settings.jpeg_dither_mode == DITHER_DIFFUSION)
@@ -459,7 +459,7 @@ static void pan_view_up(struct image_info *info)
}
#endif
draw_image_rect(info, 0, 0, info->width-info->x, move);
- MYLCD_UPDATE();
+ mylcd_ub_update();
}
}
@@ -472,7 +472,7 @@ static void pan_view_down(struct image_info *info)
move = MIN(VSCROLL, info->height - info->y - LCD_HEIGHT);
if (move > 0)
{
- MYXLCD(scroll_up)(move); /* scroll up */
+ mylcd_ub_scroll_up(move); /* scroll up */
info->y += move;
#if defined(HAVE_LCD_COLOR) && defined(JPEG_VIEWER)
if (settings.jpeg_dither_mode == DITHER_DIFFUSION)
@@ -499,7 +499,7 @@ static void pan_view_down(struct image_info *info)
info->y++;
}
#endif
- MYLCD_UPDATE();
+ mylcd_ub_update();
}
}
@@ -611,7 +611,7 @@ static int scroll_bmp(struct image_info *info)
#else
draw_image_rect(info, 0, 0,
info->width-info->x, info->height-info->y);
- MYLCD_UPDATE();
+ mylcd_ub_update();
#endif
break;
@@ -783,10 +783,10 @@ static int load_and_show(char* filename, struct image_info *info)
rb->lcd_update();
}
- MYLCD(clear_display)();
+ mylcd_ub_clear_display();
draw_image_rect(info, 0, 0,
info->width-info->x, info->height-info->y);
- MYLCD_UPDATE();
+ mylcd_ub_update();
#ifdef USEGSLIB
grey_show(true); /* switch on greyscale overlay */
diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h
index b704701cda..5f22b03e97 100644
--- a/apps/plugins/imageviewer/imageviewer.h
+++ b/apps/plugins/imageviewer/imageviewer.h
@@ -366,16 +366,12 @@
#if LCD_DEPTH < 8
#define USEGSLIB
#include <lib/grey.h>
-#define MYLCD(fn) grey_ub_ ## fn
-#define MYLCD_UPDATE()
-#define MYXLCD(fn) grey_ub_ ## fn
#else
#include <lib/xlcd.h>
-#define MYLCD(fn) rb->lcd_ ## fn
-#define MYLCD_UPDATE() rb->lcd_update();
-#define MYXLCD(fn) xlcd_ ## fn
#endif
+#include <lib/mylcd.h>
+
/* Min memory allowing us to use the plugin buffer
* and thus not stopping the music
* *Very* rough estimation:
diff --git a/apps/plugins/imageviewer/jpeg/jpeg.c b/apps/plugins/imageviewer/jpeg/jpeg.c
index b16ec1c4b1..95e493e7ee 100644
--- a/apps/plugins/imageviewer/jpeg/jpeg.c
+++ b/apps/plugins/imageviewer/jpeg/jpeg.c
@@ -94,7 +94,7 @@ void draw_image_rect(struct image_info *info,
width, height,
settings.jpeg_colour_mode, settings.jpeg_dither_mode);
#else
- MYXLCD(gray_bitmap_part)(
+ mylcd_ub_gray_bitmap_part(
pdisp->bitmap[0], info->x + x, info->y + y, pdisp->stride,
x + MAX(0, (LCD_WIDTH-info->width)/2),
y + MAX(0, (LCD_HEIGHT-info->height)/2),
diff --git a/apps/plugins/lib/mylcd.h b/apps/plugins/lib/mylcd.h
index 8b6223c30b..48e8ca1d47 100644
--- a/apps/plugins/lib/mylcd.h
+++ b/apps/plugins/lib/mylcd.h
@@ -9,7 +9,7 @@
*
* Copyright (c) 2010 Michael Sevakis
*
- * Helper defines for writing code for both grey and color targets.
+ * Helper defines for writing code for pgfx, grey and color targets.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -24,63 +24,90 @@
#define MYLCD_H
/***
- * Most functions are, other than color depth, equivalent between grey, lcd
- * and xlcd and most of the time the caller need not be concerned with which
- * is actually called, making code nicer to read and maintain.
+ * Most functions are, other than color depth, equivalent between pgfx, grey,
+ * lcd and xlcd and most of the time the caller need not be concerned with
+ * which is actually called, making code nicer to read and maintain.
*
* Unbuffered routines revert to standard rb->lcd_XXXX funtions on color
* targets. On color, mylcd_ub_update_XXXX refer to the proper update
* functions, otherwise they are no-ops.
+ *
+ * lib/playergfx.h or lib/grey.h should be included before including this
+ * header. For bitmap LCD's, defaults to rb->lcd_XXXX otherwise.
*/
+#if defined (HAVE_LCD_CHARCELLS) && defined(__PGFX_H__)
+#define MYLCD_CFG_PGFX /* using PGFX */
+#define mylcd_(fn) pgfx_##fn
+#define mylcd_ub_(fn) pgfx_##fn
-#ifdef HAVE_LCD_COLOR
-#define mylcd_(fn) rb->lcd_##fn
-#define myxlcd_(fn) xlcd_##fn
-#define mylcd_ub_(fn) rb->lcd_##fn
-#define myxlcd_ub_(fn) xlcd_##fn
-#else
+#elif defined (HAVE_LCD_BITMAP) && (LCD_DEPTH < 8) && defined(__GREY_H__)
+#define MYLCD_CFG_GREYLIB /* using greylib */
#define mylcd_(fn) grey_##fn
#define myxlcd_(fn) grey_##fn
#define mylcd_ub_(fn) grey_ub_##fn
#define myxlcd_ub_(fn) grey_ub_##fn
-#endif
/* Common colors */
-#ifdef HAVE_LCD_COLOR
+#define MYLCD_BLACK GREY_BLACK
+#define MYLCD_DARKGRAY GREY_DARKGRAY
+#define MYLCD_LIGHTGRAY GREY_LIGHTGRAY
+#define MYLCD_WHITE GREY_WHITE
+#define MYLCD_DEFAULT_FG GREY_BLACK
+#define MYLCD_DEFAULT_BG GREY_WHITE
+
+#elif defined (HAVE_LCD_BITMAP)
+#define MYLCD_CFG_RB_XLCD /* using standard (X)LCD routines */
+#define mylcd_(fn) rb->lcd_##fn
+#define myxlcd_(fn) xlcd_##fn
+#define mylcd_ub_(fn) rb->lcd_##fn
+#define myxlcd_ub_(fn) xlcd_##fn
+
+/* Common colors */
#define MYLCD_BLACK LCD_BLACK
#define MYLCD_DARKGRAY LCD_DARKGRAY
#define MYLCD_LIGHTGRAY LCD_LIGHTGRAY
#define MYLCD_WHITE LCD_WHITE
#define MYLCD_DEFAULT_FG LCD_DEFAULT_FG
#define MYLCD_DEFAULT_BG LCD_DEFAULT_BG
+
#else
-#define MYLCD_BLACK GREY_BLACK
-#define MYLCD_DARKGRAY GREY_DARKGRAY
-#define MYLCD_LIGHTGRAY GREY_LIGHTGRAY
-#define MYLCD_WHITE GREY_WHITE
-#define MYLCD_DEFAULT_FG GREY_BLACK
-#define MYLCD_DEFAULT_BG GREY_WHITE
-#endif /* HAVE_LCD_COLOR */
+#error Configuration not supported! Did you forget to include the correct lib header?
+#endif /* end LCD type selection */
/* Update functions */
#define mylcd_update mylcd_(update)
+#ifdef HAVE_LCD_BITMAP
#define mylcd_update_rect mylcd_(update_rect)
-
-/* Update functions - unbuffered : special handling for these */
-#ifdef HAVE_LCD_COLOR
-#define mylcd_ub_update() rb->lcd_update()
-#define mylcd_ub_update_rect(...) rb->lcd_update_rect(__VA_ARGS__)
#else
-/* Still evaluate args like functions */
+static inline void mylcd_update_rect(int x, int y, int w, int h)
+ { (void)x; (void)y; (void)w; (void)h; pgfx_update(); }
+#endif /* HAVE_LCD_BITMAP */
+
+/* Update functions - unbuffered : special handling for these
+ * It is desirable to still evaluate arguments even if there will
+ * be no function call, just in case they have side-effects.
+ */
+#if defined (MYLCD_CFG_PGFX)
+#define mylcd_ub_update pgfx_update
+static inline void mylcd_ub_update_rect(int x, int y, int w, int h)
+ { (void)x; (void)y; (void)w; (void)h; pgfx_update(); }
+
+#elif defined (MYLCD_CFG_GREYLIB)
static inline void mylcd_ub_update(void)
{}
static inline void mylcd_ub_update_rect(int x, int y, int w, int h)
{ (void)x; (void)y; (void)w; (void)h; }
+
+#else /* color or RB default */
+#define mylcd_ub_update rb->lcd_update
+#define mylcd_ub_update_rect rb->lcd_update_rect
#endif
/* Parameter handling */
#define mylcd_set_drawmode mylcd_(set_drawmode)
#define mylcd_get_drawmode mylcd_(get_drawmode)
+
+#ifdef HAVE_LCD_BITMAP
#define mylcd_set_foreground mylcd_(set_foreground)
#define mylcd_get_foreground mylcd_(get_foreground)
#define mylcd_set_background mylcd_(set_background)
@@ -88,6 +115,7 @@ static inline void mylcd_ub_update_rect(int x, int y, int w, int h)
#define mylcd_set_drawinfo mylcd_(set_drawinfo)
#define mylcd_setfont mylcd_(setfont)
#define mylcd_getstringsize mylcd_(getstringsize)
+#endif /* HAVE_LCD_BITMAP */
/* Whole display */
#define mylcd_clear_display mylcd_(clear_display)
@@ -106,37 +134,50 @@ static inline void mylcd_ub_update_rect(int x, int y, int w, int h)
/* Filled Primitives */
#define mylcd_fillrect mylcd_(fillrect)
+#ifdef HAVE_LCD_BITMAP
#define mylcd_filltriangle myxlcd_(filltriangle)
+#endif /* HAVE_LCD_BITMAP */
/* Bitmaps */
#define mylcd_mono_bitmap_part mylcd_(mono_bitmap_part)
#define mylcd_mono_bitmap mylcd_(mono_bitmap)
+
+#ifdef HAVE_LCD_BITMAP
#define mylcd_gray_bitmap_part myxlcd_(gray_bitmap_part)
#define mylcd_gray_bitmap myxlcd_(gray_bitmap)
#if 0 /* possible, but not implemented in greylib */
#define mylcd_color_bitmap_part myxlcd_(color_bitmap_part)
#define mylcd_color_bitmap myxlcd_(color_bitmap)
#endif
+#endif /* HAVE_LCD_BITMAP */
/* Bitmaps - unbuffered */
+#ifdef HAVE_LCD_BITMAP
#define mylcd_ub_gray_bitmap_part myxlcd_ub_(gray_bitmap_part)
#define mylcd_ub_gray_bitmap myxlcd_ub_(gray_bitmap)
+#endif /* HAVE_LCD_BITMAP */
/* Text */
/* lcd_putsxyofs is static'ed in the core for now on color */
+#ifdef HAVE_LCD_BITMAP
#define mylcd_putsxyofs mylcd_(putsxyofs)
#define mylcd_putsxy mylcd_(putsxy)
+#endif /* HAVE_LCD_BITMAP */
/* Scrolling */
+#ifdef HAVE_LCD_BITMAP
#define mylcd_scroll_left myxlcd_(scroll_left)
#define mylcd_scroll_right myxlcd_(scroll_right)
#define mylcd_scroll_up myxlcd_(scroll_up)
#define mylcd_scroll_down myxlcd_(scroll_down)
+#endif /* HAVE_LCD_BITMAP */
/* Scrolling - unbuffered */
+#ifdef HAVE_LCD_BITMAP
#define mylcd_ub_scroll_left myxlcd_ub_(scroll_left)
#define mylcd_ub_scroll_right myxlcd_ub_(scroll_right)
#define mylcd_ub_scroll_up myxlcd_ub_(scroll_up)
#define mylcd_ub_scroll_down myxlcd_ub_(scroll_down)
+#endif /* HAVE_LCD_BITMAP */
#endif /* MYLCD_H */
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 6506c85560..43efc27d77 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -20,11 +20,11 @@
**************************************************************************/
#include "plugin.h"
#include "lib/playergfx.h"
+#include "lib/mylcd.h"
PLUGIN_HEADER
#ifdef HAVE_LCD_BITMAP
-#define MYLCD(fn) rb->lcd_ ## fn
#define GFX_X (LCD_WIDTH/2-1)
#define GFX_Y (LCD_HEIGHT/2-1)
#if LCD_WIDTH != LCD_HEIGHT
@@ -35,7 +35,6 @@ PLUGIN_HEADER
#define GFX_HEIGHT (4*GFX_Y/5)
#endif
#else
-#define MYLCD(fn) pgfx_ ## fn
#define GFX_X 9
#define GFX_Y 6
#define GFX_WIDTH 9
@@ -208,8 +207,8 @@ enum plugin_status plugin_start(const void* parameter)
}
pgfx_display(3, 0);
#endif
- MYLCD(clear_display)();
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_clear_display();
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
while (1) {
x+=sx;
@@ -238,11 +237,11 @@ enum plugin_status plugin_start(const void* parameter)
sy = -sy;
}
- MYLCD(fillrect)(GFX_X-x, GFX_Y-y, 2*x+1, 1);
- MYLCD(fillrect)(GFX_X-x, GFX_Y+y, 2*x+1, 1);
- MYLCD(fillrect)(GFX_X-x, GFX_Y-y+1, 1, 2*y-1);
- MYLCD(fillrect)(GFX_X+x, GFX_Y-y+1, 1, 2*y-1);
- MYLCD(update)();
+ mylcd_fillrect(GFX_X-x, GFX_Y-y, 2*x+1, 1);
+ mylcd_fillrect(GFX_X-x, GFX_Y+y, 2*x+1, 1);
+ mylcd_fillrect(GFX_X-x, GFX_Y-y+1, 1, 2*y-1);
+ mylcd_fillrect(GFX_X+x, GFX_Y-y+1, 1, 2*y-1);
+ mylcd_update();
rb->sleep(HZ/timer);
@@ -253,7 +252,7 @@ enum plugin_status plugin_start(const void* parameter)
case MOSAIQUE_RC_QUIT:
#endif
case MOSAIQUE_QUIT:
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
#ifdef HAVE_LCD_CHARCELLS
pgfx_release();
#endif
@@ -271,14 +270,14 @@ enum plugin_status plugin_start(const void* parameter)
sy = rb->rand() % (GFX_HEIGHT/2) + 1;
x=0;
y=0;
- MYLCD(clear_display)();
+ mylcd_clear_display();
break;
default:
if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
{
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
#ifdef HAVE_LCD_CHARCELLS
pgfx_release();
#endif
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index 463f86c394..155b495ebf 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -30,6 +30,7 @@
#include "lib/helper.h"
#include "lib/configfile.h"
#include "lib/grey.h"
+#include "lib/mylcd.h"
#include "lib/feature_wrappers.h"
#include "lib/buflib.h"
@@ -176,7 +177,6 @@ const struct button_mapping *pf_contexts[] =
#define USEGSLIB
GREY_INFO_STRUCT
#define LCD_BUF _grey_info.buffer
-#define MYLCD(fn) grey_ ## fn
#define G_PIX(r,g,b) \
(77 * (unsigned)(r) + 150 * (unsigned)(g) + 29 * (unsigned)(b)) / 256
#define N_PIX(r,g,b) N_BRIGHT(G_PIX(r,g,b))
@@ -186,7 +186,6 @@ GREY_INFO_STRUCT
typedef unsigned char pix_t;
#else /* LCD_DEPTH >= 8 */
#define LCD_BUF rb->lcd_framebuffer
-#define MYLCD(fn) rb->lcd_ ## fn
#define G_PIX LCD_RGBPACK
#define N_PIX LCD_RGBPACK
#define G_BRIGHT(y) LCD_RGBPACK(y,y,y)
@@ -1865,9 +1864,9 @@ void show_next_slide(void)
*/
void render_all_slides(void)
{
- MYLCD(set_background)(G_BRIGHT(0));
+ mylcd_set_background(G_BRIGHT(0));
/* TODO: Optimizes this by e.g. invalidating rects */
- MYLCD(clear_display)();
+ mylcd_clear_display();
int nleft = num_slides;
int nright = num_slides;
@@ -2251,12 +2250,12 @@ static inline void draw_gradient(int y, int h)
int c2 = selected_track_pulse - 5;
for (r=0; r<h; r++) {
#ifdef HAVE_LCD_COLOR
- MYLCD(set_foreground)(G_PIX(c2+80-(c >> 9), c2+100-(c >> 9),
+ mylcd_set_foreground(G_PIX(c2+80-(c >> 9), c2+100-(c >> 9),
c2+250-(c >> 8)));
#else
- MYLCD(set_foreground)(G_BRIGHT(c2+160-(c >> 8)));
+ mylcd_set_foreground(G_BRIGHT(c2+160-(c >> 8)));
#endif
- MYLCD(hline)(0, LCD_WIDTH, r+y);
+ mylcd_hline(0, LCD_WIDTH, r+y);
if ( r > h/2 )
c-=inc;
else
@@ -2312,7 +2311,7 @@ void reset_track_list(void)
*/
void show_track_list(void)
{
- MYLCD(clear_display)();
+ mylcd_clear_display();
if ( center_slide.slide_index != track_index ) {
create_track_index(center_slide.slide_index);
reset_track_list();
@@ -2326,11 +2325,11 @@ void show_track_list(void)
for (;track_i < track_list_visible_entries+start_index_track_list;
track_i++)
{
- MYLCD(getstringsize)(get_track_name(track_i), &titletxt_w, NULL);
+ mylcd_getstringsize(get_track_name(track_i), &titletxt_w, NULL);
titletxt_x = (LCD_WIDTH-titletxt_w)/2;
if ( track_i == selected_track ) {
draw_gradient(titletxt_y, titletxt_h);
- MYLCD(set_foreground)(G_BRIGHT(255));
+ mylcd_set_foreground(G_BRIGHT(255));
if (titletxt_w > LCD_WIDTH ) {
if ( titletxt_w + track_scroll_index <= LCD_WIDTH )
track_scroll_dir = 1;
@@ -2338,12 +2337,12 @@ void show_track_list(void)
track_scroll_index += track_scroll_dir*2;
titletxt_x = track_scroll_index;
}
- MYLCD(putsxy)(titletxt_x,titletxt_y,get_track_name(track_i));
+ mylcd_putsxy(titletxt_x,titletxt_y,get_track_name(track_i));
}
else {
color = 250 - (abs(selected_track - track_i) * 200 / track_count);
- MYLCD(set_foreground)(G_BRIGHT(color));
- MYLCD(putsxy)(titletxt_x,titletxt_y,get_track_name(track_i));
+ mylcd_set_foreground(G_BRIGHT(color));
+ mylcd_putsxy(titletxt_x,titletxt_y,get_track_name(track_i));
}
titletxt_y += titletxt_h;
}
@@ -2446,8 +2445,8 @@ void draw_album_text(void)
albumtxt = get_album_name(center_index);
}
- MYLCD(set_foreground)(G_BRIGHT(c));
- MYLCD(getstringsize)(albumtxt, &albumtxt_w, &albumtxt_h);
+ mylcd_set_foreground(G_BRIGHT(c));
+ mylcd_getstringsize(albumtxt, &albumtxt_w, &albumtxt_h);
if (center_index != prev_center_index) {
albumtxt_x = 0;
albumtxt_dir = -1;
@@ -2460,7 +2459,7 @@ void draw_album_text(void)
albumtxt_y = LCD_HEIGHT - albumtxt_h - albumtxt_h/2;
if (albumtxt_w > LCD_WIDTH ) {
- MYLCD(putsxy)(albumtxt_x, albumtxt_y , albumtxt);
+ mylcd_putsxy(albumtxt_x, albumtxt_y , albumtxt);
if ( pf_state == pf_idle || pf_state == pf_show_tracks ) {
if ( albumtxt_w + albumtxt_x <= LCD_WIDTH ) albumtxt_dir = 1;
else if ( albumtxt_x >= 0 ) albumtxt_dir = -1;
@@ -2468,7 +2467,7 @@ void draw_album_text(void)
}
}
else {
- MYLCD(putsxy)((LCD_WIDTH - albumtxt_w) /2, albumtxt_y , albumtxt);
+ mylcd_putsxy((LCD_WIDTH - albumtxt_w) /2, albumtxt_y , albumtxt);
}
@@ -2641,9 +2640,9 @@ int main(void)
if (show_fps)
{
#ifdef USEGSLIB
- MYLCD(set_foreground)(G_BRIGHT(255));
+ mylcd_set_foreground(G_BRIGHT(255));
#else
- MYLCD(set_foreground)(G_PIX(255,0,0));
+ mylcd_set_foreground(G_PIX(255,0,0));
#endif
rb->snprintf(fpstxt, sizeof(fpstxt), "FPS: %d", fps);
if (show_album_name == album_name_top)
@@ -2651,13 +2650,13 @@ int main(void)
rb->screens[SCREEN_MAIN]->getcharheight();
else
fpstxt_y = 0;
- MYLCD(putsxy)(0, fpstxt_y, fpstxt);
+ mylcd_putsxy(0, fpstxt_y, fpstxt);
}
draw_album_text();
/* Copy offscreen buffer to LCD and give time to other threads */
- MYLCD(update)();
+ mylcd_update();
rb->yield();
/*/ Handle buttons */
@@ -2695,7 +2694,7 @@ int main(void)
#ifdef USEGSLIB
grey_show(true);
#endif
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
break;
case PF_NEXT:
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 4e261e4547..084eaa5830 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -26,6 +26,7 @@
#include "lib/highscore.h"
#include "lib/playback_control.h"
#include "lib/playergfx.h"
+#include "lib/mylcd.h"
PLUGIN_HEADER
@@ -599,8 +600,6 @@ PLUGIN_HEADER
#define LINES_X LABEL_X
#endif
-#define MYLCD(fn) rb->lcd_ ## fn
-
extern const fb_data rockblox_background[];
#else /* HAVE_LCD_CHARCELLS */
@@ -614,8 +613,6 @@ extern const fb_data rockblox_background[];
#define PREVIEW_X 15
#define PREVIEW_Y 1
-#define MYLCD(fn) pgfx_ ## fn
-
#endif
#ifndef _SPACE
@@ -983,14 +980,14 @@ static void refresh_board (void)
#if LCD_DEPTH >= 2
rb->lcd_set_foreground (LCD_BLACK);
#elif LCD_DEPTH == 1
- MYLCD(set_drawmode) (DRMODE_SOLID | DRMODE_INVERSEVID);
+ mylcd_set_drawmode (DRMODE_SOLID | DRMODE_INVERSEVID);
#endif
- MYLCD(fillrect) (BOARD_X, BOARD_Y, BOARD_WIDTH * BLOCK_WIDTH,
- BOARD_HEIGHT * BLOCK_HEIGHT);
+ mylcd_fillrect (BOARD_X, BOARD_Y, BOARD_WIDTH * BLOCK_WIDTH,
+ BOARD_HEIGHT * BLOCK_HEIGHT);
#if LCD_DEPTH == 1
- MYLCD(set_drawmode) (DRMODE_SOLID);
+ mylcd_set_drawmode (DRMODE_SOLID);
#endif
for (i = 0; i < BOARD_WIDTH; i++)
@@ -1067,7 +1064,7 @@ static void refresh_board (void)
pgfx_drawpixel (BOARD_X + x, BOARD_Y + y);
#endif
}
- MYLCD(update) ();
+ mylcd_update ();
}
static bool canMoveTo (int x, int y, int newOrientation)
@@ -1092,14 +1089,14 @@ static void draw_next_block (void)
#if LCD_DEPTH >= 2
rb->lcd_set_foreground (LCD_BLACK);
#elif LCD_DEPTH == 1
- MYLCD(set_drawmode) (DRMODE_SOLID | DRMODE_INVERSEVID);
+ mylcd_set_drawmode (DRMODE_SOLID | DRMODE_INVERSEVID);
#endif
/* 4x4 */
- MYLCD(fillrect) (PREVIEW_X, PREVIEW_Y, BLOCK_WIDTH * 4, BLOCK_HEIGHT * 4);
+ mylcd_fillrect (PREVIEW_X, PREVIEW_Y, BLOCK_WIDTH * 4, BLOCK_HEIGHT * 4);
#if LCD_DEPTH == 1
- MYLCD(set_drawmode) (DRMODE_SOLID);
+ mylcd_set_drawmode (DRMODE_SOLID);
#endif
/* draw the lightgray rectangles */
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index eb8870efde..c3c9b7458a 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -20,6 +20,7 @@
**************************************************************************/
#include "plugin.h"
#include "lib/playergfx.h"
+#include "lib/mylcd.h"
PLUGIN_HEADER
@@ -27,12 +28,10 @@ PLUGIN_HEADER
#define NUM_PARTICLES (LCD_WIDTH * LCD_HEIGHT / 72)
#define SNOW_HEIGHT LCD_HEIGHT
#define SNOW_WIDTH LCD_WIDTH
-#define MYLCD(fn) rb->lcd_ ## fn
#else
#define NUM_PARTICLES 10
#define SNOW_HEIGHT 14
#define SNOW_WIDTH 20
-#define MYLCD(fn) pgfx_ ## fn
#endif
/* variable button definitions */
@@ -136,14 +135,14 @@ static void snow_move(void)
for (i=0; i<NUM_PARTICLES; i++) {
if (particle_exists(i)) {
- MYLCD(set_drawmode)(DRMODE_SOLID|DRMODE_INVERSEVID);
+ mylcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
#ifdef HAVE_LCD_BITMAP
rb->lcd_fillrect(particles[i][0],particles[i][1],
FLAKE_WIDTH,FLAKE_WIDTH);
#else
pgfx_drawpixel(particles[i][0],particles[i][1]);
#endif
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
#ifdef HAVE_REMOTE_LCD
if (particles[i][0] <= LCD_REMOTE_WIDTH
&& particles[i][1] <= LCD_REMOTE_HEIGHT) {
@@ -201,7 +200,7 @@ static void snow_init(void)
pgfx_display(4, 0);
pgfx_display(8, 0);
#endif
- MYLCD(clear_display)();
+ mylcd_clear_display();
#ifdef HAVE_REMOTE_LCD
rb->lcd_remote_clear_display();
#endif
@@ -227,7 +226,7 @@ enum plugin_status plugin_start(const void* parameter)
snow_init();
while (1) {
snow_move();
- MYLCD(update)();
+ mylcd_update();
#ifdef HAVE_REMOTE_LCD
rb->lcd_remote_update();
#endif
diff --git a/apps/plugins/test_core_jpeg.c b/apps/plugins/test_core_jpeg.c
index 5df69b5792..58b667e28e 100644
--- a/apps/plugins/test_core_jpeg.c
+++ b/apps/plugins/test_core_jpeg.c
@@ -21,20 +21,15 @@
#include "plugin.h"
#include "lib/grey.h"
+#include "lib/mylcd.h"
PLUGIN_HEADER
/* different graphics libraries */
#if LCD_DEPTH < 8
#define USEGSLIB
GREY_INFO_STRUCT
-#define MYLCD(fn) grey_ub_ ## fn
-#define MYLCD_UPDATE()
-#define MYXLCD(fn) grey_ub_ ## fn
#define CFORMAT &format_grey
#else
-#define MYLCD(fn) rb->lcd_ ## fn
-#define MYLCD_UPDATE() rb->lcd_update();
-#define MYXLCD(fn) xlcd_ ## fn
#define CFORMAT NULL
#endif
@@ -80,7 +75,7 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_bitmap((fb_data *)bm.data, (LCD_WIDTH - bm.width) >> 1,
(LCD_HEIGHT - bm.height) >> 1, bm.width, bm.height);
#endif
- MYLCD_UPDATE();
+ mylcd_ub_update();
while (rb->get_action(CONTEXT_STD,1) != ACTION_STD_OK) rb->yield();
#ifdef USEGSLIB
grey_release();
diff --git a/apps/plugins/test_gfx.c b/apps/plugins/test_gfx.c
index 0a2e02e43f..3ba8956109 100644
--- a/apps/plugins/test_gfx.c
+++ b/apps/plugins/test_gfx.c
@@ -19,16 +19,14 @@
#include "plugin.h"
#include "lib/grey.h"
#include "lib/helper.h"
+#include "lib/mylcd.h"
//#define TEST_GREYLIB /* Uncomment for testing greylib instead of core gfx */
#ifdef TEST_GREYLIB
-#define MYLCD(fn) grey_ ## fn
GREY_INFO_STRUCT
static unsigned char *gbuf;
static size_t gbuf_size = 0;
-#else
-#define MYLCD(fn) rb->lcd_ ## fn
#endif
#define DURATION (HZ) /* longer duration gives more precise results */
@@ -67,45 +65,45 @@ static void time_drawpixel(void)
int count1, count2, count3, count4;
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count1++ & 0x3ff];
- MYLCD(drawpixel)((rnd >> 8) & 0x3f, rnd & 0x3f);
+ mylcd_drawpixel((rnd >> 8) & 0x3f, rnd & 0x3f);
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count2++ & 0x3ff];
- MYLCD(drawpixel)((rnd >> 8) & 0x3f, rnd & 0x3f);
+ mylcd_drawpixel((rnd >> 8) & 0x3f, rnd & 0x3f);
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count3++ & 0x3ff];
- MYLCD(drawpixel)((rnd >> 8) & 0x3f, rnd & 0x3f);
+ mylcd_drawpixel((rnd >> 8) & 0x3f, rnd & 0x3f);
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count4++ & 0x3ff];
- MYLCD(drawpixel)((rnd >> 8) & 0x3f, rnd & 0x3f);
+ mylcd_drawpixel((rnd >> 8) & 0x3f, rnd & 0x3f);
}
rb->fdprintf(log_fd, "lcd_drawpixel (pixels/s): %d/%d/%d/%d\n",
@@ -119,7 +117,7 @@ static void time_drawline(void)
int count1, count2, count3, count4;
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -127,12 +125,12 @@ static void time_drawline(void)
{
unsigned rnd1 = rand_table[count1++ & 0x3ff];
unsigned rnd2 = rand_table[count1++ & 0x3ff];
- MYLCD(drawline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_drawline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -140,11 +138,11 @@ static void time_drawline(void)
{
unsigned rnd1 = rand_table[count2++ & 0x3ff];
unsigned rnd2 = rand_table[count2++ & 0x3ff];
- MYLCD(drawline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_drawline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -152,11 +150,11 @@ static void time_drawline(void)
{
unsigned rnd1 = rand_table[count3++ & 0x3ff];
unsigned rnd2 = rand_table[count3++ & 0x3ff];
- MYLCD(drawline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_drawline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -164,8 +162,8 @@ static void time_drawline(void)
{
unsigned rnd1 = rand_table[count4++ & 0x3ff];
unsigned rnd2 = rand_table[count4++ & 0x3ff];
- MYLCD(drawline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_drawline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
rb->fdprintf(log_fd, "lcd_drawline (lines/s): %d/%d/%d/%d\n",
@@ -179,7 +177,7 @@ static void time_hline(void)
int count1, count2, count3, count4;
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -187,11 +185,11 @@ static void time_hline(void)
{
unsigned rnd1 = rand_table[count1++ & 0x3ff];
unsigned rnd2 = rand_table[count1++ & 0x3ff];
- MYLCD(hline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_hline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -199,10 +197,10 @@ static void time_hline(void)
{
unsigned rnd1 = rand_table[count2++ & 0x3ff];
unsigned rnd2 = rand_table[count2++ & 0x3ff];
- MYLCD(hline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_hline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -210,10 +208,10 @@ static void time_hline(void)
{
unsigned rnd1 = rand_table[count3++ & 0x3ff];
unsigned rnd2 = rand_table[count3++ & 0x3ff];
- MYLCD(hline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_hline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -221,7 +219,7 @@ static void time_hline(void)
{
unsigned rnd1 = rand_table[count4++ & 0x3ff];
unsigned rnd2 = rand_table[count4++ & 0x3ff];
- MYLCD(hline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_hline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
rb->fdprintf(log_fd, "lcd_hline (lines/s): %d/%d/%d/%d\n",
@@ -235,7 +233,7 @@ static void time_vline(void)
int count1, count2, count3, count4;
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -243,11 +241,11 @@ static void time_vline(void)
{
unsigned rnd1 = rand_table[count1++ & 0x3ff];
unsigned rnd2 = rand_table[count1++ & 0x3ff];
- MYLCD(vline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_vline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -255,10 +253,10 @@ static void time_vline(void)
{
unsigned rnd1 = rand_table[count2++ & 0x3ff];
unsigned rnd2 = rand_table[count2++ & 0x3ff];
- MYLCD(vline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_vline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -266,10 +264,10 @@ static void time_vline(void)
{
unsigned rnd1 = rand_table[count3++ & 0x3ff];
unsigned rnd2 = rand_table[count3++ & 0x3ff];
- MYLCD(vline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_vline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -277,7 +275,7 @@ static void time_vline(void)
{
unsigned rnd1 = rand_table[count4++ & 0x3ff];
unsigned rnd2 = rand_table[count4++ & 0x3ff];
- MYLCD(vline)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
+ mylcd_vline((rnd1 >> 8) & 0x3f, rnd1 & 0x3f, rnd2 & 0x3f);
}
rb->fdprintf(log_fd, "lcd_vline (lines/s): %d/%d/%d/%d\n",
@@ -291,7 +289,7 @@ static void time_fillrect(void)
int count1, count2, count3, count4;
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -299,12 +297,12 @@ static void time_fillrect(void)
{
unsigned rnd1 = rand_table[count1++ & 0x3ff];
unsigned rnd2 = rand_table[count1++ & 0x3ff];
- MYLCD(fillrect)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_fillrect((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -312,11 +310,11 @@ static void time_fillrect(void)
{
unsigned rnd1 = rand_table[count2++ & 0x3ff];
unsigned rnd2 = rand_table[count2++ & 0x3ff];
- MYLCD(fillrect)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_fillrect((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -324,11 +322,11 @@ static void time_fillrect(void)
{
unsigned rnd1 = rand_table[count3++ & 0x3ff];
unsigned rnd2 = rand_table[count3++ & 0x3ff];
- MYLCD(fillrect)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_fillrect((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
@@ -336,8 +334,8 @@ static void time_fillrect(void)
{
unsigned rnd1 = rand_table[count4++ & 0x3ff];
unsigned rnd2 = rand_table[count4++ & 0x3ff];
- MYLCD(fillrect)((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
- (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
+ mylcd_fillrect((rnd1 >> 8) & 0x3f, rnd1 & 0x3f,
+ (rnd2 >> 8) & 0x3f, rnd2 & 0x3f);
}
rb->fdprintf(log_fd, "lcd_fillrect (rects/s): %d/%d/%d/%d\n",
@@ -353,45 +351,45 @@ static void time_text(void) /* tests mono_bitmap performance */
rb->lcd_setfont(FONT_SYSFIXED);
/* Test 1: DRMODE_SOLID */
- MYLCD(set_drawmode)(DRMODE_SOLID);
+ mylcd_set_drawmode(DRMODE_SOLID);
count1 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count1++ & 0x3ff];
- MYLCD(putsxy)((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
+ mylcd_putsxy((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
}
/* Test 2: DRMODE_FG */
- MYLCD(set_drawmode)(DRMODE_FG);
+ mylcd_set_drawmode(DRMODE_FG);
count2 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count2++ & 0x3ff];
- MYLCD(putsxy)((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
+ mylcd_putsxy((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
}
/* Test 3: DRMODE_BG */
- MYLCD(set_drawmode)(DRMODE_BG);
+ mylcd_set_drawmode(DRMODE_BG);
count3 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count3++ & 0x3ff];
- MYLCD(putsxy)((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
+ mylcd_putsxy((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
}
/* Test 4: DRMODE_COMPLEMENT */
- MYLCD(set_drawmode)(DRMODE_COMPLEMENT);
+ mylcd_set_drawmode(DRMODE_COMPLEMENT);
count4 = 0;
rb->sleep(0); /* sync to tick */
time_start = *rb->current_tick;
while((time_end = *rb->current_tick) - time_start < DURATION)
{
unsigned rnd = rand_table[count4++ & 0x3ff];
- MYLCD(putsxy)((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
+ mylcd_putsxy((rnd >> 8) & 0x3f, rnd & 0x3f, "Rockbox!");
}
rb->fdprintf(log_fd, "lcd_putsxy (strings/s): %d/%d/%d/%d\n",
diff --git a/apps/plugins/test_mem_jpeg.c b/apps/plugins/test_mem_jpeg.c
index 50969c3503..d6eda771ad 100644
--- a/apps/plugins/test_mem_jpeg.c
+++ b/apps/plugins/test_mem_jpeg.c
@@ -24,20 +24,15 @@
#include "plugin.h"
#include "lib/grey.h"
#include "lib/jpeg_mem.h"
+#include "lib/mylcd.h"
PLUGIN_HEADER
/* different graphics libraries */
#if LCD_DEPTH < 8
#define USEGSLIB
GREY_INFO_STRUCT
-#define MYLCD(fn) grey_ub_ ## fn
-#define MYLCD_UPDATE()
-#define MYXLCD(fn) grey_ub_ ## fn
#define CFORMAT &format_grey
#else
-#define MYLCD(fn) rb->lcd_ ## fn
-#define MYLCD_UPDATE() rb->lcd_update();
-#define MYXLCD(fn) xlcd_ ## fn
#define CFORMAT &format_native
#endif
@@ -94,7 +89,7 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_bitmap((fb_data *)bm.data, (LCD_WIDTH - bm.width) >> 1,
(LCD_HEIGHT - bm.height) >> 1, bm.width, bm.height);
#endif
- MYLCD_UPDATE();
+ mylcd_ub_update();
while (rb->get_action(CONTEXT_STD,1) != ACTION_STD_OK) rb->yield();
#ifdef USEGSLIB
grey_release();