diff options
| author | Dave Chapman <dave@dchapman.com> | 2006-02-09 00:48:53 +0000 |
|---|---|---|
| committer | Dave Chapman <dave@dchapman.com> | 2006-02-09 00:48:53 +0000 |
| commit | 8ad2df82754184a8dfe1a6d66248a1dd156286bd (patch) | |
| tree | f1916f784da7adce628654f1480b3ada77498152 | |
| parent | a88632f885308667fed1b000f3d2d5a363b130c3 (diff) | |
| download | rockbox-8ad2df82754184a8dfe1a6d66248a1dd156286bd.zip rockbox-8ad2df82754184a8dfe1a6d66248a1dd156286bd.tar.gz rockbox-8ad2df82754184a8dfe1a6d66248a1dd156286bd.tar.bz2 rockbox-8ad2df82754184a8dfe1a6d66248a1dd156286bd.tar.xz | |
Create an SDL sim for the iPod 4G Grayscale and also create an IPOD_ARCH define for all iPods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8636 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/SOURCES | 6 | ||||
| -rw-r--r-- | firmware/drivers/lcd-2bit-horz.c | 5 | ||||
| -rw-r--r-- | firmware/drivers/lcd-ipod.c | 5 | ||||
| -rw-r--r-- | firmware/export/config-h100.h | 2 | ||||
| -rw-r--r-- | firmware/export/config-h120.h | 2 | ||||
| -rw-r--r-- | firmware/export/config-ipod3g.h | 4 | ||||
| -rw-r--r-- | firmware/export/config-ipod4g.h | 4 | ||||
| -rw-r--r-- | firmware/export/config-ipodcolor.h | 2 | ||||
| -rw-r--r-- | firmware/export/config-ipodnano.h | 2 | ||||
| -rw-r--r-- | firmware/export/config-ipodvideo.h | 2 | ||||
| -rw-r--r-- | firmware/export/config.h | 2 | ||||
| -rw-r--r-- | firmware/export/lcd.h | 6 | ||||
| -rw-r--r-- | uisimulator/sdl/UI-ipod4g.bmp | bin | 0 -> 217614 bytes | |||
| -rw-r--r-- | uisimulator/sdl/lcd-sdl.c | 4 | ||||
| -rw-r--r-- | uisimulator/sdl/uisdl.h | 12 |
15 files changed, 49 insertions, 9 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES index 880d03a..b8bf378 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -54,10 +54,12 @@ arabjoin.c bidi.c #if LCD_DEPTH == 1 drivers/lcd-recorder.c -#elif CONFIG_LCD==LCD_IPOD2BPP -drivers/lcd-2bit-horz.c #elif LCD_DEPTH == 2 +#if (LCD_PIXELFORMAT == HORIZONTAL_PACKING) +drivers/lcd-2bit-horz.c +#else drivers/lcd-h100.c +#endif #elif LCD_DEPTH == 16 drivers/lcd-16bit.c #endif diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c index de1af90..c4df5e8 100644 --- a/firmware/drivers/lcd-2bit-horz.c +++ b/firmware/drivers/lcd-2bit-horz.c @@ -82,6 +82,11 @@ void lcd_init(void) sizeof(scroll_stack), scroll_name); } +int lcd_default_contrast(void) +{ + return 96; +} + /*** parameter handling ***/ void lcd_set_drawmode(int mode) diff --git a/firmware/drivers/lcd-ipod.c b/firmware/drivers/lcd-ipod.c index b6a764d..d37981a 100644 --- a/firmware/drivers/lcd-ipod.c +++ b/firmware/drivers/lcd-ipod.c @@ -100,11 +100,6 @@ static void lcd_cmd_and_data(int cmd, int data_lo, int data_hi) lcd_send_data(data_lo, data_hi); } -int lcd_default_contrast(void) -{ - return 96; -} - /** * * LCD init diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h index ea49dd8..b9677b5 100644 --- a/firmware/export/config-h100.h +++ b/firmware/export/config-h100.h @@ -18,6 +18,8 @@ #define LCD_HEIGHT 128 #define LCD_DEPTH 2 +#define LCD_PIXELFORMAT VERTICAL_PACKING + /* remote LCD */ #define LCD_REMOTE_WIDTH 128 #define LCD_REMOTE_HEIGHT 64 diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h index fee5f48..252d3c1 100644 --- a/firmware/export/config-h120.h +++ b/firmware/export/config-h120.h @@ -14,6 +14,8 @@ #define LCD_HEIGHT 128 #define LCD_DEPTH 2 +#define LCD_PIXELFORMAT VERTICAL_PACKING + /* remote LCD */ #define LCD_REMOTE_WIDTH 128 #define LCD_REMOTE_HEIGHT 64 diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h index 0da104d..9d55b6b 100644 --- a/firmware/export/config-ipod3g.h +++ b/firmware/export/config-ipod3g.h @@ -3,6 +3,8 @@ */ #define APPLE_IPOD3G 1 +#define IPOD_ARCH 1 + /* For Rolo and boot loader */ #define MODEL_NUMBER 7 @@ -17,6 +19,8 @@ #define LCD_HEIGHT 128 #define LCD_DEPTH 2 /* 4 colours - 2bpp */ +#define LCD_PIXELFORMAT HORIZONTAL_PACKING + #define CONFIG_KEYPAD IPOD_3G_PAD /* Define this if you do software codec */ diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h index de0388d..7195f20 100644 --- a/firmware/export/config-ipod4g.h +++ b/firmware/export/config-ipod4g.h @@ -3,6 +3,8 @@ */ #define APPLE_IPOD4G 1 +#define IPOD_ARCH 1 + /* For Rolo and boot loader */ #define MODEL_NUMBER 8 @@ -17,6 +19,8 @@ #define LCD_HEIGHT 128 #define LCD_DEPTH 2 /* 4 colours - 2bpp */ +#define LCD_PIXELFORMAT HORIZONTAL_PACKING + #define CONFIG_KEYPAD IPOD_4G_PAD /* Define this if you do software codec */ diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h index b413b86..9cbc058 100644 --- a/firmware/export/config-ipodcolor.h +++ b/firmware/export/config-ipodcolor.h @@ -3,6 +3,8 @@ */ #define APPLE_IPODCOLOR 1 +#define IPOD_ARCH 1 + /* For Rolo and boot loader */ #define MODEL_NUMBER 3 diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h index 728c83e..1843d18 100644 --- a/firmware/export/config-ipodnano.h +++ b/firmware/export/config-ipodnano.h @@ -3,6 +3,8 @@ */ #define APPLE_IPODNANO 1 +#define IPOD_ARCH 1 + /* For Rolo and boot loader */ #define MODEL_NUMBER 4 diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h index 0e6dc15..160a2db 100644 --- a/firmware/export/config-ipodvideo.h +++ b/firmware/export/config-ipodvideo.h @@ -3,6 +3,8 @@ */ #define APPLE_IPODVIDEO 1 +#define IPOD_ARCH 1 + /* For Rolo and boot loader */ #define MODEL_NUMBER 5 diff --git a/firmware/export/config.h b/firmware/export/config.h index 22352f5..b1cca7b 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -82,6 +82,8 @@ #define LCD_IFP7XX 10 /* as used by iRiver iFP 7xx/8xx */ /* LCD_PIXELFORMAT */ +#define HORIZONTAL_PACKING 1 +#define VERTICAL_PACKING 2 #define RGB565 565 #define RGB565SWAPPED 3553 diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index bee8d3c..d56f39d 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -192,10 +192,12 @@ typedef void lcd_fastpixelfunc_type(fb_data *address); /* Memory copy of display bitmap */ #if LCD_DEPTH == 1 extern fb_data lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; -#elif CONFIG_LCD == LCD_IPOD2BPP -extern fb_data lcd_framebuffer[LCD_HEIGHT][LCD_WIDTH/4]; #elif LCD_DEPTH == 2 +#if LCD_PIXELFORMAT == HORIZONTAL_PACKING +extern fb_data lcd_framebuffer[LCD_HEIGHT][LCD_WIDTH/4]; +#else extern fb_data lcd_framebuffer[LCD_HEIGHT/4][LCD_WIDTH]; +#endif #elif LCD_DEPTH == 16 extern fb_data lcd_framebuffer[LCD_HEIGHT][LCD_WIDTH]; #elif LCD_DEPTH == 18 diff --git a/uisimulator/sdl/UI-ipod4g.bmp b/uisimulator/sdl/UI-ipod4g.bmp Binary files differnew file mode 100644 index 0000000..b24c560 --- /dev/null +++ b/uisimulator/sdl/UI-ipod4g.bmp diff --git a/uisimulator/sdl/lcd-sdl.c b/uisimulator/sdl/lcd-sdl.c index a90efbd..80a3c96 100644 --- a/uisimulator/sdl/lcd-sdl.c +++ b/uisimulator/sdl/lcd-sdl.c @@ -73,7 +73,11 @@ void lcd_update_rect(int x_start, int y_start, int width, int height) #if LCD_DEPTH == 1 *p = ((lcd_framebuffer[y/8][x] >> (y & 7)) & 1); #elif LCD_DEPTH == 2 +#if LCD_PIXELFORMAT == HORIZONTAL_PACKING + *p = ((lcd_framebuffer[y][x/4] >> (2 * (x & 3))) & 3); +#else *p = ((lcd_framebuffer[y/4][x] >> (2 * (y & 3))) & 3); +#endif #elif LCD_DEPTH == 16 #if LCD_PIXELFORMAT == RGB565SWAPPED unsigned bits = lcd_framebuffer[y][x]; diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h index dd8e558..ddf0a6f 100644 --- a/uisimulator/sdl/uisdl.h +++ b/uisimulator/sdl/uisdl.h @@ -109,6 +109,18 @@ #define UI_REMOTE_WIDTH 128 #define UI_REMOTE_HEIGHT 64 +#elif defined(IPOD_4G) +#define UI_TITLE "iPod 4G" +#define UI_WIDTH 196 // width of GUI window +#define UI_HEIGHT 370 // height of GUI window +#define UI_LCD_BGCOLOR 90, 145, 90 // bkgnd color of LCD (no backlight) +#define UI_LCD_BGCOLORLIGHT 173, 216, 230 // bkgnd color of LCD (backlight) +#define UI_LCD_BLACK 0, 0, 0 // black +#define UI_LCD_POSX 19 // x position of lcd +#define UI_LCD_POSY 14 // y position of lcd +#define UI_LCD_WIDTH 160 +#define UI_LCD_HEIGHT 128 + #elif defined(IPOD_COLOR) #define UI_TITLE "iPod Color" #define UI_WIDTH 261 // width of GUI window |