diff options
-rw-r--r-- | apps/settings.c | 10 | ||||
-rw-r--r-- | apps/settings.h | 15 | ||||
-rw-r--r-- | apps/settings_menu.c | 6 | ||||
-rw-r--r-- | firmware/export/config-iaudiox5.h | 5 | ||||
-rw-r--r-- | firmware/powermgmt.c | 2 | ||||
-rwxr-xr-x | firmware/target/coldfire/iaudio/x5/lcd-x5.c | 17 |
6 files changed, 36 insertions, 19 deletions
diff --git a/apps/settings.c b/apps/settings.c index b6d84d53f7..673b8fe246 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -240,8 +240,8 @@ static const struct bit_entry rtc_bits[] = | |||
240 | {32 | SIGNED, S_O(resume_seed), -1, NULL, NULL }, | 240 | {32 | SIGNED, S_O(resume_seed), -1, NULL, NULL }, |
241 | {3, S_O(repeat_mode), REPEAT_ALL, "repeat", "off,all,one,shuffle,ab" }, | 241 | {3, S_O(repeat_mode), REPEAT_ALL, "repeat", "off,all,one,shuffle,ab" }, |
242 | /* LCD */ | 242 | /* LCD */ |
243 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 243 | #ifdef HAVE_LCD_CONTRAST |
244 | {6, S_O(contrast), 40, "contrast", NULL }, | 244 | {6, S_O(contrast), DEFAULT_CONTRAST_SETTING, "contrast", NULL }, |
245 | #endif | 245 | #endif |
246 | #ifdef CONFIG_BACKLIGHT | 246 | #ifdef CONFIG_BACKLIGHT |
247 | {5, S_O(backlight_timeout), 5, "backlight timeout", backlight_times_conf }, | 247 | {5, S_O(backlight_timeout), 5, "backlight timeout", backlight_times_conf }, |
@@ -1017,7 +1017,7 @@ void settings_apply(void) | |||
1017 | 1017 | ||
1018 | audio_set_buffer_margin(global_settings.buffer_margin); | 1018 | audio_set_buffer_margin(global_settings.buffer_margin); |
1019 | 1019 | ||
1020 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 1020 | #ifdef HAVE_LCD_CONTRAST |
1021 | lcd_set_contrast(global_settings.contrast); | 1021 | lcd_set_contrast(global_settings.contrast); |
1022 | #endif | 1022 | #endif |
1023 | lcd_scroll_speed(global_settings.scroll_speed); | 1023 | lcd_scroll_speed(global_settings.scroll_speed); |
@@ -1263,7 +1263,7 @@ void settings_load(int which) | |||
1263 | RTC_BLOCK_SIZE*8); | 1263 | RTC_BLOCK_SIZE*8); |
1264 | } | 1264 | } |
1265 | 1265 | ||
1266 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 1266 | #ifdef HAVE_LCD_CONTRAST |
1267 | if ( global_settings.contrast < MIN_CONTRAST_SETTING ) | 1267 | if ( global_settings.contrast < MIN_CONTRAST_SETTING ) |
1268 | global_settings.contrast = lcd_default_contrast(); | 1268 | global_settings.contrast = lcd_default_contrast(); |
1269 | #endif | 1269 | #endif |
@@ -1728,7 +1728,7 @@ void settings_reset(void) { | |||
1728 | global_settings.mdb_enable = sound_default(SOUND_MDB_ENABLE); | 1728 | global_settings.mdb_enable = sound_default(SOUND_MDB_ENABLE); |
1729 | global_settings.superbass = sound_default(SOUND_SUPERBASS); | 1729 | global_settings.superbass = sound_default(SOUND_SUPERBASS); |
1730 | #endif | 1730 | #endif |
1731 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 1731 | #ifdef HAVE_LCD_CONTRAST |
1732 | global_settings.contrast = lcd_default_contrast(); | 1732 | global_settings.contrast = lcd_default_contrast(); |
1733 | #endif | 1733 | #endif |
1734 | #ifdef HAVE_LCD_REMOTE | 1734 | #ifdef HAVE_LCD_REMOTE |
diff --git a/apps/settings.h b/apps/settings.h index d32b58ac85..983e58911d 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -200,6 +200,13 @@ extern unsigned char vp_dummy[VIRT_SIZE]; | |||
200 | /* get the string ID from a virtual pointer, -1 if not virtual */ | 200 | /* get the string ID from a virtual pointer, -1 if not virtual */ |
201 | #define P2ID(p) ((p>=VIRT_PTR && p<=VIRT_PTR+VIRT_SIZE) ? p-VIRT_PTR : -1) | 201 | #define P2ID(p) ((p>=VIRT_PTR && p<=VIRT_PTR+VIRT_SIZE) ? p-VIRT_PTR : -1) |
202 | 202 | ||
203 | /* !defined(HAVE_LCD_COLOR) implies HAVE_LCD_CONTRAST with default 40. | ||
204 | Explicitly define HAVE_LCD_CONTRAST in config file for newer ports for | ||
205 | simplicity. */ | ||
206 | #if !defined(HAVE_LCD_COLOR) | ||
207 | #define HAVE_LCD_CONTRAST | ||
208 | #define DEFAULT_CONTRAST_SETTING 40 | ||
209 | #endif | ||
203 | 210 | ||
204 | struct user_settings | 211 | struct user_settings |
205 | { | 212 | { |
@@ -274,7 +281,7 @@ struct user_settings | |||
274 | 281 | ||
275 | /* device settings */ | 282 | /* device settings */ |
276 | 283 | ||
277 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 284 | #ifdef HAVE_LCD_CONTRAST |
278 | int contrast; /* lcd contrast */ | 285 | int contrast; /* lcd contrast */ |
279 | #endif | 286 | #endif |
280 | bool invert; /* invert display */ | 287 | bool invert; /* invert display */ |
@@ -571,10 +578,10 @@ extern long lasttime; | |||
571 | extern const char rec_base_directory[]; | 578 | extern const char rec_base_directory[]; |
572 | 579 | ||
573 | /* system defines */ | 580 | /* system defines */ |
574 | |||
575 | #ifdef IAUDIO_X5 | 581 | #ifdef IAUDIO_X5 |
576 | #define MIN_CONTRAST_SETTING 0 | 582 | #define MIN_CONTRAST_SETTING 1 |
577 | #define MAX_CONTRAST_SETTING 29 | 583 | #define MAX_CONTRAST_SETTING 30 |
584 | #define DEFAULT_CONTRAST_SETTING 19 | ||
578 | #elif defined HAVE_LCD_CHARCELLS | 585 | #elif defined HAVE_LCD_CHARCELLS |
579 | #define MIN_CONTRAST_SETTING 5 | 586 | #define MIN_CONTRAST_SETTING 5 |
580 | #define MAX_CONTRAST_SETTING 31 | 587 | #define MAX_CONTRAST_SETTING 31 |
diff --git a/apps/settings_menu.c b/apps/settings_menu.c index f088c3be3d..20235f5a72 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c | |||
@@ -266,7 +266,7 @@ static bool remote_caption_backlight(void) | |||
266 | } | 266 | } |
267 | #endif /* HAVE_REMOTE_LCD */ | 267 | #endif /* HAVE_REMOTE_LCD */ |
268 | 268 | ||
269 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 269 | #ifdef HAVE_LCD_CONTRAST |
270 | static bool contrast(void) | 270 | static bool contrast(void) |
271 | { | 271 | { |
272 | return set_int( str(LANG_CONTRAST), "", UNIT_INT, | 272 | return set_int( str(LANG_CONTRAST), "", UNIT_INT, |
@@ -274,7 +274,7 @@ static bool contrast(void) | |||
274 | lcd_set_contrast, 1, MIN_CONTRAST_SETTING, | 274 | lcd_set_contrast, 1, MIN_CONTRAST_SETTING, |
275 | MAX_CONTRAST_SETTING, NULL ); | 275 | MAX_CONTRAST_SETTING, NULL ); |
276 | } | 276 | } |
277 | #endif /* HAVE_LCD_COLOR */ | 277 | #endif /* HAVE_LCD_CONTRAST */ |
278 | 278 | ||
279 | #ifdef HAVE_LCD_BITMAP | 279 | #ifdef HAVE_LCD_BITMAP |
280 | #ifndef HAVE_LCD_COLOR | 280 | #ifndef HAVE_LCD_COLOR |
@@ -1781,7 +1781,7 @@ static bool lcd_settings_menu(void) | |||
1781 | { ID2P(LANG_BRIGHTNESS), brightness }, | 1781 | { ID2P(LANG_BRIGHTNESS), brightness }, |
1782 | #endif | 1782 | #endif |
1783 | #endif /* CONFIG_BACKLIGHT */ | 1783 | #endif /* CONFIG_BACKLIGHT */ |
1784 | #if !defined(HAVE_LCD_COLOR) || defined(IAUDIO_X5) | 1784 | #ifdef HAVE_LCD_CONTRAST |
1785 | { ID2P(LANG_CONTRAST), contrast }, | 1785 | { ID2P(LANG_CONTRAST), contrast }, |
1786 | #endif | 1786 | #endif |
1787 | #ifdef HAVE_LCD_BITMAP | 1787 | #ifdef HAVE_LCD_BITMAP |
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h index 21fa636f0c..ae48eb6dbe 100644 --- a/firmware/export/config-iaudiox5.h +++ b/firmware/export/config-iaudiox5.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #define LCD_HEIGHT 128 | 22 | #define LCD_HEIGHT 128 |
23 | #define LCD_DEPTH 16 /* pseudo 262.144 colors */ | 23 | #define LCD_DEPTH 16 /* pseudo 262.144 colors */ |
24 | #define LCD_PIXELFORMAT RGB565 /* rgb565 */ | 24 | #define LCD_PIXELFORMAT RGB565 /* rgb565 */ |
25 | #define HAVE_LCD_CONTRAST | ||
25 | 26 | ||
26 | /* remote LCD */ | 27 | /* remote LCD */ |
27 | #define LCD_REMOTE_WIDTH 128 | 28 | #define LCD_REMOTE_WIDTH 128 |
@@ -40,6 +41,10 @@ | |||
40 | 41 | ||
41 | #define CONFIG_LCD LCD_X5 | 42 | #define CONFIG_LCD LCD_X5 |
42 | 43 | ||
44 | #define MIN_CONTRAST_SETTING 1 | ||
45 | #define MAX_CONTRAST_SETTING 30 | ||
46 | #define DEFAULT_CONTRAST_SETTING 19 /* Match boot contrast */ | ||
47 | |||
43 | /* Define this for LCD backlight available */ | 48 | /* Define this for LCD backlight available */ |
44 | #define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled !?!? */ | 49 | #define CONFIG_BACKLIGHT BL_IRIVER_H100 /* port controlled !?!? */ |
45 | #define HAVE_BACKLIGHT_BRIGHTNESS | 50 | #define HAVE_BACKLIGHT_BRIGHTNESS |
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index ee01fd862d..4bccd4e211 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -1045,7 +1045,9 @@ void shutdown_hw(void) | |||
1045 | lcd_update(); | 1045 | lcd_update(); |
1046 | sleep(HZ/16); | 1046 | sleep(HZ/16); |
1047 | #endif | 1047 | #endif |
1048 | #ifndef IAUDIO_X5 | ||
1048 | lcd_set_contrast(0); | 1049 | lcd_set_contrast(0); |
1050 | #endif | ||
1049 | #ifdef HAVE_REMOTE_LCD | 1051 | #ifdef HAVE_REMOTE_LCD |
1050 | remote_backlight_off(); | 1052 | remote_backlight_off(); |
1051 | lcd_remote_set_contrast(0); | 1053 | lcd_remote_set_contrast(0); |
diff --git a/firmware/target/coldfire/iaudio/x5/lcd-x5.c b/firmware/target/coldfire/iaudio/x5/lcd-x5.c index 7c155eac8f..c06521ef54 100755 --- a/firmware/target/coldfire/iaudio/x5/lcd-x5.c +++ b/firmware/target/coldfire/iaudio/x5/lcd-x5.c | |||
@@ -139,17 +139,20 @@ inline void lcd_write_data(const unsigned short* p_bytes, int count) | |||
139 | 139 | ||
140 | int lcd_default_contrast(void) | 140 | int lcd_default_contrast(void) |
141 | { | 141 | { |
142 | return 16; | 142 | return DEFAULT_CONTRAST_SETTING; |
143 | } | 143 | } |
144 | 144 | ||
145 | void lcd_set_contrast(int val) | 145 | void lcd_set_contrast(int val) |
146 | { | 146 | { |
147 | if (val >= 15) // val must'nt be 15 or 31 | 147 | /* Clamp val in range 0-14, 16-30 */ |
148 | ++val; | 148 | if (val < 1) |
149 | if (val > 30) | 149 | val = 0; |
150 | return; | 150 | else if (val <= 15) |
151 | 151 | --val; | |
152 | lcd_write_reg(0x0e, 0x201e + (val << 8)); | 152 | else if (val > 30) |
153 | val = 30; | ||
154 | |||
155 | lcd_write_reg(0x0e, 0x2018 + (val << 8)); | ||
153 | } | 156 | } |
154 | 157 | ||
155 | void lcd_set_invert_display(bool yesno) | 158 | void lcd_set_invert_display(bool yesno) |