summaryrefslogtreecommitdiff
path: root/apps/plugins/lib/xlcd_scroll.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib/xlcd_scroll.c')
-rw-r--r--apps/plugins/lib/xlcd_scroll.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/apps/plugins/lib/xlcd_scroll.c b/apps/plugins/lib/xlcd_scroll.c
index 96e0715894..f8eac1d4b9 100644
--- a/apps/plugins/lib/xlcd_scroll.c
+++ b/apps/plugins/lib/xlcd_scroll.c
@@ -37,7 +37,10 @@ void xlcd_scroll_left(int count)
int length, oldmode;
if ((unsigned)count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = (LCD_WIDTH-count)*LCD_FBHEIGHT;
@@ -56,7 +59,10 @@ void xlcd_scroll_right(int count)
int length, oldmode;
if ((unsigned)count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = (LCD_WIDTH-count)*LCD_FBHEIGHT;
@@ -77,7 +83,10 @@ void xlcd_scroll_up(int count)
fb_data *data;
if ((unsigned)count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = LCD_HEIGHT - count;
@@ -103,7 +112,10 @@ void xlcd_scroll_down(int count)
fb_data *data;
if ((unsigned)count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = LCD_HEIGHT - count;
@@ -131,7 +143,10 @@ void xlcd_scroll_left(int count)
int blockcount, blocklen;
if ((unsigned) count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
#if LCD_DEPTH == 2
blockcount = count >> 2;
@@ -186,7 +201,10 @@ void xlcd_scroll_right(int count)
int blockcount, blocklen;
if ((unsigned) count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
#if LCD_DEPTH == 2
blockcount = count >> 2;
@@ -243,7 +261,10 @@ void xlcd_scroll_left(int count)
int length, oldmode;
if ((unsigned)count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
data = rb->lcd_framebuffer;
data_end = data + LCD_WIDTH*LCD_FBHEIGHT;
@@ -269,7 +290,10 @@ void xlcd_scroll_right(int count)
int length, oldmode;
if ((unsigned)count >= LCD_WIDTH)
+ {
+ rb->lcd_clear_display();
return;
+ }
data = rb->lcd_framebuffer;
data_end = data + LCD_WIDTH*LCD_FBHEIGHT;
@@ -298,7 +322,10 @@ void xlcd_scroll_up(int count)
int length, oldmode;
if ((unsigned)count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = LCD_HEIGHT - count;
@@ -318,7 +345,10 @@ void xlcd_scroll_down(int count)
int length, oldmode;
if ((unsigned)count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
length = LCD_HEIGHT - count;
@@ -342,7 +372,10 @@ void xlcd_scroll_up(int count)
int blockcount, blocklen;
if ((unsigned) count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
#if (LCD_DEPTH == 1) \
|| (LCD_DEPTH == 2) && (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED)
@@ -536,7 +569,10 @@ void xlcd_scroll_down(int count)
int blockcount, blocklen;
if ((unsigned) count >= LCD_HEIGHT)
+ {
+ rb->lcd_clear_display();
return;
+ }
#if (LCD_DEPTH == 1) \
|| (LCD_DEPTH == 2) && (LCD_PIXELFORMAT == VERTICAL_INTERLEAVED)