diff options
author | Thomas Martitz <kugel@rockbox.org> | 2014-01-11 19:17:58 +0100 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2014-01-11 19:17:58 +0100 |
commit | 26b317e094a37c43d23e661cf99fe858c159f1b2 (patch) | |
tree | 7e0cfbb80fee1b15435a6a261d99186dac2e0455 /firmware/export/scroll_engine.h | |
parent | 2a471c9e84ddc4f6f407d4fe3ad2a21a1d0e3723 (diff) | |
download | rockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.tar.gz rockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.zip |
scroll engine: Factor out renderer function so it can be called by lcd code.
This is used by lcd_puts_scroll_worker() to render the line immediately
instead of waiting for the next scroll tick when only the text was updated.
Previously lcd_puts_scroll_worker() did not render anything in this case
which could lead to visible blinking.
This fixes blinking scrolling lines with dynamic text in the skin engine.
Change-Id: I475bde8c8eb7c92f505e3c5ecf4d32bb90690536
Diffstat (limited to 'firmware/export/scroll_engine.h')
-rw-r--r-- | firmware/export/scroll_engine.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/export/scroll_engine.h b/firmware/export/scroll_engine.h index 19a2bc4cca..64e1d6d6ae 100644 --- a/firmware/export/scroll_engine.h +++ b/firmware/export/scroll_engine.h | |||
@@ -30,6 +30,7 @@ | |||
30 | #include "file.h" | 30 | #include "file.h" |
31 | 31 | ||
32 | struct viewport; | 32 | struct viewport; |
33 | struct scrollinfo; | ||
33 | 34 | ||
34 | extern void scroll_init(void) INIT_ATTR; | 35 | extern void scroll_init(void) INIT_ATTR; |
35 | 36 | ||
@@ -40,6 +41,7 @@ extern void lcd_scroll_delay(int ms); | |||
40 | extern void lcd_scroll_stop(void); | 41 | extern void lcd_scroll_stop(void); |
41 | extern void lcd_scroll_stop_viewport(const struct viewport *vp); | 42 | extern void lcd_scroll_stop_viewport(const struct viewport *vp); |
42 | extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height); | 43 | extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height); |
44 | extern bool lcd_scroll_now(struct scrollinfo *scroll); | ||
43 | #ifdef HAVE_REMOTE_LCD | 45 | #ifdef HAVE_REMOTE_LCD |
44 | extern void lcd_remote_scroll_speed(int speed); | 46 | extern void lcd_remote_scroll_speed(int speed); |
45 | extern void lcd_remote_scroll_delay(int ms); | 47 | extern void lcd_remote_scroll_delay(int ms); |
@@ -47,8 +49,11 @@ extern void lcd_remote_scroll_delay(int ms); | |||
47 | extern void lcd_remote_scroll_stop(void); | 49 | extern void lcd_remote_scroll_stop(void); |
48 | extern void lcd_remote_scroll_stop_viewport(const struct viewport *vp); | 50 | extern void lcd_remote_scroll_stop_viewport(const struct viewport *vp); |
49 | extern void lcd_remote_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height); | 51 | extern void lcd_remote_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height); |
52 | extern bool lcd_remote_scroll_now(struct scrollinfo *scroll); | ||
50 | #endif | 53 | #endif |
51 | 54 | ||
55 | |||
56 | |||
52 | /* internal usage, but in multiple drivers | 57 | /* internal usage, but in multiple drivers |
53 | * larger than the normal linebuffer since it holds the line a second | 58 | * larger than the normal linebuffer since it holds the line a second |
54 | * time (+3 spaces) for non-bidir scrolling */ | 59 | * time (+3 spaces) for non-bidir scrolling */ |