summaryrefslogtreecommitdiff
path: root/firmware/target/sh/archos
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/sh/archos')
-rw-r--r--firmware/target/sh/archos/player/lcd-player.c38
1 files changed, 27 insertions, 11 deletions
diff --git a/firmware/target/sh/archos/player/lcd-player.c b/firmware/target/sh/archos/player/lcd-player.c
index 7018b2277a..8f59901116 100644
--- a/firmware/target/sh/archos/player/lcd-player.c
+++ b/firmware/target/sh/archos/player/lcd-player.c
@@ -23,6 +23,7 @@
23#include "hwcompat.h" 23#include "hwcompat.h"
24#include "system.h" 24#include "system.h"
25#include "lcd.h" 25#include "lcd.h"
26#include "lcd-charcell.h"
26 27
27#define OLD_LCD_CRAM ((char)0xB0) /* Characters */ 28#define OLD_LCD_CRAM ((char)0xB0) /* Characters */
28#define OLD_LCD_PRAM ((char)0x80) /* Patterns */ 29#define OLD_LCD_PRAM ((char)0x80) /* Patterns */
@@ -69,17 +70,6 @@ void lcd_double_height(bool on)
69 : NEW_LCD_SET_DOUBLE_HEIGHT); 70 : NEW_LCD_SET_DOUBLE_HEIGHT);
70} 71}
71 72
72void lcd_put_hw_char(int x, int y, unsigned char hw_char)
73{
74 lcd_write_command_e(LCD_CURSOR(x, y), hw_char);
75}
76
77void lcd_define_hw_pattern (int which, const char *pattern)
78{
79 lcd_write_command(lcd_pram | (which << 3));
80 lcd_write_data(pattern, 7);
81}
82
83void lcd_icon(int icon, bool enable) 73void lcd_icon(int icon, bool enable)
84{ 74{
85 static const struct { 75 static const struct {
@@ -233,3 +223,29 @@ void lcd_init_device(void)
233 } 223 }
234 lcd_set_contrast(lcd_default_contrast()); 224 lcd_set_contrast(lcd_default_contrast());
235} 225}
226
227/*** Update functions ***/
228
229void lcd_update(void)
230{
231 int y;
232
233 for (y = 0; y < lcd_pattern_count; y++)
234 {
235 if (lcd_patterns[y].count > 0)
236 {
237 lcd_write_command(lcd_pram | (y << 3));
238 lcd_write_data(lcd_patterns[y].pattern, 7);
239 }
240 }
241 for (y = 0; y < LCD_HEIGHT; y++)
242 {
243 lcd_write_command(LCD_CURSOR(0, y));
244 lcd_write_data(lcd_charbuffer[y], LCD_WIDTH);
245 }
246 if (lcd_cursor.visible)
247 {
248 lcd_write_command_e(LCD_CURSOR(lcd_cursor.x, lcd_cursor.y),
249 lcd_cursor.hw_char);
250 }
251}