forked from len0rd/rockbox
Added lcd_do_puts() as a static function and made lcd_puts() stop any scroll at that line.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3140 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4bea14d6bf
commit
d618fb0cb2
1 changed files with 11 additions and 10 deletions
|
@ -271,11 +271,11 @@ void lcd_clear_display(void)
|
||||||
xlcd_update();
|
xlcd_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_puts(int x, int y, unsigned char *string)
|
static void lcd_do_puts(int x, int y, unsigned char *string)
|
||||||
{
|
{
|
||||||
bool update=false;
|
bool update=false;
|
||||||
// lcd_write(true,LCD_CURSOR(x,y));
|
DEBUGF("lcd_do_puts(%d, %d, \"", x, y);
|
||||||
DEBUGF("lcd_puts(%d, %d, \"", x, y);
|
|
||||||
for (; *string && x<11; x++)
|
for (; *string && x<11; x++)
|
||||||
{
|
{
|
||||||
#ifdef DEBUGF
|
#ifdef DEBUGF
|
||||||
|
@ -294,6 +294,12 @@ void lcd_puts(int x, int y, unsigned char *string)
|
||||||
if (update)
|
if (update)
|
||||||
xlcd_update();
|
xlcd_update();
|
||||||
}
|
}
|
||||||
|
void lcd_puts(int x, int y, unsigned char *string)
|
||||||
|
{
|
||||||
|
DEBUGF("lcd_puts(%d, %d)", x, y);
|
||||||
|
scroll[y].mode=SCROLL_MODE_OFF;
|
||||||
|
return lcd_do_puts(x, y, string);
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_putc(int x, int y, unsigned short ch)
|
void lcd_putc(int x, int y, unsigned short ch)
|
||||||
{
|
{
|
||||||
|
@ -302,7 +308,6 @@ void lcd_putc(int x, int y, unsigned short ch)
|
||||||
if (x<0 || y<0) {
|
if (x<0 || y<0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// lcd_write(true,LCD_CURSOR(x,y));
|
|
||||||
update=lcdx_putc(x, y, ch);
|
update=lcdx_putc(x, y, ch);
|
||||||
|
|
||||||
if (update)
|
if (update)
|
||||||
|
@ -458,7 +463,7 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
|
||||||
|
|
||||||
s = &scroll[y];
|
s = &scroll[y];
|
||||||
|
|
||||||
lcd_puts(x,y,string);
|
lcd_do_puts(x,y,string);
|
||||||
s->textlen = strlen(string);
|
s->textlen = strlen(string);
|
||||||
|
|
||||||
if ( s->textlen > 11-x ) {
|
if ( s->textlen > 11-x ) {
|
||||||
|
@ -495,7 +500,6 @@ void lcd_stop_scroll(void)
|
||||||
s->mode == SCROLL_MODE_PAUSE ) {
|
s->mode == SCROLL_MODE_PAUSE ) {
|
||||||
/* restore scrolled row */
|
/* restore scrolled row */
|
||||||
lcd_puts(s->startx, s->starty, s->text);
|
lcd_puts(s->startx, s->starty, s->text);
|
||||||
s->mode = SCROLL_MODE_OFF;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -511,7 +515,6 @@ void lcd_stop_scroll_line(int line)
|
||||||
s->mode == SCROLL_MODE_PAUSE ) {
|
s->mode == SCROLL_MODE_PAUSE ) {
|
||||||
/* restore scrolled row */
|
/* restore scrolled row */
|
||||||
lcd_puts(s->startx, s->starty, s->text);
|
lcd_puts(s->startx, s->starty, s->text);
|
||||||
s->mode = SCROLL_MODE_OFF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd_update();
|
lcd_update();
|
||||||
|
@ -600,8 +603,6 @@ static void scroll_thread(void)
|
||||||
if ( TIME_AFTER(current_tick, s->scroll_start_tick) ) {
|
if ( TIME_AFTER(current_tick, s->scroll_start_tick) ) {
|
||||||
char buffer[12];
|
char buffer[12];
|
||||||
update = true;
|
update = true;
|
||||||
DEBUGF("offset=%d, turn_offset=%d, len=%d",
|
|
||||||
s->offset, s->turn_offset, s->textlen);
|
|
||||||
if ( s->offset < s->textlen-1 ) {
|
if ( s->offset < s->textlen-1 ) {
|
||||||
s->offset+=s->direction;
|
s->offset+=s->direction;
|
||||||
if (s->offset==0) {
|
if (s->offset==0) {
|
||||||
|
@ -628,7 +629,7 @@ static void scroll_thread(void)
|
||||||
buffer[i++]=s->text[o++];
|
buffer[i++]=s->text[o++];
|
||||||
}
|
}
|
||||||
buffer[11]=0;
|
buffer[11]=0;
|
||||||
lcd_puts(s->startx, s->starty, buffer);
|
lcd_do_puts(s->startx, s->starty, buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue