diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c index c6385a222c..3917692df9 100644 --- a/firmware/drivers/lcd-player.c +++ b/firmware/drivers/lcd-player.c @@ -78,6 +78,7 @@ static char scroll_name[] = "scroll"; static char scroll_speed = 8; /* updates per second */ static int scroll_delay = HZ/2; /* delay before starting scroll */ static char scroll_spacing = 3; /* spaces between end and start of text */ +static bool allow_bidirectictional_scrolling = true; static struct scrollinfo scroll[SCROLLABLE_LINES]; @@ -462,8 +463,10 @@ void lcd_puts_scroll(int x, int y, unsigned char* string ) s->direction=+1; strncpy(s->text,string,sizeof s->text); s->turn_offset=-1; - if ( s->textlen + x > 11+4) - s->turn_offset=s->textlen-x-11+4; + if (allow_bidirectictional_scrolling) { + if ( s->textlen + x > 11+4) + s->turn_offset=s->textlen-x-11+4; + } for (i=0; itextlen<(int)sizeof(s->text); i++) { s->text[s->textlen++]=' '; @@ -554,6 +557,11 @@ void lcd_scroll_resume_line(int line) } } +void lcd_allow_bidirectictional_scrolling(bool on) +{ + allow_bidirectictional_scrolling=on; +} + void lcd_scroll_speed(int speed) { scroll_speed = speed; diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index bd993387b6..1a5cd0851c 100644 --- a/firmware/drivers/lcd.h +++ b/firmware/drivers/lcd.h @@ -87,6 +87,7 @@ extern void lcd_define_pattern (int which,char *pattern); extern void lcd_double_height (bool on); unsigned char lcd_get_locked_pattern(void); void lcd_unlock_pattern(unsigned char pat); +void lcd_allow_bidirectictional_scrolling(bool on); #endif