summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2013-12-20 23:34:28 +0100
committerThomas Martitz <kugel@rockbox.org>2014-01-07 11:36:00 +0100
commit6630958533d02d66dca8cc79897fda2cb744c076 (patch)
tree598f20a9ebd1248dd4fdbfdf3875ab928f80980a /apps
parentb8505222c02a7a5a19571c3d4577f3b473cb8558 (diff)
downloadrockbox-6630958533d02d66dca8cc79897fda2cb744c076.tar.gz
rockbox-6630958533d02d66dca8cc79897fda2cb744c076.tar.bz2
rockbox-6630958533d02d66dca8cc79897fda2cb744c076.zip
lcd-common/scroll_engine: Introduce lcd_putsxy_scroll_func().
This function supports installing a custom scroll callback. This will be called when the scrollengine redraws the line. It allows to draw extended styles (or anything your can possible imagine) along with the text. It is also strictly pixel-based, the first pixel-based function that supports scrolling. Change-Id: I57f81ac7b3d08b877aea4cb8afa882f175ebcdfc
Diffstat (limited to 'apps')
-rw-r--r--apps/screen_access.c4
-rw-r--r--apps/screen_access.h4
2 files changed, 7 insertions, 1 deletions
diff --git a/apps/screen_access.c b/apps/screen_access.c
index f454e0adef..23625ae89c 100644
--- a/apps/screen_access.c
+++ b/apps/screen_access.c
@@ -25,7 +25,7 @@
#ifdef HAVE_REMOTE_LCD
#include <lcd-remote.h>
#endif
-#include <scroll_engine.h>
+#include "scroll_engine.h"
#include <font.h>
#include <button.h>
#include <settings.h>
@@ -243,6 +243,7 @@ struct screen screens[NB_SCREENS] =
.puts_offset=&lcd_puts_offset,
.puts_scroll=&lcd_puts_scroll,
.puts_scroll_offset=&lcd_puts_scroll_offset,
+ .putsxy_scroll_func=&lcd_putsxy_scroll_func,
.scroll_speed=&lcd_scroll_speed,
.scroll_delay=&lcd_scroll_delay,
.clear_display=&lcd_clear_display,
@@ -344,6 +345,7 @@ struct screen screens[NB_SCREENS] =
.puts_offset=&lcd_remote_puts_offset,
.puts_scroll=&lcd_remote_puts_scroll,
.puts_scroll_offset=&lcd_remote_puts_scroll_offset,
+ .putsxy_scroll_func=&lcd_remote_putsxy_scroll_func,
.scroll_speed=&lcd_remote_scroll_speed,
.scroll_delay=&lcd_remote_scroll_delay,
.clear_display=&lcd_remote_clear_display,
diff --git a/apps/screen_access.h b/apps/screen_access.h
index 90b63ea338..210ad2e990 100644
--- a/apps/screen_access.h
+++ b/apps/screen_access.h
@@ -24,6 +24,7 @@
#include "lcd.h"
#include "buttonbar.h"
+#include "scroll_engine.h"
#include "backdrop.h"
#if defined(HAVE_REMOTE_LCD) && !defined (ROCKBOX_HAS_LOGF)
@@ -143,6 +144,9 @@ struct screen
void (*puts_scroll)(int x, int y, const unsigned char *string);
void (*puts_scroll_offset)(int x, int y, const unsigned char *string,
int x_offset);
+ void (*putsxy_scroll_func)(int x, int y, const unsigned char *string,
+ void (*scroll_func)(struct scrollinfo *),
+ void *data, int x_offset);
void (*scroll_speed)(int speed);
void (*scroll_delay)(int ms);
void (*clear_display)(void);