diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-player.c | 27 | ||||
-rw-r--r-- | firmware/drivers/lcd.h | 1 |
2 files changed, 20 insertions, 8 deletions
diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c index a03b1b024c..bac18d28c8 100644 --- a/firmware/drivers/lcd-player.c +++ b/firmware/drivers/lcd-player.c | |||
@@ -315,14 +315,25 @@ void lcd_puts(int x, int y, unsigned char *string) | |||
315 | 315 | ||
316 | void lcd_put_cursor(int x, int y, char cursor_char) | 316 | void lcd_put_cursor(int x, int y, char cursor_char) |
317 | { | 317 | { |
318 | cursor.text[0]=buffer_xlcd[x][y]; | 318 | if (cursor.len==0) { |
319 | cursor.text[1]=cursor_char; | 319 | cursor.text[0]=buffer_xlcd[x][y]; |
320 | cursor.len=2; | 320 | cursor.text[1]=cursor_char; |
321 | cursor.textpos=0; | 321 | cursor.len=2; |
322 | cursor.y_pos=y; | 322 | cursor.textpos=0; |
323 | cursor.x_pos=x; | 323 | cursor.y_pos=y; |
324 | cursor.downcount=0; | 324 | cursor.x_pos=x; |
325 | cursor.divider=4; | 325 | cursor.downcount=0; |
326 | cursor.divider=4; | ||
327 | } | ||
328 | } | ||
329 | |||
330 | void lcd_remove_cursor(void) | ||
331 | { | ||
332 | if (cursor.len!=0) { | ||
333 | cursor.len=0; | ||
334 | if (lcdx_putc(cursor.x_pos, cursor.y_pos, cursor.text[0])) | ||
335 | lcd_update(); | ||
336 | } | ||
326 | } | 337 | } |
327 | 338 | ||
328 | void lcd_putc(int x, int y, unsigned short ch) | 339 | void lcd_putc(int x, int y, unsigned short ch) |
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index b4623c2ae7..6149dc38d7 100644 --- a/firmware/drivers/lcd.h +++ b/firmware/drivers/lcd.h | |||
@@ -86,6 +86,7 @@ void lcd_unlock_pattern(unsigned char pat); | |||
86 | void lcd_allow_bidirectional_scrolling(bool on); | 86 | void lcd_allow_bidirectional_scrolling(bool on); |
87 | extern void lcd_bidir_scroll(int threshold); | 87 | extern void lcd_bidir_scroll(int threshold); |
88 | void lcd_put_cursor(int x, int y, char cursor_char); | 88 | void lcd_put_cursor(int x, int y, char cursor_char); |
89 | void lcd_remove_cursor(void); | ||
89 | #endif | 90 | #endif |
90 | 91 | ||
91 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) | 92 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) |