summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-07-19 09:24:29 +0000
committerJens Arnold <amiconn@rockbox.org>2005-07-19 09:24:29 +0000
commit82ea7c3bacd0b5308e7f0b1d8f35a4e3e13e54f7 (patch)
treec26486e3dc90d2e49e9407c32c09aa6c5e2b34ec /firmware
parent144fc69a9f774aa3c0542ee075055bce87f28b14 (diff)
downloadrockbox-82ea7c3bacd0b5308e7f0b1d8f35a4e3e13e54f7.tar.gz
rockbox-82ea7c3bacd0b5308e7f0b1d8f35a4e3e13e54f7.zip
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
Diffstat (limited to 'firmware')
-rw-r--r--firmware/SOURCES4
-rw-r--r--firmware/export/config-h300.h9
-rw-r--r--firmware/export/config-iaudiox5.h5
-rw-r--r--firmware/export/lcd.h28
4 files changed, 37 insertions, 9 deletions
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