summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/lcd-player.c21
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
274void lcd_puts(int x, int y, unsigned char *string) 274static 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}
297void 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
298void lcd_putc(int x, int y, unsigned short ch) 304void 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