diff options
-rw-r--r-- | apps/gui/color_picker.c | 2 | ||||
-rw-r--r-- | apps/gui/list.c | 25 | ||||
-rw-r--r-- | apps/lang/english.lang | 92 | ||||
-rw-r--r-- | apps/menus/display_menu.c | 55 | ||||
-rw-r--r-- | apps/recorder/recording.c | 36 | ||||
-rw-r--r-- | apps/screen_access.c | 5 | ||||
-rw-r--r-- | apps/screen_access.h | 5 | ||||
-rw-r--r-- | apps/settings.c | 3 | ||||
-rw-r--r-- | apps/settings.h | 6 | ||||
-rw-r--r-- | apps/settings_list.c | 18 | ||||
-rw-r--r-- | docs/CREDITS | 1 | ||||
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 98 | ||||
-rw-r--r-- | firmware/export/lcd.h | 8 | ||||
-rw-r--r-- | firmware/export/scroll_engine.h | 6 |
14 files changed, 327 insertions, 33 deletions
diff --git a/apps/gui/color_picker.c b/apps/gui/color_picker.c index 1116aaae23..513db74bf9 100644 --- a/apps/gui/color_picker.c +++ b/apps/gui/color_picker.c | |||
@@ -200,7 +200,7 @@ static void draw_screen(struct screen *display, char *title, | |||
200 | set_drawinfo(display, DRMODE_SOLID, text_color, | 200 | set_drawinfo(display, DRMODE_SOLID, text_color, |
201 | background_color); | 201 | background_color); |
202 | 202 | ||
203 | if (global_settings.invert_cursor) | 203 | if (global_settings.cursor_style != 0) |
204 | { | 204 | { |
205 | /* Draw solid bar selection bar */ | 205 | /* Draw solid bar selection bar */ |
206 | display->fillrect(0, | 206 | display->fillrect(0, |
diff --git a/apps/gui/list.c b/apps/gui/list.c index a8bbce8cda..6a7d21cc4b 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c | |||
@@ -141,7 +141,7 @@ static void gui_list_flash(struct gui_list * gui_list) | |||
141 | int selected_line=gui_list->selected_item-gui_list->start_item+SHOW_LIST_TITLE; | 141 | int selected_line=gui_list->selected_item-gui_list->start_item+SHOW_LIST_TITLE; |
142 | #ifdef HAVE_LCD_BITMAP | 142 | #ifdef HAVE_LCD_BITMAP |
143 | int line_ypos=display->getymargin()+display->char_height*selected_line; | 143 | int line_ypos=display->getymargin()+display->char_height*selected_line; |
144 | if (global_settings.invert_cursor) | 144 | if (global_settings.cursor_style) |
145 | { | 145 | { |
146 | int line_xpos=display->getxmargin(); | 146 | int line_xpos=display->getxmargin(); |
147 | display->set_drawmode(DRMODE_COMPLEMENT); | 147 | display->set_drawmode(DRMODE_COMPLEMENT); |
@@ -313,7 +313,7 @@ static void gui_list_draw_smart(struct gui_list *gui_list) | |||
313 | draw_scrollbar = (global_settings.scrollbar && | 313 | draw_scrollbar = (global_settings.scrollbar && |
314 | lines < gui_list->nb_items); | 314 | lines < gui_list->nb_items); |
315 | 315 | ||
316 | draw_cursor = !global_settings.invert_cursor && | 316 | draw_cursor = !global_settings.cursor_style && |
317 | gui_list->show_selection_marker; | 317 | gui_list->show_selection_marker; |
318 | text_pos = 0; /* here it's in pixels */ | 318 | text_pos = 0; /* here it's in pixels */ |
319 | if(draw_scrollbar || SHOW_LIST_TITLE) /* indent if there's | 319 | if(draw_scrollbar || SHOW_LIST_TITLE) /* indent if there's |
@@ -390,11 +390,28 @@ static void gui_list_draw_smart(struct gui_list *gui_list) | |||
390 | current_item < gui_list->selected_item + gui_list->selected_size) | 390 | current_item < gui_list->selected_item + gui_list->selected_size) |
391 | {/* The selected item must be displayed scrolling */ | 391 | {/* The selected item must be displayed scrolling */ |
392 | #ifdef HAVE_LCD_BITMAP | 392 | #ifdef HAVE_LCD_BITMAP |
393 | if (global_settings.invert_cursor)/* Display inverted-line-style*/ | 393 | if (global_settings.cursor_style == 1 |
394 | #ifdef HAVE_REMOTE_LCD | ||
395 | || display->screen_type == SCREEN_REMOTE | ||
396 | #endif | ||
397 | ) | ||
394 | { | 398 | { |
399 | /* Display inverted-line-style */ | ||
395 | style |= STYLE_INVERT; | 400 | style |= STYLE_INVERT; |
396 | } | 401 | } |
397 | else /* if (!global_settings.invert_cursor) */ | 402 | #ifdef HAVE_LCD_COLOR |
403 | else if (global_settings.cursor_style == 2) | ||
404 | { | ||
405 | /* Display colour line selector */ | ||
406 | style |= STYLE_COLORBAR; | ||
407 | } | ||
408 | else if (global_settings.cursor_style == 3) | ||
409 | { | ||
410 | /* Display gradient line selector */ | ||
411 | style |= STYLE_GRADIENT; | ||
412 | } | ||
413 | #endif | ||
414 | else /* if (!global_settings.cursor_style) */ | ||
398 | { | 415 | { |
399 | if (current_item % gui_list->selected_size != 0) | 416 | if (current_item % gui_list->selected_size != 0) |
400 | draw_cursor = false; | 417 | draw_cursor = false; |
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 490f6d38b0..de254a3b1d 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -2899,15 +2899,15 @@ | |||
2899 | user: | 2899 | user: |
2900 | <source> | 2900 | <source> |
2901 | *: none | 2901 | *: none |
2902 | lcd_bitmap: "Line Selector" | 2902 | lcd_bitmap: "Line Selector Type" |
2903 | </source> | 2903 | </source> |
2904 | <dest> | 2904 | <dest> |
2905 | *: none | 2905 | *: none |
2906 | lcd_bitmap: "Line Selector" | 2906 | lcd_bitmap: "Line Selector Type" |
2907 | </dest> | 2907 | </dest> |
2908 | <voice> | 2908 | <voice> |
2909 | *: none | 2909 | *: none |
2910 | lcd_bitmap: "Line Selector" | 2910 | lcd_bitmap: "Line Selector Type" |
2911 | </voice> | 2911 | </voice> |
2912 | </phrase> | 2912 | </phrase> |
2913 | <phrase> | 2913 | <phrase> |
@@ -11242,3 +11242,89 @@ | |||
11242 | usbstack: "Device Driver" | 11242 | usbstack: "Device Driver" |
11243 | </voice> | 11243 | </voice> |
11244 | </phrase> | 11244 | </phrase> |
11245 | <phrase> | ||
11246 | id: LANG_SELECTOR_START_COLOR | ||
11247 | desc: line selector color option | ||
11248 | user: | ||
11249 | <source> | ||
11250 | *: none | ||
11251 | lcd_color: "Line Selector Primary Colour" | ||
11252 | </source> | ||
11253 | <dest> | ||
11254 | *: none | ||
11255 | lcd_color: "Line Selector Primary Colour" | ||
11256 | </dest> | ||
11257 | <voice> | ||
11258 | *: none | ||
11259 | lcd_color: "Line Selector Primary Colour" | ||
11260 | </voice> | ||
11261 | </phrase> | ||
11262 | <phrase> | ||
11263 | id: LANG_SELECTOR_END_COLOR | ||
11264 | desc: line selector color option | ||
11265 | user: | ||
11266 | <source> | ||
11267 | *: none | ||
11268 | lcd_color: "Line Selector Secondary Colour" | ||
11269 | </source> | ||
11270 | <dest> | ||
11271 | *: none | ||
11272 | lcd_color: "Line Selector Secondary Colour" | ||
11273 | </dest> | ||
11274 | <voice> | ||
11275 | *: none | ||
11276 | lcd_color: "Line Selector Secondary Colour" | ||
11277 | </voice> | ||
11278 | </phrase> | ||
11279 | <phrase> | ||
11280 | id: LANG_SELECTOR_TEXT_COLOR | ||
11281 | desc: line selector text color option | ||
11282 | user: | ||
11283 | <source> | ||
11284 | *: none | ||
11285 | lcd_color: "Line Selector Text Colour" | ||
11286 | </source> | ||
11287 | <dest> | ||
11288 | *: none | ||
11289 | lcd_color: "Line Selector Text Colour" | ||
11290 | </dest> | ||
11291 | <voice> | ||
11292 | *: none | ||
11293 | lcd_color: "Line Selector Text Colour" | ||
11294 | </voice> | ||
11295 | </phrase> | ||
11296 | <phrase> | ||
11297 | id: LANG_INVERT_CURSOR_COLOR | ||
11298 | desc: in settings_menu | ||
11299 | user: | ||
11300 | <source> | ||
11301 | *: none | ||
11302 | lcd_color: "Bar (Solid Colour)" | ||
11303 | </source> | ||
11304 | <dest> | ||
11305 | *: none | ||
11306 | lcd_color: "Bar (Solid Colour)" | ||
11307 | </dest> | ||
11308 | <voice> | ||
11309 | *: none | ||
11310 | lcd_color: "Bar (Solid Colour)" | ||
11311 | </voice> | ||
11312 | </phrase> | ||
11313 | <phrase> | ||
11314 | id: LANG_INVERT_CURSOR_GRADIENT | ||
11315 | desc: in settings_menu | ||
11316 | user: | ||
11317 | <source> | ||
11318 | *: none | ||
11319 | lcd_color: "Bar (Gradient Colour)" | ||
11320 | </source> | ||
11321 | <dest> | ||
11322 | *: none | ||
11323 | lcd_color: "Bar (Gradient Colour)" | ||
11324 | </dest> | ||
11325 | <voice> | ||
11326 | *: none | ||
11327 | lcd_color: "Bar (Gradient Colour)" | ||
11328 | </voice> | ||
11329 | </phrase> | ||
11330 | |||
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c index c1e574a974..11d1f25e7f 100644 --- a/apps/menus/display_menu.c +++ b/apps/menus/display_menu.c | |||
@@ -115,7 +115,7 @@ MENUITEM_SETTING(invert, &global_settings.invert, NULL); | |||
115 | #ifdef HAVE_LCD_FLIP | 115 | #ifdef HAVE_LCD_FLIP |
116 | MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback); | 116 | MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback); |
117 | #endif | 117 | #endif |
118 | MENUITEM_SETTING(invert_cursor, &global_settings.invert_cursor, NULL); | 118 | MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL); |
119 | #endif /* HAVE_LCD_BITMAP */ | 119 | #endif /* HAVE_LCD_BITMAP */ |
120 | #if LCD_DEPTH > 1 | 120 | #if LCD_DEPTH > 1 |
121 | /** | 121 | /** |
@@ -157,13 +157,55 @@ static int set_bg_color(void) | |||
157 | settings_save(); | 157 | settings_save(); |
158 | return res; | 158 | return res; |
159 | } | 159 | } |
160 | |||
161 | /* Line selector colour */ | ||
162 | static int set_lss_color(void) | ||
163 | { | ||
164 | int res; | ||
165 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_START_COLOR), | ||
166 | &global_settings.lss_color,-1); | ||
167 | |||
168 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
169 | settings_save(); | ||
170 | return res; | ||
171 | } | ||
172 | |||
173 | static int set_lse_color(void) | ||
174 | { | ||
175 | int res; | ||
176 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_END_COLOR), | ||
177 | &global_settings.lse_color,-1); | ||
178 | |||
179 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
180 | settings_save(); | ||
181 | return res; | ||
182 | } | ||
183 | |||
184 | /* Line selector text colour */ | ||
185 | static int set_lst_color(void) | ||
186 | { | ||
187 | int res; | ||
188 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_TEXT_COLOR), | ||
189 | &global_settings.lst_color,global_settings.lss_color); | ||
190 | |||
191 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
192 | settings_save(); | ||
193 | return res; | ||
194 | } | ||
195 | |||
160 | static int reset_color(void) | 196 | static int reset_color(void) |
161 | { | 197 | { |
162 | global_settings.fg_color = LCD_DEFAULT_FG; | 198 | global_settings.fg_color = LCD_DEFAULT_FG; |
163 | global_settings.bg_color = LCD_DEFAULT_BG; | 199 | global_settings.bg_color = LCD_DEFAULT_BG; |
200 | global_settings.lss_color = LCD_DEFAULT_LS; | ||
201 | global_settings.lse_color = LCD_DEFAULT_BG; | ||
202 | global_settings.lst_color = LCD_DEFAULT_FG; | ||
164 | 203 | ||
165 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | 204 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); |
166 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | 205 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); |
206 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
207 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
208 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
167 | settings_save(); | 209 | settings_save(); |
168 | return 0; | 210 | return 0; |
169 | } | 211 | } |
@@ -171,6 +213,12 @@ MENUITEM_FUNCTION(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR), | |||
171 | set_bg_color, NULL, NULL, Icon_NOICON); | 213 | set_bg_color, NULL, NULL, Icon_NOICON); |
172 | MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), | 214 | MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), |
173 | set_fg_color, NULL, NULL, Icon_NOICON); | 215 | set_fg_color, NULL, NULL, Icon_NOICON); |
216 | MENUITEM_FUNCTION(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR), | ||
217 | set_lss_color, NULL, NULL, Icon_NOICON); | ||
218 | MENUITEM_FUNCTION(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR), | ||
219 | set_lse_color, NULL, NULL, Icon_NOICON); | ||
220 | MENUITEM_FUNCTION(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR), | ||
221 | set_lst_color, NULL, NULL, Icon_NOICON); | ||
174 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), | 222 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), |
175 | reset_color, NULL, NULL, Icon_NOICON); | 223 | reset_color, NULL, NULL, Icon_NOICON); |
176 | #endif | 224 | #endif |
@@ -208,8 +256,11 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), | |||
208 | # ifdef HAVE_LCD_FLIP | 256 | # ifdef HAVE_LCD_FLIP |
209 | ,&flip_display | 257 | ,&flip_display |
210 | # endif | 258 | # endif |
211 | ,&invert_cursor | 259 | ,&cursor_style |
212 | #endif /* HAVE_LCD_BITMAP */ | 260 | #endif /* HAVE_LCD_BITMAP */ |
261 | #ifdef HAVE_LCD_COLOR | ||
262 | ,&set_lss_col, &set_lse_col, &set_lst_col | ||
263 | #endif | ||
213 | #if LCD_DEPTH > 1 | 264 | #if LCD_DEPTH > 1 |
214 | ,&clear_main_bd, | 265 | ,&clear_main_bd, |
215 | #endif | 266 | #endif |
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index f643b8442a..bd04d26929 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c | |||
@@ -857,6 +857,16 @@ bool recording_screen(bool no_source) | |||
857 | ID2P(LANG_GIGABYTE) | 857 | ID2P(LANG_GIGABYTE) |
858 | }; | 858 | }; |
859 | 859 | ||
860 | int style = STYLE_INVERT; | ||
861 | #ifdef HAVE_LCD_COLOR | ||
862 | if (global_settings.cursor_style == 2) { | ||
863 | style |= STYLE_COLORBAR; | ||
864 | } | ||
865 | else if (global_settings.cursor_style == 3) { | ||
866 | style |= STYLE_GRADIENT; | ||
867 | } | ||
868 | #endif | ||
869 | |||
860 | struct audio_recording_options rec_options; | 870 | struct audio_recording_options rec_options; |
861 | if (check_dir(global_settings.rec_directory) == false) | 871 | if (check_dir(global_settings.rec_directory) == false) |
862 | { | 872 | { |
@@ -930,7 +940,7 @@ bool recording_screen(bool no_source) | |||
930 | { | 940 | { |
931 | screens[i].setfont(FONT_SYSFIXED); | 941 | screens[i].setfont(FONT_SYSFIXED); |
932 | screens[i].getstringsize("M", &w, &h); | 942 | screens[i].getstringsize("M", &w, &h); |
933 | screens[i].setmargins(global_settings.invert_cursor ? 0 : w, 8); | 943 | screens[i].setmargins(global_settings.cursor_style ? 0 : w, 8); |
934 | filename_offset[i] = ((screens[i].height >= 80) ? 1 : 0); | 944 | filename_offset[i] = ((screens[i].height >= 80) ? 1 : 0); |
935 | pm_y[i] = 8 + h * (2 + filename_offset[i]); | 945 | pm_y[i] = 8 + h * (2 + filename_offset[i]); |
936 | } | 946 | } |
@@ -1331,7 +1341,7 @@ bool recording_screen(bool no_source) | |||
1331 | { | 1341 | { |
1332 | screens[i].setfont(FONT_SYSFIXED); | 1342 | screens[i].setfont(FONT_SYSFIXED); |
1333 | screens[i].setmargins( | 1343 | screens[i].setmargins( |
1334 | global_settings.invert_cursor ? 0 : w, 8); | 1344 | global_settings.cursor_style ? 0 : w, 8); |
1335 | } | 1345 | } |
1336 | } | 1346 | } |
1337 | } | 1347 | } |
@@ -1555,11 +1565,11 @@ bool recording_screen(bool no_source) | |||
1555 | global_settings.volume, | 1565 | global_settings.volume, |
1556 | buf2, sizeof(buf2))); | 1566 | buf2, sizeof(buf2))); |
1557 | 1567 | ||
1558 | if (global_settings.invert_cursor && (pos++ == cursor)) | 1568 | if (global_settings.cursor_style && (pos++ == cursor)) |
1559 | { | 1569 | { |
1560 | for(i = 0; i < screen_update; i++) | 1570 | for(i = 0; i < screen_update; i++) |
1561 | screens[i].puts_style_offset(0, filename_offset[i] + | 1571 | screens[i].puts_style_offset(0, filename_offset[i] + |
1562 | PM_HEIGHT + 2, buf, STYLE_INVERT,0); | 1572 | PM_HEIGHT + 2, buf, style,0); |
1563 | } | 1573 | } |
1564 | else | 1574 | else |
1565 | { | 1575 | { |
@@ -1574,11 +1584,11 @@ bool recording_screen(bool no_source) | |||
1574 | fmt_gain(SOUND_MIC_GAIN, | 1584 | fmt_gain(SOUND_MIC_GAIN, |
1575 | global_settings.rec_mic_gain, | 1585 | global_settings.rec_mic_gain, |
1576 | buf2, sizeof(buf2))); | 1586 | buf2, sizeof(buf2))); |
1577 | if(global_settings.invert_cursor && ((1==cursor)||(2==cursor))) | 1587 | if(global_settings.cursor_style && ((1==cursor)||(2==cursor))) |
1578 | { | 1588 | { |
1579 | for(i = 0; i < screen_update; i++) | 1589 | for(i = 0; i < screen_update; i++) |
1580 | screens[i].puts_style_offset(0, filename_offset[i] + | 1590 | screens[i].puts_style_offset(0, filename_offset[i] + |
1581 | PM_HEIGHT + 3, buf, STYLE_INVERT,0); | 1591 | PM_HEIGHT + 3, buf, style,0); |
1582 | } | 1592 | } |
1583 | else | 1593 | else |
1584 | { | 1594 | { |
@@ -1598,11 +1608,11 @@ bool recording_screen(bool no_source) | |||
1598 | fmt_gain(SOUND_LEFT_GAIN, | 1608 | fmt_gain(SOUND_LEFT_GAIN, |
1599 | global_settings.rec_left_gain, | 1609 | global_settings.rec_left_gain, |
1600 | buf2, sizeof(buf2))); | 1610 | buf2, sizeof(buf2))); |
1601 | if(global_settings.invert_cursor && ((1==cursor)||(2==cursor))) | 1611 | if(global_settings.cursor_style && ((1==cursor)||(2==cursor))) |
1602 | { | 1612 | { |
1603 | for(i = 0; i < screen_update; i++) | 1613 | for(i = 0; i < screen_update; i++) |
1604 | screens[i].puts_style_offset(0, filename_offset[i] + | 1614 | screens[i].puts_style_offset(0, filename_offset[i] + |
1605 | PM_HEIGHT + 3, buf, STYLE_INVERT,0); | 1615 | PM_HEIGHT + 3, buf, style,0); |
1606 | } | 1616 | } |
1607 | else | 1617 | else |
1608 | { | 1618 | { |
@@ -1616,11 +1626,11 @@ bool recording_screen(bool no_source) | |||
1616 | fmt_gain(SOUND_RIGHT_GAIN, | 1626 | fmt_gain(SOUND_RIGHT_GAIN, |
1617 | global_settings.rec_right_gain, | 1627 | global_settings.rec_right_gain, |
1618 | buf2, sizeof(buf2))); | 1628 | buf2, sizeof(buf2))); |
1619 | if(global_settings.invert_cursor && ((1==cursor)||(3==cursor))) | 1629 | if(global_settings.cursor_style && ((1==cursor)||(3==cursor))) |
1620 | { | 1630 | { |
1621 | for(i = 0; i < screen_update; i++) | 1631 | for(i = 0; i < screen_update; i++) |
1622 | screens[i].puts_style_offset(0, filename_offset[i] + | 1632 | screens[i].puts_style_offset(0, filename_offset[i] + |
1623 | PM_HEIGHT + 4, buf, STYLE_INVERT,0); | 1633 | PM_HEIGHT + 4, buf, style,0); |
1624 | } | 1634 | } |
1625 | else | 1635 | else |
1626 | { | 1636 | { |
@@ -1701,11 +1711,11 @@ bool recording_screen(bool no_source) | |||
1701 | global_settings.rec_right_gain)/2, | 1711 | global_settings.rec_right_gain)/2, |
1702 | buf2, sizeof(buf2))); | 1712 | buf2, sizeof(buf2))); |
1703 | 1713 | ||
1704 | if(global_settings.invert_cursor && ((cursor==4) || (cursor==5))) | 1714 | if(global_settings.cursor_style && ((cursor==4) || (cursor==5))) |
1705 | { | 1715 | { |
1706 | for(i = 0; i < screen_update; i++) | 1716 | for(i = 0; i < screen_update; i++) |
1707 | screens[i].puts_style_offset(0, filename_offset[i] + | 1717 | screens[i].puts_style_offset(0, filename_offset[i] + |
1708 | PM_HEIGHT + line[i], buf, STYLE_INVERT,0); | 1718 | PM_HEIGHT + line[i], buf, style,0); |
1709 | } | 1719 | } |
1710 | else if ( | 1720 | else if ( |
1711 | global_settings.rec_source == AUDIO_SRC_MIC | 1721 | global_settings.rec_source == AUDIO_SRC_MIC |
@@ -1737,7 +1747,7 @@ bool recording_screen(bool no_source) | |||
1737 | } | 1747 | } |
1738 | #endif /* HAVE_AGC */ | 1748 | #endif /* HAVE_AGC */ |
1739 | 1749 | ||
1740 | if(!global_settings.invert_cursor) { | 1750 | if(!global_settings.cursor_style) { |
1741 | switch(cursor) | 1751 | switch(cursor) |
1742 | { | 1752 | { |
1743 | case 1: | 1753 | case 1: |
diff --git a/apps/screen_access.c b/apps/screen_access.c index 251bd7e848..a10e96475e 100644 --- a/apps/screen_access.c +++ b/apps/screen_access.c | |||
@@ -77,6 +77,11 @@ struct screen screens[NB_SCREENS] = | |||
77 | .get_foreground=&lcd_get_foreground, | 77 | .get_foreground=&lcd_get_foreground, |
78 | .set_background=&lcd_set_background, | 78 | .set_background=&lcd_set_background, |
79 | .set_foreground=&lcd_set_foreground, | 79 | .set_foreground=&lcd_set_foreground, |
80 | #ifdef HAVE_LCD_COLOR | ||
81 | .set_selector_start=&lcd_set_selector_start, | ||
82 | .set_selector_end=&lcd_set_selector_end, | ||
83 | .set_selector_text=&lcd_set_selector_text, | ||
84 | #endif | ||
80 | #endif /* LCD_DEPTH > 1 */ | 85 | #endif /* LCD_DEPTH > 1 */ |
81 | .update_rect=&lcd_update_rect, | 86 | .update_rect=&lcd_update_rect, |
82 | .fillrect=&lcd_fillrect, | 87 | .fillrect=&lcd_fillrect, |
diff --git a/apps/screen_access.h b/apps/screen_access.h index 05a53d5d0f..6333251d29 100644 --- a/apps/screen_access.h +++ b/apps/screen_access.h | |||
@@ -107,6 +107,11 @@ struct screen | |||
107 | void (*set_background)(unsigned background); | 107 | void (*set_background)(unsigned background); |
108 | void (*set_foreground)(unsigned foreground); | 108 | void (*set_foreground)(unsigned foreground); |
109 | #endif /* (LCD_DEPTH > 1) || (LCD_REMOTE_DEPTH > 1) */ | 109 | #endif /* (LCD_DEPTH > 1) || (LCD_REMOTE_DEPTH > 1) */ |
110 | #if defined(HAVE_LCD_COLOR) | ||
111 | void (*set_selector_start)(unsigned selector); | ||
112 | void (*set_selector_end)(unsigned selector); | ||
113 | void (*set_selector_text)(unsigned selector_text); | ||
114 | #endif | ||
110 | void (*update_rect)(int x, int y, int width, int height); | 115 | void (*update_rect)(int x, int y, int width, int height); |
111 | void (*fillrect)(int x, int y, int width, int height); | 116 | void (*fillrect)(int x, int y, int width, int height); |
112 | void (*drawrect)(int x, int y, int width, int height); | 117 | void (*drawrect)(int x, int y, int width, int height); |
diff --git a/apps/settings.c b/apps/settings.c index 6e26574f6a..a020c18e1b 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -778,6 +778,9 @@ void settings_apply(void) | |||
778 | #ifdef HAVE_LCD_COLOR | 778 | #ifdef HAVE_LCD_COLOR |
779 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | 779 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); |
780 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | 780 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); |
781 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
782 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
783 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
781 | #endif | 784 | #endif |
782 | 785 | ||
783 | #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) | 786 | #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) |
diff --git a/apps/settings.h b/apps/settings.h index 72f607d693..ee8fd48831 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -412,8 +412,7 @@ struct user_settings | |||
412 | int contrast; /* lcd contrast */ | 412 | int contrast; /* lcd contrast */ |
413 | #endif | 413 | #endif |
414 | bool invert; /* invert display */ | 414 | bool invert; /* invert display */ |
415 | bool invert_cursor; /* invert the current file in dir browser and menu | 415 | int cursor_style; /* style of the selection cursor */ |
416 | instead of using the default cursor */ | ||
417 | bool flip_display; /* turn display (and button layout) by 180 degrees */ | 416 | bool flip_display; /* turn display (and button layout) by 180 degrees */ |
418 | int poweroff; /* power off timer */ | 417 | int poweroff; /* power off timer */ |
419 | int backlight_timeout; /* backlight off timeout: 0-18 0=never, | 418 | int backlight_timeout; /* backlight off timeout: 0-18 0=never, |
@@ -641,6 +640,9 @@ struct user_settings | |||
641 | #ifdef HAVE_LCD_COLOR | 640 | #ifdef HAVE_LCD_COLOR |
642 | int bg_color; /* background color native format */ | 641 | int bg_color; /* background color native format */ |
643 | int fg_color; /* foreground color native format */ | 642 | int fg_color; /* foreground color native format */ |
643 | int lss_color; /* background color for the selector or start color for the gradient */ | ||
644 | int lse_color; /* end color for the selector gradient */ | ||
645 | int lst_color; /* color of the text for the selector */ | ||
644 | #endif | 646 | #endif |
645 | bool party_mode; /* party mode - unstoppable music */ | 647 | bool party_mode; /* party mode - unstoppable music */ |
646 | 648 | ||
diff --git a/apps/settings_list.c b/apps/settings_list.c index 176d1cee69..51ac3eb473 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -457,8 +457,16 @@ const struct settings_list settings[] = { | |||
457 | OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL), | 457 | OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL), |
458 | #endif | 458 | #endif |
459 | /* display */ | 459 | /* display */ |
460 | BOOL_SETTING(F_TEMPVAR, invert_cursor, LANG_INVERT_CURSOR, true ,"invert cursor", off_on, | 460 | CHOICE_SETTING(F_TEMPVAR|F_THEMESETTING, cursor_style, LANG_INVERT_CURSOR, 1, |
461 | LANG_INVERT_CURSOR_BAR, LANG_INVERT_CURSOR_POINTER, NULL), | 461 | #ifdef HAVE_LCD_COLOR |
462 | "selector type", "pointer,bar (inverse),bar (color),bar (gradient)", | ||
463 | NULL, 4, | ||
464 | ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR), | ||
465 | ID2P(LANG_INVERT_CURSOR_COLOR), ID2P(LANG_INVERT_CURSOR_GRADIENT)), | ||
466 | #else | ||
467 | "selector type", "pointer,bar (inverse)", NULL, 2, | ||
468 | ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR)), | ||
469 | #endif | ||
462 | OFFON_SETTING(F_THEMESETTING|F_TEMPVAR, statusbar, | 470 | OFFON_SETTING(F_THEMESETTING|F_TEMPVAR, statusbar, |
463 | LANG_STATUS_BAR, true,"statusbar", NULL), | 471 | LANG_STATUS_BAR, true,"statusbar", NULL), |
464 | OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL), | 472 | OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL), |
@@ -625,6 +633,12 @@ const struct settings_list settings[] = { | |||
625 | "foreground color",NULL,UNUSED}, | 633 | "foreground color",NULL,UNUSED}, |
626 | {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,INT(LCD_DEFAULT_BG), | 634 | {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,INT(LCD_DEFAULT_BG), |
627 | "background color",NULL,UNUSED}, | 635 | "background color",NULL,UNUSED}, |
636 | {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lss_color,-1,INT(LCD_DEFAULT_LS), | ||
637 | "line selector start color",NULL,UNUSED}, | ||
638 | {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lse_color,-1,INT(LCD_DEFAULT_BG), | ||
639 | "line selector end color",NULL,UNUSED}, | ||
640 | {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lst_color,-1,INT(LCD_DEFAULT_FG), | ||
641 | "line selector text color",NULL,UNUSED}, | ||
628 | #endif | 642 | #endif |
629 | /* more playback */ | 643 | /* more playback */ |
630 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), | 644 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), |
diff --git a/docs/CREDITS b/docs/CREDITS index 77d34f1abc..542278e914 100644 --- a/docs/CREDITS +++ b/docs/CREDITS | |||
@@ -334,6 +334,7 @@ Peter Harley | |||
334 | Max Kelley | 334 | Max Kelley |
335 | Alexander Eickhoff | 335 | Alexander Eickhoff |
336 | Pinitnun Shanasabang | 336 | Pinitnun Shanasabang |
337 | Ken Fazzone | ||
337 | 338 | ||
338 | The libmad team | 339 | The libmad team |
339 | The wavpack team | 340 | The wavpack team |
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index 96a9e1a4d7..44d468521d 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c | |||
@@ -51,9 +51,15 @@ static long lcd_backdrop_offset IDATA_ATTR = 0; | |||
51 | #if !defined(TOSHIBA_GIGABEAT_F) || defined(SIMULATOR) | 51 | #if !defined(TOSHIBA_GIGABEAT_F) || defined(SIMULATOR) |
52 | static unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; | 52 | static unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; |
53 | static unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; | 53 | static unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; |
54 | static unsigned lss_pattern IDATA_ATTR = LCD_DEFAULT_LS; | ||
55 | static unsigned lse_pattern IDATA_ATTR = LCD_DEFAULT_BG; | ||
56 | static unsigned lst_pattern IDATA_ATTR = LCD_DEFAULT_FG; | ||
54 | #else | 57 | #else |
55 | unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; | 58 | unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; |
56 | unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; | 59 | unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; |
60 | unsigned lss_pattern IDATA_ATTR = LCD_DEFAULT_LS; | ||
61 | unsigned lse_pattern IDATA_ATTR = LCD_DEFAULT_BG; | ||
62 | unsigned lst_pattern IDATA_ATTR = LCD_DEFAULT_FG; | ||
57 | #endif | 63 | #endif |
58 | 64 | ||
59 | static int drawmode = DRMODE_SOLID; | 65 | static int drawmode = DRMODE_SOLID; |
@@ -103,6 +109,21 @@ unsigned lcd_get_background(void) | |||
103 | return bg_pattern; | 109 | return bg_pattern; |
104 | } | 110 | } |
105 | 111 | ||
112 | void lcd_set_selector_start(unsigned color) | ||
113 | { | ||
114 | lss_pattern = color; | ||
115 | } | ||
116 | |||
117 | void lcd_set_selector_end(unsigned color) | ||
118 | { | ||
119 | lse_pattern = color; | ||
120 | } | ||
121 | |||
122 | void lcd_set_selector_text(unsigned color) | ||
123 | { | ||
124 | lst_pattern = color; | ||
125 | } | ||
126 | |||
106 | void lcd_set_drawinfo(int mode, unsigned fg_color, unsigned bg_color) | 127 | void lcd_set_drawinfo(int mode, unsigned fg_color, unsigned bg_color) |
107 | { | 128 | { |
108 | lcd_set_drawmode(mode); | 129 | lcd_set_drawmode(mode); |
@@ -808,16 +829,48 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, | |||
808 | ypos = ymargin + y*h; | 829 | ypos = ymargin + y*h; |
809 | drawmode = (style & STYLE_INVERT) ? | 830 | drawmode = (style & STYLE_INVERT) ? |
810 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | 831 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; |
811 | if (style & STYLE_COLORED) { | 832 | if (style & STYLE_GRADIENT || style & STYLE_COLORBAR) { |
833 | fg_pattern = lss_pattern; | ||
834 | } | ||
835 | else if (style & STYLE_COLORED) { | ||
812 | if (drawmode == DRMODE_SOLID) | 836 | if (drawmode == DRMODE_SOLID) |
813 | fg_pattern = style & STYLE_COLOR_MASK; | 837 | fg_pattern = style & STYLE_COLOR_MASK; |
814 | else | 838 | else |
815 | bg_pattern = style & STYLE_COLOR_MASK; | 839 | bg_pattern = style & STYLE_COLOR_MASK; |
816 | } | 840 | } |
817 | lcd_putsxyofs(xpos, ypos, offset, str); | ||
818 | drawmode ^= DRMODE_INVERSEVID; | 841 | drawmode ^= DRMODE_INVERSEVID; |
819 | xrect = xpos + MAX(w - offset, 0); | 842 | xrect = xpos + MAX(w - offset, 0); |
820 | lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h); | 843 | |
844 | if (style & STYLE_GRADIENT) { | ||
845 | int h_r = RGB_UNPACK_RED(lss_pattern) << 16; | ||
846 | int h_b = RGB_UNPACK_BLUE(lss_pattern) << 16; | ||
847 | int h_g = RGB_UNPACK_GREEN(lss_pattern) << 16; | ||
848 | int rstep = (h_r - ((signed)RGB_UNPACK_RED(lse_pattern) << 16)) / h; | ||
849 | int gstep = (h_g - ((signed)RGB_UNPACK_GREEN(lse_pattern) << 16)) / h; | ||
850 | int bstep = (h_b - ((signed)RGB_UNPACK_BLUE(lse_pattern) << 16)) / h; | ||
851 | int count; | ||
852 | |||
853 | drawmode = DRMODE_FG; | ||
854 | for(count = 0; count < h; count++) { | ||
855 | lcd_hline(xpos, LCD_WIDTH, ypos + count); | ||
856 | h_r -= rstep; | ||
857 | h_g -= gstep; | ||
858 | h_b -= bstep; | ||
859 | fg_pattern = LCD_RGBPACK(h_r >> 16, h_g >> 16, h_b >> 16); | ||
860 | } | ||
861 | fg_pattern = lst_pattern; | ||
862 | } | ||
863 | else if (style & STYLE_COLORBAR) { | ||
864 | drawmode = DRMODE_FG; | ||
865 | lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h); | ||
866 | fg_pattern = lst_pattern; | ||
867 | } | ||
868 | else { | ||
869 | lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h); | ||
870 | drawmode = (style & STYLE_INVERT) ? | ||
871 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | ||
872 | } | ||
873 | lcd_putsxyofs(xpos, ypos, offset, str); | ||
821 | drawmode = lastmode; | 874 | drawmode = lastmode; |
822 | fg_pattern = oldfgcolor; | 875 | fg_pattern = oldfgcolor; |
823 | bg_pattern = oldbgcolor; | 876 | bg_pattern = oldbgcolor; |
@@ -852,7 +905,13 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, | |||
852 | s->start_tick = current_tick + lcd_scroll_info.delay; | 905 | s->start_tick = current_tick + lcd_scroll_info.delay; |
853 | s->invert = false; | 906 | s->invert = false; |
854 | if (style & STYLE_INVERT) { | 907 | if (style & STYLE_INVERT) { |
855 | s->invert = true; | 908 | s->invert = 1; |
909 | } | ||
910 | else if (style & STYLE_COLORBAR) { | ||
911 | s->invert = 2; | ||
912 | } | ||
913 | else if (style & STYLE_GRADIENT) { | ||
914 | s->invert = 3; | ||
856 | } | 915 | } |
857 | lcd_puts_style_offset(x,y,string,style,offset); | 916 | lcd_puts_style_offset(x,y,string,style,offset); |
858 | 917 | ||
@@ -961,8 +1020,37 @@ void lcd_scroll_fn(void) | |||
961 | } | 1020 | } |
962 | 1021 | ||
963 | lastmode = drawmode; | 1022 | lastmode = drawmode; |
964 | drawmode = s->invert ? | 1023 | drawmode = s->invert == 1 ? |
965 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | 1024 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; |
1025 | if (s->invert == 2) { | ||
1026 | fg_pattern = lss_pattern; | ||
1027 | drawmode = DRMODE_FG; | ||
1028 | lcd_fillrect(0, ypos, LCD_WIDTH, pf->height); | ||
1029 | fg_pattern = lst_pattern; | ||
1030 | } | ||
1031 | else if (s->invert == 3) { | ||
1032 | int h_r = RGB_UNPACK_RED(lss_pattern) << 16; | ||
1033 | int h_b = RGB_UNPACK_BLUE(lss_pattern) << 16; | ||
1034 | int h_g = RGB_UNPACK_GREEN(lss_pattern) << 16; | ||
1035 | int rstep = (h_r - ((signed)RGB_UNPACK_RED(lse_pattern) << 16)) | ||
1036 | / pf->height; | ||
1037 | int gstep = (h_g - ((signed)RGB_UNPACK_GREEN(lse_pattern) << 16)) | ||
1038 | / pf->height; | ||
1039 | int bstep = (h_b - ((signed)RGB_UNPACK_BLUE(lse_pattern) << 16)) | ||
1040 | / pf->height; | ||
1041 | unsigned int count; | ||
1042 | |||
1043 | fg_pattern = lss_pattern; | ||
1044 | drawmode = DRMODE_FG; | ||
1045 | for(count = 0; count < pf->height; count++) { | ||
1046 | lcd_hline(0, LCD_WIDTH , ypos + count); | ||
1047 | h_r -= rstep; | ||
1048 | h_g -= gstep; | ||
1049 | h_b -= bstep; | ||
1050 | fg_pattern = LCD_RGBPACK(h_r >> 16, h_g >> 16, h_b >> 16); | ||
1051 | } | ||
1052 | fg_pattern = lst_pattern; | ||
1053 | } | ||
966 | lcd_putsxyofs(xpos, ypos, s->offset, s->line); | 1054 | lcd_putsxyofs(xpos, ypos, s->offset, s->line); |
967 | drawmode = lastmode; | 1055 | drawmode = lastmode; |
968 | lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height); | 1056 | lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height); |
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index ac0aea8664..2ea9906a2a 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h | |||
@@ -27,6 +27,8 @@ | |||
27 | #define STYLE_DEFAULT 0x00000000 | 27 | #define STYLE_DEFAULT 0x00000000 |
28 | #define STYLE_INVERT 0x20000000 | 28 | #define STYLE_INVERT 0x20000000 |
29 | #define STYLE_COLORED 0x10000000 | 29 | #define STYLE_COLORED 0x10000000 |
30 | #define STYLE_COLORBAR 0x40000000 | ||
31 | #define STYLE_GRADIENT 0x80000000 | ||
30 | #define STYLE_COLOR_MASK 0x0000FFFF | 32 | #define STYLE_COLOR_MASK 0x0000FFFF |
31 | 33 | ||
32 | #ifdef SIMULATOR | 34 | #ifdef SIMULATOR |
@@ -233,6 +235,7 @@ static inline unsigned lcd_color_to_native(unsigned color) | |||
233 | #define LCD_WHITE LCD_RGBPACK(255, 255, 255) | 235 | #define LCD_WHITE LCD_RGBPACK(255, 255, 255) |
234 | #define LCD_DEFAULT_FG LCD_BLACK | 236 | #define LCD_DEFAULT_FG LCD_BLACK |
235 | #define LCD_DEFAULT_BG LCD_RGBPACK(182, 198, 229) /* rockbox blue */ | 237 | #define LCD_DEFAULT_BG LCD_RGBPACK(182, 198, 229) /* rockbox blue */ |
238 | #define LCD_DEFAULT_LS LCD_WHITE | ||
236 | 239 | ||
237 | #elif LCD_DEPTH > 1 /* greyscale */ | 240 | #elif LCD_DEPTH > 1 /* greyscale */ |
238 | 241 | ||
@@ -355,6 +358,11 @@ extern void lcd_set_foreground(unsigned foreground); | |||
355 | extern unsigned lcd_get_foreground(void); | 358 | extern unsigned lcd_get_foreground(void); |
356 | extern void lcd_set_background(unsigned background); | 359 | extern void lcd_set_background(unsigned background); |
357 | extern unsigned lcd_get_background(void); | 360 | extern unsigned lcd_get_background(void); |
361 | #ifdef HAVE_LCD_COLOR | ||
362 | extern void lcd_set_selector_start(unsigned selector); | ||
363 | extern void lcd_set_selector_end(unsigned selector); | ||
364 | extern void lcd_set_selector_text(unsigned selector_text); | ||
365 | #endif | ||
358 | extern void lcd_set_drawinfo(int mode, unsigned foreground, | 366 | extern void lcd_set_drawinfo(int mode, unsigned foreground, |
359 | unsigned background); | 367 | unsigned background); |
360 | void lcd_set_backdrop(fb_data* backdrop); | 368 | void lcd_set_backdrop(fb_data* backdrop); |
diff --git a/firmware/export/scroll_engine.h b/firmware/export/scroll_engine.h index aa11a9ba1f..f40a00f96c 100644 --- a/firmware/export/scroll_engine.h +++ b/firmware/export/scroll_engine.h | |||
@@ -43,8 +43,12 @@ struct scrollinfo | |||
43 | int startx; | 43 | int startx; |
44 | #ifdef HAVE_LCD_BITMAP | 44 | #ifdef HAVE_LCD_BITMAP |
45 | int width; /* length of line in pixels */ | 45 | int width; /* length of line in pixels */ |
46 | bool invert; /* invert the scrolled text */ | 46 | #ifdef HAVE_LCD_COLOR |
47 | int invert; /* invert the scrolled text */ | ||
48 | #else | ||
49 | bool invert; | ||
47 | #endif | 50 | #endif |
51 | #endif/* HAVE_LCD_BITMAP */ | ||
48 | bool backward; /* scroll presently forward or backward? */ | 52 | bool backward; /* scroll presently forward or backward? */ |
49 | bool bidir; | 53 | bool bidir; |
50 | long start_tick; | 54 | long start_tick; |