diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd-bitmap-common.c | 11 | ||||
-rw-r--r-- | firmware/drivers/lcd-charcell.c | 10 | ||||
-rw-r--r-- | firmware/export/lcd-remote.h | 3 | ||||
-rw-r--r-- | firmware/export/lcd.h | 5 |
4 files changed, 29 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index d8417e13e2..5961bba7a5 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c | |||
@@ -572,6 +572,17 @@ void LCDFN(puts_scroll_style_xyoffset)(int x, int y, const unsigned char *string | |||
572 | true, LCDFN(scroll_fn), NULL); | 572 | true, LCDFN(scroll_fn), NULL); |
573 | } | 573 | } |
574 | 574 | ||
575 | void LCDFN(putsxy_scroll_func)(int x, int y, const unsigned char *string, | ||
576 | void (*scroll_func)(struct scrollinfo *), | ||
577 | void *data, int x_offset) | ||
578 | { | ||
579 | if (!scroll_func) | ||
580 | LCDFN(putsxyofs)(x, y, x_offset, string); | ||
581 | else | ||
582 | LCDFN(puts_scroll_worker)(x, y, string, STYLE_NONE, x_offset, 0, | ||
583 | false, scroll_func, data); | ||
584 | } | ||
585 | |||
575 | void LCDFN(puts_scroll)(int x, int y, const unsigned char *string) | 586 | void LCDFN(puts_scroll)(int x, int y, const unsigned char *string) |
576 | { | 587 | { |
577 | LCDFN(puts_scroll_style)(x, y, string, STYLE_DEFAULT); | 588 | LCDFN(puts_scroll_style)(x, y, string, STYLE_DEFAULT); |
diff --git a/firmware/drivers/lcd-charcell.c b/firmware/drivers/lcd-charcell.c index db867cdb0a..54159519a3 100644 --- a/firmware/drivers/lcd-charcell.c +++ b/firmware/drivers/lcd-charcell.c | |||
@@ -563,6 +563,16 @@ void lcd_puts_scroll_worker(int x, int y, const unsigned char *string, | |||
563 | lcd_scroll_info.lines++; | 563 | lcd_scroll_info.lines++; |
564 | } | 564 | } |
565 | 565 | ||
566 | void lcd_putsxy_scroll_func(int x, int y, const unsigned char *string, | ||
567 | void (*scroll_func)(struct scrollinfo *), | ||
568 | void *data, int x_offset) | ||
569 | { | ||
570 | if (!scroll_func) | ||
571 | lcd_putsxyofs(x, y, x_offset, string); | ||
572 | else | ||
573 | lcd_puts_scroll_worker(x, y, string, x_offset, scroll_func, data); | ||
574 | } | ||
575 | |||
566 | void lcd_scroll_fn(struct scrollinfo* s) | 576 | void lcd_scroll_fn(struct scrollinfo* s) |
567 | { | 577 | { |
568 | lcd_putsxyofs(s->x, s->y, s->offset, s->line); | 578 | lcd_putsxyofs(s->x, s->y, s->offset, s->line); |
diff --git a/firmware/export/lcd-remote.h b/firmware/export/lcd-remote.h index be6816cd7e..f209e6b47d 100644 --- a/firmware/export/lcd-remote.h +++ b/firmware/export/lcd-remote.h | |||
@@ -196,6 +196,9 @@ extern void lcd_remote_puts_scroll_style_xyoffset(int x, int y, | |||
196 | const unsigned char *string, | 196 | const unsigned char *string, |
197 | int style, int x_offset, | 197 | int style, int x_offset, |
198 | int y_offset); | 198 | int y_offset); |
199 | extern void lcd_remote_putsxy_scroll_func(int x, int y, const unsigned char *string, | ||
200 | void (*scroll_func)(struct scrollinfo *), | ||
201 | void *data, int x_offset); | ||
199 | 202 | ||
200 | extern void lcd_remote_update(void); | 203 | extern void lcd_remote_update(void); |
201 | extern void lcd_remote_update_rect(int x, int y, int width, int height); | 204 | extern void lcd_remote_update_rect(int x, int y, int width, int height); |
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 7842ce59f2..745c445dda 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h | |||
@@ -108,6 +108,8 @@ enum screen_type { | |||
108 | #endif | 108 | #endif |
109 | }; | 109 | }; |
110 | 110 | ||
111 | struct scrollinfo; | ||
112 | |||
111 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | 113 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE |
112 | #define STRIDE_MAIN(w, h) (h) | 114 | #define STRIDE_MAIN(w, h) (h) |
113 | #else | 115 | #else |
@@ -212,6 +214,9 @@ extern void lcd_putc(int x, int y, unsigned long ucs); | |||
212 | extern void lcd_puts_scroll(int x, int y, const unsigned char* string); | 214 | extern void lcd_puts_scroll(int x, int y, const unsigned char* string); |
213 | extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, | 215 | extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, |
214 | int style); | 216 | int style); |
217 | extern void lcd_putsxy_scroll_func(int x, int y, const unsigned char *string, | ||
218 | void (*scroll_func)(struct scrollinfo *), | ||
219 | void *data, int x_offset); | ||
215 | 220 | ||
216 | #ifdef HAVE_LCD_BITMAP | 221 | #ifdef HAVE_LCD_BITMAP |
217 | 222 | ||