diff options
-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 274a124d31..5dd5ea144a 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -276,6 +276,8 @@ int settings_save( void ) | |||
276 | 276 | ||
277 | rtc_config_block[0x11] = (unsigned char)global_settings.avc; | 277 | rtc_config_block[0x11] = (unsigned char)global_settings.avc; |
278 | 278 | ||
279 | rtc_config_block[0x12] = (unsigned char)global_settings.contrast; | ||
280 | |||
279 | memcpy(&rtc_config_block[0x24], &global_settings.total_uptime, 4); | 281 | memcpy(&rtc_config_block[0x24], &global_settings.total_uptime, 4); |
280 | 282 | ||
281 | if(save_config_buffer()) | 283 | if(save_config_buffer()) |
@@ -350,9 +352,13 @@ void settings_load(void) | |||
350 | if (rtc_config_block[0x11] != 0xFF) | 352 | if (rtc_config_block[0x11] != 0xFF) |
351 | global_settings.avc = rtc_config_block[0x11]; | 353 | global_settings.avc = rtc_config_block[0x11]; |
352 | 354 | ||
355 | if (rtc_config_block[0x12] != 0xff) | ||
356 | global_settings.contrast = rtc_config_block[0x12]; | ||
357 | |||
353 | if (rtc_config_block[0x24] != 0xFF) | 358 | if (rtc_config_block[0x24] != 0xFF) |
354 | memcpy(&global_settings.total_uptime, &rtc_config_block[0x24], 4); | 359 | memcpy(&global_settings.total_uptime, &rtc_config_block[0x24], 4); |
355 | } | 360 | } |
361 | lcd_set_contrast(global_settings.contrast); | ||
356 | lcd_scroll_speed(global_settings.scroll_speed); | 362 | lcd_scroll_speed(global_settings.scroll_speed); |
357 | backlight_time(global_settings.backlight); | 363 | backlight_time(global_settings.backlight); |
358 | #ifdef HAVE_CHARGE_CTRL | 364 | #ifdef HAVE_CHARGE_CTRL |
diff --git a/apps/settings.h b/apps/settings.h index e0f0571def..1315cdcbd9 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -101,7 +101,13 @@ extern struct user_settings global_settings; | |||
101 | #define DEFAULT_LOUDNESS_SETTING 0 | 101 | #define DEFAULT_LOUDNESS_SETTING 0 |
102 | #define DEFAULT_BASS_BOOST_SETTING 0 | 102 | #define DEFAULT_BASS_BOOST_SETTING 0 |
103 | #define DEFAULT_AVC_SETTING 0 | 103 | #define DEFAULT_AVC_SETTING 0 |
104 | #define DEFAULT_CONTRAST_SETTING 0 | 104 | #ifdef HAVE_LCD_CHARCELLS |
105 | #define MAX_CONTRAST_SETTING 31 | ||
106 | #define DEFAULT_CONTRAST_SETTING 15 | ||
107 | #else | ||
108 | #define MAX_CONTRAST_SETTING 63 | ||
109 | #define DEFAULT_CONTRAST_SETTING 32 | ||
110 | #endif | ||
105 | #define DEFAULT_POWEROFF_SETTING 0 | 111 | #define DEFAULT_POWEROFF_SETTING 0 |
106 | #define DEFAULT_BACKLIGHT_SETTING 5 | 112 | #define DEFAULT_BACKLIGHT_SETTING 5 |
107 | #define DEFAULT_WPS_DISPLAY 0 | 113 | #define DEFAULT_WPS_DISPLAY 0 |
diff --git a/apps/settings_menu.c b/apps/settings_menu.c index b2ca475619..0dbe50d9cb 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c | |||
@@ -35,6 +35,13 @@ | |||
35 | #include "powermgmt.h" | 35 | #include "powermgmt.h" |
36 | #include "rtc.h" | 36 | #include "rtc.h" |
37 | 37 | ||
38 | |||
39 | static void contrast(void) | ||
40 | { | ||
41 | set_int( "[Contrast]", "", &global_settings.contrast, | ||
42 | lcd_set_contrast, 1, 0, MAX_CONTRAST_SETTING ); | ||
43 | } | ||
44 | |||
38 | static void shuffle(void) | 45 | static void shuffle(void) |
39 | { | 46 | { |
40 | set_bool( "[Shuffle]", &global_settings.playlist_shuffle ); | 47 | set_bool( "[Shuffle]", &global_settings.playlist_shuffle ); |
@@ -133,6 +140,7 @@ void settings_menu(void) | |||
133 | { "MP3/M3U filter", mp3_filter }, | 140 | { "MP3/M3U filter", mp3_filter }, |
134 | { "Sort mode", sort_case }, | 141 | { "Sort mode", sort_case }, |
135 | { "Backlight Timer", backlight_timer }, | 142 | { "Backlight Timer", backlight_timer }, |
143 | { "Contrast", contrast }, | ||
136 | { "Scroll speed", scroll_speed }, | 144 | { "Scroll speed", scroll_speed }, |
137 | { "While Playing", wps_set }, | 145 | { "While Playing", wps_set }, |
138 | #ifdef HAVE_CHARGE_CTRL | 146 | #ifdef HAVE_CHARGE_CTRL |
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c index 81dc41fff3..b67be4e761 100644 --- a/firmware/drivers/lcd.c +++ b/firmware/drivers/lcd.c | |||
@@ -38,9 +38,6 @@ | |||
38 | 38 | ||
39 | #define LCDR (PBDR_ADDR+1) | 39 | #define LCDR (PBDR_ADDR+1) |
40 | 40 | ||
41 | /* PA14 : /LCD-BL --- backlight */ | ||
42 | #define LCD_BL 6 | ||
43 | |||
44 | #ifdef HAVE_LCD_CHARCELLS | 41 | #ifdef HAVE_LCD_CHARCELLS |
45 | 42 | ||
46 | #define LCD_DS 1 // PB0 = 1 --- 0001 --- LCD-DS | 43 | #define LCD_DS 1 // PB0 = 1 --- 0001 --- LCD-DS |
@@ -323,18 +320,7 @@ static void lcd_write(bool command, int byte) | |||
323 | PBDR |= LCD_CS; /* disable lcd chip select */ | 320 | PBDR |= LCD_CS; /* disable lcd chip select */ |
324 | } | 321 | } |
325 | #endif /* ASM_IMPLEMENTATION */ | 322 | #endif /* ASM_IMPLEMENTATION */ |
326 | 323 | #endif /* !SIMULATOR */ | |
327 | /*** BACKLIGHT ***/ | ||
328 | |||
329 | void lcd_backlight(bool on) | ||
330 | { | ||
331 | if ( on ) | ||
332 | PAIOR |= LCD_BL; | ||
333 | else | ||
334 | PAIOR &= ~LCD_BL; | ||
335 | } | ||
336 | |||
337 | #endif /* SIMULATOR */ | ||
338 | 324 | ||
339 | unsigned char icon_mirror[11]; | 325 | unsigned char icon_mirror[11]; |
340 | 326 | ||
@@ -524,6 +510,26 @@ void lcd_init (void) | |||
524 | } | 510 | } |
525 | #endif | 511 | #endif |
526 | 512 | ||
513 | #ifdef SIMULATOR | ||
514 | void lcd_set_contrast(int val) | ||
515 | { | ||
516 | val = val; | ||
517 | } | ||
518 | #else | ||
519 | #ifdef HAVE_LCD_BITMAP | ||
520 | void lcd_set_contrast(int val) | ||
521 | { | ||
522 | lcd_write(true, LCD_CNTL_CONTRAST); | ||
523 | lcd_write(true, val); | ||
524 | } | ||
525 | #else | ||
526 | void lcd_set_contrast(int val) | ||
527 | { | ||
528 | lcd_write(true, LCD_CONTRAST_SET); | ||
529 | lcd_write(false, 31-val); | ||
530 | } | ||
531 | #endif | ||
532 | #endif | ||
527 | 533 | ||
528 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) /* not CHARCELLS */ | 534 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) /* not CHARCELLS */ |
529 | 535 | ||
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index 145d858c54..2ce6339b8c 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 ); | |||
35 | extern void lcd_icon(int icon, bool enable); | 35 | extern void lcd_icon(int icon, bool enable); |
36 | extern void lcd_stop_scroll(void); | 36 | extern void lcd_stop_scroll(void); |
37 | extern void lcd_scroll_speed( int speed ); | 37 | extern void lcd_scroll_speed( int speed ); |
38 | extern void lcd_set_contrast(int val); | ||
38 | 39 | ||
39 | #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) | 40 | #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) |
40 | extern void lcd_update(void); | 41 | extern void lcd_update(void); |