summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/lcd-charcell.h30
-rw-r--r--firmware/export/lcd.h12
2 files changed, 29 insertions, 13 deletions
diff --git a/firmware/export/lcd-charcell.h b/firmware/export/lcd-charcell.h
index 9a93cf19de..0684f9cd7b 100644
--- a/firmware/export/lcd-charcell.h
+++ b/firmware/export/lcd-charcell.h
@@ -17,6 +17,20 @@
17 * 17 *
18 ****************************************************************************/ 18 ****************************************************************************/
19 19
20/* target dependent - to be adjusted for other charcell targets */
21#define HW_PATTERN_SIZE 7 /* number of bytes per pattern */
22#define MAX_HW_PATTERNS 8 /* max. number of user-definable hw patterns */
23
24struct cursor_info {
25 unsigned char hw_char;
26 bool enabled;
27 bool visible;
28 int x;
29 int y;
30 int divider;
31 int downcount;
32};
33
20/* map unicode characters to hardware or extended lcd characters */ 34/* map unicode characters to hardware or extended lcd characters */
21struct xchar_info { 35struct xchar_info {
22 unsigned short ucs; 36 unsigned short ucs;
@@ -28,10 +42,18 @@ struct xchar_info {
28 unsigned char hw_char; /* direct or substitute */ 42 unsigned char hw_char; /* direct or substitute */
29}; 43};
30 44
31/* target dependent - to be adjusted for other charcell targets */ 45/* track usage of user-definable characters */
32#define HW_PATTERN_SIZE 7 /* number of bytes per pattern */ 46struct pattern_info {
33#define MAX_HW_PATTERNS 8 /* max. number of user-definable hw patterns */ 47 short count;
34extern int hw_pattern_count; /* actual number of user-definable hw patterns */ 48 unsigned short xchar;
49 unsigned char pattern[HW_PATTERN_SIZE];
50};
51
52extern int lcd_pattern_count; /* actual number of user-definable hw patterns */
53
54extern unsigned char lcd_charbuffer[LCD_HEIGHT][LCD_WIDTH];
55extern struct pattern_info lcd_patterns[MAX_HW_PATTERNS];
56extern struct cursor_info lcd_cursor;
35 57
36extern const struct xchar_info *xchar_info; 58extern const struct xchar_info *xchar_info;
37extern int xchar_info_size; /* number of entries */ 59extern int xchar_info_size; /* number of entries */
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
index 48de53ada3..68f0961a5c 100644
--- a/firmware/export/lcd.h
+++ b/firmware/export/lcd.h
@@ -64,6 +64,7 @@ extern int lcd_getxmargin(void);
64extern int lcd_getymargin(void); 64extern int lcd_getymargin(void);
65extern int lcd_getstringsize(const unsigned char *str, int *w, int *h); 65extern int lcd_getstringsize(const unsigned char *str, int *w, int *h);
66 66
67extern void lcd_update(void);
67extern void lcd_clear_display(void); 68extern void lcd_clear_display(void);
68extern void lcd_putsxy(int x, int y, const unsigned char *string); 69extern void lcd_putsxy(int x, int y, const unsigned char *string);
69extern void lcd_puts(int x, int y, const unsigned char *string); 70extern void lcd_puts(int x, int y, const unsigned char *string);
@@ -79,7 +80,6 @@ extern void lcd_scroll_delay(int ms);
79extern void lcd_puts_scroll(int x, int y, const unsigned char* string); 80extern void lcd_puts_scroll(int x, int y, const unsigned char* string);
80extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, 81extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string,
81 int style); 82 int style);
82extern void lcd_icon(int icon, bool enable);
83 83
84#if defined(HAVE_LCD_COLOR) && !defined(SIMULATOR) 84#if defined(HAVE_LCD_COLOR) && !defined(SIMULATOR)
85extern void lcd_yuv_blit(unsigned char * const src[3], 85extern void lcd_yuv_blit(unsigned char * const src[3],
@@ -87,12 +87,11 @@ extern void lcd_yuv_blit(unsigned char * const src[3],
87 int x, int y, int width, int height); 87 int x, int y, int width, int height);
88#endif 88#endif
89 89
90#if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) 90#ifdef HAVE_LCD_BITMAP
91/* performance function */ 91/* performance function */
92extern void lcd_blit(const fb_data* data, int x, int by, int width, 92extern void lcd_blit(const fb_data* data, int x, int by, int width,
93 int bheight, int stride); 93 int bheight, int stride);
94 94
95extern void lcd_update(void);
96/* update a fraction of the screen */ 95/* update a fraction of the screen */
97extern void lcd_update_rect(int x, int y, int width, int height); 96extern void lcd_update_rect(int x, int y, int width, int height);
98 97
@@ -101,10 +100,6 @@ extern void lcd_remote_update(void);
101/* update a fraction of the screen */ 100/* update a fraction of the screen */
102extern void lcd_remote_update_rect(int x, int y, int width, int height); 101extern void lcd_remote_update_rect(int x, int y, int width, int height);
103#endif 102#endif
104
105#else
106 #define lcd_update()
107 #define lcd_update_rect(x,y,w,h)
108#endif 103#endif
109 104
110#ifdef HAVE_LCD_CHARCELLS 105#ifdef HAVE_LCD_CHARCELLS
@@ -132,9 +127,8 @@ enum
132 ICON_PARAM 127 ICON_PARAM
133}; 128};
134 129
130void lcd_icon(int icon, bool enable);
135void lcd_double_height(bool on); 131void lcd_double_height(bool on);
136void lcd_put_hw_char(int x, int y, unsigned char hw_char);
137void lcd_define_hw_pattern(int which, const char *pattern);
138void lcd_define_pattern(unsigned long ucs, const char *pattern); 132void lcd_define_pattern(unsigned long ucs, const char *pattern);
139unsigned long lcd_get_locked_pattern(void); 133unsigned long lcd_get_locked_pattern(void);
140void lcd_unlock_pattern(unsigned long ucs); 134void lcd_unlock_pattern(unsigned long ucs);