diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-player.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c index 17e3923715..29639fc64e 100644 --- a/firmware/drivers/lcd-player.c +++ b/firmware/drivers/lcd-player.c | |||
@@ -271,11 +271,11 @@ void lcd_clear_display(void) | |||
271 | xlcd_update(); | 271 | xlcd_update(); |
272 | } | 272 | } |
273 | 273 | ||
274 | void lcd_puts(int x, int y, unsigned char *string) | 274 | static void lcd_do_puts(int x, int y, unsigned char *string) |
275 | { | 275 | { |
276 | bool update=false; | 276 | bool update=false; |
277 | // lcd_write(true,LCD_CURSOR(x,y)); | 277 | DEBUGF("lcd_do_puts(%d, %d, \"", x, y); |
278 | DEBUGF("lcd_puts(%d, %d, \"", x, y); | 278 | |
279 | for (; *string && x<11; x++) | 279 | for (; *string && x<11; x++) |
280 | { | 280 | { |
281 | #ifdef DEBUGF | 281 | #ifdef DEBUGF |
@@ -294,6 +294,12 @@ void lcd_puts(int x, int y, unsigned char *string) | |||
294 | if (update) | 294 | if (update) |
295 | xlcd_update(); | 295 | xlcd_update(); |
296 | } | 296 | } |
297 | void lcd_puts(int x, int y, unsigned char *string) | ||
298 | { | ||
299 | DEBUGF("lcd_puts(%d, %d)", x, y); | ||
300 | scroll[y].mode=SCROLL_MODE_OFF; | ||
301 | return lcd_do_puts(x, y, string); | ||
302 | } | ||
297 | 303 | ||
298 | void lcd_putc(int x, int y, unsigned short ch) | 304 | void lcd_putc(int x, int y, unsigned short ch) |
299 | { | 305 | { |
@@ -302,7 +308,6 @@ void lcd_putc(int x, int y, unsigned short ch) | |||
302 | if (x<0 || y<0) { | 308 | if (x<0 || y<0) { |
303 | return; | 309 | return; |
304 | } | 310 | } |
305 | // lcd_write(true,LCD_CURSOR(x,y)); | ||
306 | update=lcdx_putc(x, y, ch); | 311 | update=lcdx_putc(x, y, ch); |
307 | 312 | ||
308 | if (update) | 313 | if (update) |
@@ -458,7 +463,7 @@ void lcd_puts_scroll(int x, int y, unsigned char* string ) | |||
458 | 463 | ||
459 | s = &scroll[y]; | 464 | s = &scroll[y]; |
460 | 465 | ||
461 | lcd_puts(x,y,string); | 466 | lcd_do_puts(x,y,string); |
462 | s->textlen = strlen(string); | 467 | s->textlen = strlen(string); |
463 | 468 | ||
464 | if ( s->textlen > 11-x ) { | 469 | if ( s->textlen > 11-x ) { |
@@ -495,7 +500,6 @@ void lcd_stop_scroll(void) | |||
495 | s->mode == SCROLL_MODE_PAUSE ) { | 500 | s->mode == SCROLL_MODE_PAUSE ) { |
496 | /* restore scrolled row */ | 501 | /* restore scrolled row */ |
497 | lcd_puts(s->startx, s->starty, s->text); | 502 | lcd_puts(s->startx, s->starty, s->text); |
498 | s->mode = SCROLL_MODE_OFF; | ||
499 | } | 503 | } |
500 | } | 504 | } |
501 | 505 | ||
@@ -511,7 +515,6 @@ void lcd_stop_scroll_line(int line) | |||
511 | s->mode == SCROLL_MODE_PAUSE ) { | 515 | s->mode == SCROLL_MODE_PAUSE ) { |
512 | /* restore scrolled row */ | 516 | /* restore scrolled row */ |
513 | lcd_puts(s->startx, s->starty, s->text); | 517 | lcd_puts(s->startx, s->starty, s->text); |
514 | s->mode = SCROLL_MODE_OFF; | ||
515 | } | 518 | } |
516 | 519 | ||
517 | lcd_update(); | 520 | lcd_update(); |
@@ -600,8 +603,6 @@ static void scroll_thread(void) | |||
600 | if ( TIME_AFTER(current_tick, s->scroll_start_tick) ) { | 603 | if ( TIME_AFTER(current_tick, s->scroll_start_tick) ) { |
601 | char buffer[12]; | 604 | char buffer[12]; |
602 | update = true; | 605 | update = true; |
603 | DEBUGF("offset=%d, turn_offset=%d, len=%d", | ||
604 | s->offset, s->turn_offset, s->textlen); | ||
605 | if ( s->offset < s->textlen-1 ) { | 606 | if ( s->offset < s->textlen-1 ) { |
606 | s->offset+=s->direction; | 607 | s->offset+=s->direction; |
607 | if (s->offset==0) { | 608 | if (s->offset==0) { |
@@ -628,7 +629,7 @@ static void scroll_thread(void) | |||
628 | buffer[i++]=s->text[o++]; | 629 | buffer[i++]=s->text[o++]; |
629 | } | 630 | } |
630 | buffer[11]=0; | 631 | buffer[11]=0; |
631 | lcd_puts(s->startx, s->starty, buffer); | 632 | lcd_do_puts(s->startx, s->starty, buffer); |
632 | } | 633 | } |
633 | } | 634 | } |
634 | 635 | ||