From 82ea7c3bacd0b5308e7f0b1d8f35a4e3e13e54f7 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Tue, 19 Jul 2005 09:24:29 +0000 Subject: Renamed MAX_LEVEL to LCD_MAX_LEVEL to match the naming scheme. Preparations for colour LCD support. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7194 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugin.c | 2 +- apps/plugins/bounce.c | 4 ++-- apps/plugins/cube.c | 2 +- apps/screens.c | 4 ++-- firmware/SOURCES | 4 ++-- firmware/export/config-h300.h | 9 ++++++--- firmware/export/config-iaudiox5.h | 5 ++++- firmware/export/lcd.h | 28 +++++++++++++++++++++++++--- 8 files changed, 43 insertions(+), 15 deletions(-) diff --git a/apps/plugin.c b/apps/plugin.c index bf69dfbc86..e298b55b23 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -412,7 +412,7 @@ int plugin_load(const char* plugin, void* parameter) button_clear_queue(); #ifdef HAVE_LCD_BITMAP #if LCD_DEPTH > 1 - lcd_set_drawinfo(DRMODE_SOLID, 0, MAX_LEVEL); + lcd_set_drawinfo(DRMODE_SOLID, 0, LCD_MAX_LEVEL); #else lcd_set_drawmode(DRMODE_SOLID); #endif diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index 8ac4202ab1..c3bea8e14f 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c @@ -284,7 +284,7 @@ static void addclock(void) #if LCD_DEPTH > 1 static const int face_colors[] = { - 0, 2*MAX_LEVEL/3, MAX_LEVEL/3 + 0, 2*LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3 }; #endif @@ -451,7 +451,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) len = 1; rb->lcd_getstringsize(off, &w, &h); - + /* Get horizontel centering for text */ len *= w; if (len%2 != 0) diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 10694b3bd2..afb2b88628 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -154,7 +154,7 @@ static const struct face faces[6] = #if LCD_DEPTH > 1 static const int face_colors[6] = { - 2*MAX_LEVEL/3, 2*MAX_LEVEL/3, MAX_LEVEL/3, MAX_LEVEL/3, 0, 0 + 2*LCD_MAX_LEVEL/3, 2*LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3, 0, 0 }; #endif diff --git a/apps/screens.c b/apps/screens.c index f761919d35..a51d83fed3 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -855,7 +855,7 @@ void splash(int ticks, /* how long the splash is displayed */ int xx = (LCD_WIDTH-maxw)/2 - 2; /* The new graphics routines handle clipping, so no need to check */ #if LCD_DEPTH > 1 - lcd_set_background(MAX_LEVEL-1); + lcd_set_background(LCD_MAX_LEVEL-1); #endif lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); lcd_fillrect(xx, y-2, maxw+4, LCD_HEIGHT-y*2+4); @@ -903,7 +903,7 @@ void splash(int ticks, /* how long the splash is displayed */ next = strtok_r(NULL, " ", &store); } #if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH > 1) - lcd_set_background(MAX_LEVEL); + lcd_set_background(LCD_MAX_LEVEL); #endif lcd_update(); diff --git a/firmware/SOURCES b/firmware/SOURCES index 2fca3ffab5..afb36f490d 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -49,9 +49,9 @@ drivers/lcd-player-charset.c drivers/lcd-player.c #endif #ifdef HAVE_LCD_BITMAP -#if CONFIG_LCD == LCD_S1D15E06 +#if LCD_DEPTH == 2 drivers/lcd-h100.c -#else +#elif LCD_DEPTH == 1 drivers/lcd-recorder.c #endif #endif diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h index 1c284b9ef8..be6511cb2f 100644 --- a/firmware/export/config-h300.h +++ b/firmware/export/config-h300.h @@ -1,16 +1,19 @@ +/* For Rolo and boot loader */ +#define MODEL_NUMBER 2 + /* define this if you have recording possibility */ /*#define HAVE_RECORDING 1*/ /* define this if you have a bitmap LCD display */ #define HAVE_LCD_BITMAP 1 -/* For Rolo and boot loader */ -#define MODEL_NUMBER 2 +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR 1 /* LCD dimensions */ #define LCD_WIDTH 220 #define LCD_HEIGHT 176 -#define LCD_DEPTH 18 +#define LCD_DEPTH 18 /* 262.144 colours */ /* remote LCD */ #define LCD_REMOTE_WIDTH 128 diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h index 6894fe2ca5..1a95a5202c 100644 --- a/firmware/export/config-iaudiox5.h +++ b/firmware/export/config-iaudiox5.h @@ -8,10 +8,13 @@ /* define this if you have a bitmap LCD display */ #define HAVE_LCD_BITMAP 1 +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR 1 + /* LCD dimensions */ #define LCD_WIDTH 160 #define LCD_HEIGHT 128 -#define LCD_DEPTH 18 /* 260.000 colors */ +#define LCD_DEPTH 18 /* 262.144 colors */ /* remote LCD */ #define LCD_REMOTE_WIDTH 128 diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 6860d8f064..30677e492e 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -124,13 +124,26 @@ extern void lcd_jump_scroll_delay(int ms); typedef void lcd_pixelfunc_type(int x, int y); typedef void lcd_blockfunc_type(unsigned char *address, unsigned mask, unsigned bits); -#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) +#ifdef HAVE_LCD_BITMAP + +#ifdef HAVE_LCD_COLOR +#define LCD_MAX_RED ((1 << (LCD_DEPTH/3)) - 1) +#define LCD_MAX_GREEN ((1 << (LCD_DEPTH/3)) - 1) +#define LCD_MAX_BLUE ((1 << (LCD_DEPTH/3)) - 1) +struct rgb { + unsigned char red; + unsigned char green; + unsigned char blue; +}; +#else /* monochrome */ +#define LCD_MAX_LEVEL ((1 << LCD_DEPTH) - 1) + +#endif /* Memory copy of display bitmap */ #if LCD_DEPTH == 1 extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; #elif LCD_DEPTH == 2 -#define MAX_LEVEL 3 extern unsigned char lcd_framebuffer[LCD_HEIGHT/4][LCD_WIDTH]; #endif @@ -167,11 +180,20 @@ extern void lcd_bidir_scroll(int threshold); extern void lcd_scroll_step(int pixels); #if LCD_DEPTH > 1 +#ifdef HAVE_LCD_COLOR +extern void lcd_set_foreground(struct rgb color); +extern struct rgb lcd_get_foreground(void); +extern void lcd_set_background(struct rgb color); +extern struct rgb lcd_get_background(void); +extern void lcd_set_drawinfo(int mode, struct rgb fg_color, + struct rgb bg_color); +#else /* monochrome */ extern void lcd_set_foreground(int brightness); extern int lcd_get_foreground(void); extern void lcd_set_background(int brightness); extern int lcd_get_background(void); extern void lcd_set_drawinfo(int mode, int fg_brightness, int bg_brightness); +#endif extern void lcd_mono_bitmap_part(const unsigned char *src, int src_x, int src_y, int stride, int x, int y, int width, int height); extern void lcd_mono_bitmap(const unsigned char *src, int x, int y, int width, @@ -181,7 +203,7 @@ extern void lcd_mono_bitmap(const unsigned char *src, int x, int y, int width, #define lcd_mono_bitmap_part lcd_bitmap_part #endif -#endif /* CHARCELLS / BITMAP */ +#endif /* HAVE_LCD_BITMAP */ /* internal usage, but in multiple drivers */ #ifdef HAVE_LCD_BITMAP -- cgit v1.2.3