diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-13 11:10:11 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-13 11:10:11 +0000 |
| commit | 638184f1a28f6e2fab225d9630baccdcff6dbf16 (patch) | |
| tree | c590188fd3cc0fcb2d7e265176f19c5bf8ccbca8 | |
| parent | 8b05a002af34dddadc7cf5cc56de75216c0705c7 (diff) | |
| download | rockbox-638184f1a28f6e2fab225d9630baccdcff6dbf16.zip rockbox-638184f1a28f6e2fab225d9630baccdcff6dbf16.tar.gz rockbox-638184f1a28f6e2fab225d9630baccdcff6dbf16.tar.bz2 rockbox-638184f1a28f6e2fab225d9630baccdcff6dbf16.tar.xz | |
Added LCD contrast setting
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1710 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/settings.c | 6 | ||||
| -rw-r--r-- | apps/settings.h | 8 | ||||
| -rw-r--r-- | apps/settings_menu.c | 8 | ||||
| -rw-r--r-- | firmware/drivers/lcd.c | 36 | ||||
| -rw-r--r-- | firmware/drivers/lcd.h | 1 |
5 files changed, 43 insertions, 16 deletions
diff --git a/apps/settings.c b/apps/settings.c index 274a124..5dd5ea1 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -276,6 +276,8 @@ int settings_save( void ) rtc_config_block[0x11] = (unsigned char)global_settings.avc; + rtc_config_block[0x12] = (unsigned char)global_settings.contrast; + memcpy(&rtc_config_block[0x24], &global_settings.total_uptime, 4); if(save_config_buffer()) @@ -350,9 +352,13 @@ void settings_load(void) if (rtc_config_block[0x11] != 0xFF) global_settings.avc = rtc_config_block[0x11]; + if (rtc_config_block[0x12] != 0xff) + global_settings.contrast = rtc_config_block[0x12]; + if (rtc_config_block[0x24] != 0xFF) memcpy(&global_settings.total_uptime, &rtc_config_block[0x24], 4); } + lcd_set_contrast(global_settings.contrast); lcd_scroll_speed(global_settings.scroll_speed); backlight_time(global_settings.backlight); #ifdef HAVE_CHARGE_CTRL diff --git a/apps/settings.h b/apps/settings.h index e0f0571..1315cdc 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -101,7 +101,13 @@ extern struct user_settings global_settings; #define DEFAULT_LOUDNESS_SETTING 0 #define DEFAULT_BASS_BOOST_SETTING 0 #define DEFAULT_AVC_SETTING 0 -#define DEFAULT_CONTRAST_SETTING 0 +#ifdef HAVE_LCD_CHARCELLS +#define MAX_CONTRAST_SETTING 31 +#define DEFAULT_CONTRAST_SETTING 15 +#else +#define MAX_CONTRAST_SETTING 63 +#define DEFAULT_CONTRAST_SETTING 32 +#endif #define DEFAULT_POWEROFF_SETTING 0 #define DEFAULT_BACKLIGHT_SETTING 5 #define DEFAULT_WPS_DISPLAY 0 diff --git a/apps/settings_menu.c b/apps/settings_menu.c index b2ca475..0dbe50d 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c @@ -35,6 +35,13 @@ #include "powermgmt.h" #include "rtc.h" + +static void contrast(void) +{ + set_int( "[Contrast]", "", &global_settings.contrast, + lcd_set_contrast, 1, 0, MAX_CONTRAST_SETTING ); +} + static void shuffle(void) { set_bool( "[Shuffle]", &global_settings.playlist_shuffle ); @@ -133,6 +140,7 @@ void settings_menu(void) { "MP3/M3U filter", mp3_filter }, { "Sort mode", sort_case }, { "Backlight Timer", backlight_timer }, + { "Contrast", contrast }, { "Scroll speed", scroll_speed }, { "While Playing", wps_set }, #ifdef HAVE_CHARGE_CTRL diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c index 81dc41f..b67be4e 100644 --- a/firmware/drivers/lcd.c +++ b/firmware/drivers/lcd.c @@ -38,9 +38,6 @@ #define LCDR (PBDR_ADDR+1) -/* PA14 : /LCD-BL --- backlight */ -#define LCD_BL 6 - #ifdef HAVE_LCD_CHARCELLS #define LCD_DS 1 // PB0 = 1 --- 0001 --- LCD-DS @@ -323,18 +320,7 @@ static void lcd_write(bool command, int byte) PBDR |= LCD_CS; /* disable lcd chip select */ } #endif /* ASM_IMPLEMENTATION */ - -/*** BACKLIGHT ***/ - -void lcd_backlight(bool on) -{ - if ( on ) - PAIOR |= LCD_BL; - else - PAIOR &= ~LCD_BL; -} - -#endif /* SIMULATOR */ +#endif /* !SIMULATOR */ unsigned char icon_mirror[11]; @@ -524,6 +510,26 @@ void lcd_init (void) } #endif +#ifdef SIMULATOR +void lcd_set_contrast(int val) +{ + val = val; +} +#else +#ifdef HAVE_LCD_BITMAP +void lcd_set_contrast(int val) +{ + lcd_write(true, LCD_CNTL_CONTRAST); + lcd_write(true, val); +} +#else +void lcd_set_contrast(int val) +{ + lcd_write(true, LCD_CONTRAST_SET); + lcd_write(false, 31-val); +} +#endif +#endif #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) /* not CHARCELLS */ diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index 145d858..2ce6339 100644 --- a/firmware/drivers/lcd.h +++ b/firmware/drivers/lcd.h @@ -35,6 +35,7 @@ extern void lcd_puts_scroll(int x, int y, unsigned char* string ); extern void lcd_icon(int icon, bool enable); extern void lcd_stop_scroll(void); extern void lcd_scroll_speed( int speed ); +extern void lcd_set_contrast(int val); #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) extern void lcd_update(void); |