summaryrefslogtreecommitdiff
path: root/firmware/export/scroll_engine.h
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2014-01-11 19:17:58 +0100
committerThomas Martitz <kugel@rockbox.org>2014-01-11 19:17:58 +0100
commit26b317e094a37c43d23e661cf99fe858c159f1b2 (patch)
tree7e0cfbb80fee1b15435a6a261d99186dac2e0455 /firmware/export/scroll_engine.h
parent2a471c9e84ddc4f6f407d4fe3ad2a21a1d0e3723 (diff)
downloadrockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.zip
rockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.tar.gz
rockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.tar.bz2
rockbox-26b317e094a37c43d23e661cf99fe858c159f1b2.tar.xz
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.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/export/scroll_engine.h b/firmware/export/scroll_engine.h
index 19a2bc4..64e1d6d 100644
--- a/firmware/export/scroll_engine.h
+++ b/firmware/export/scroll_engine.h
@@ -30,6 +30,7 @@
#include "file.h"
struct viewport;
+struct scrollinfo;
extern void scroll_init(void) INIT_ATTR;
@@ -40,6 +41,7 @@ extern void lcd_scroll_delay(int ms);
extern void lcd_scroll_stop(void);
extern void lcd_scroll_stop_viewport(const struct viewport *vp);
extern void lcd_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
+extern bool lcd_scroll_now(struct scrollinfo *scroll);
#ifdef HAVE_REMOTE_LCD
extern void lcd_remote_scroll_speed(int speed);
extern void lcd_remote_scroll_delay(int ms);
@@ -47,8 +49,11 @@ extern void lcd_remote_scroll_delay(int ms);
extern void lcd_remote_scroll_stop(void);
extern void lcd_remote_scroll_stop_viewport(const struct viewport *vp);
extern void lcd_remote_scroll_stop_viewport_rect(const struct viewport *vp, int x, int y, int width, int height);
+extern bool lcd_remote_scroll_now(struct scrollinfo *scroll);
#endif
+
+
/* internal usage, but in multiple drivers
* larger than the normal linebuffer since it holds the line a second
* time (+3 spaces) for non-bidir scrolling */