diff options
Diffstat (limited to 'firmware/export/lcd.h')
-rw-r--r-- | firmware/export/lcd.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h new file mode 100644 index 0000000000..6149dc38d7 --- /dev/null +++ b/firmware/export/lcd.h | |||
@@ -0,0 +1,136 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 by Alan Korr | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | #ifndef __LCD_H__ | ||
21 | #define __LCD_H__ | ||
22 | |||
23 | #include <stdbool.h> | ||
24 | #include "sh7034.h" | ||
25 | #include "config.h" | ||
26 | |||
27 | /* common functions */ | ||
28 | extern void lcd_init(void); | ||
29 | extern void lcd_clear_display(void); | ||
30 | extern void lcd_backlight(bool on); | ||
31 | extern void lcd_puts(int x, int y, unsigned char *string); | ||
32 | extern void lcd_putc(int x, int y, unsigned short ch); | ||
33 | |||
34 | extern void lcd_puts_scroll(int x, int y, unsigned char* string ); | ||
35 | extern void lcd_icon(int icon, bool enable); | ||
36 | extern void lcd_stop_scroll(void); | ||
37 | extern void lcd_scroll_speed( int speed ); | ||
38 | extern void lcd_scroll_delay( int ms ); | ||
39 | extern void lcd_set_contrast(int val); | ||
40 | extern void lcd_write( bool command, int byte ); | ||
41 | |||
42 | #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) | ||
43 | extern void lcd_update(void); | ||
44 | |||
45 | /* update a fraction of the screen */ | ||
46 | extern void lcd_update_rect(int x, int y, int width, int height); | ||
47 | #else | ||
48 | #define lcd_update() | ||
49 | #define lcd_update_rect(x,y,w,h) | ||
50 | #endif | ||
51 | |||
52 | #if defined(SIMULATOR) | ||
53 | #include "sim_icons.h" | ||
54 | #endif | ||
55 | |||
56 | #ifdef HAVE_LCD_CHARCELLS | ||
57 | |||
58 | /* Icon definitions for lcd_icon() */ | ||
59 | enum | ||
60 | { | ||
61 | ICON_BATTERY = 0, | ||
62 | ICON_BATTERY_1, | ||
63 | ICON_BATTERY_2, | ||
64 | ICON_BATTERY_3, | ||
65 | ICON_USB, | ||
66 | ICON_PLAY, | ||
67 | ICON_RECORD, | ||
68 | ICON_PAUSE, | ||
69 | ICON_AUDIO, | ||
70 | ICON_REPEAT, | ||
71 | ICON_1, | ||
72 | ICON_VOLUME, | ||
73 | ICON_VOLUME_1, | ||
74 | ICON_VOLUME_2, | ||
75 | ICON_VOLUME_3, | ||
76 | ICON_VOLUME_4, | ||
77 | ICON_VOLUME_5, | ||
78 | ICON_PARAM | ||
79 | }; | ||
80 | |||
81 | extern void lcd_define_hw_pattern (int which,char *pattern,int length); | ||
82 | extern void lcd_define_pattern (int which,char *pattern); | ||
83 | extern void lcd_double_height (bool on); | ||
84 | unsigned char lcd_get_locked_pattern(void); | ||
85 | void lcd_unlock_pattern(unsigned char pat); | ||
86 | void lcd_allow_bidirectional_scrolling(bool on); | ||
87 | extern void lcd_bidir_scroll(int threshold); | ||
88 | void lcd_put_cursor(int x, int y, char cursor_char); | ||
89 | void lcd_remove_cursor(void); | ||
90 | #endif | ||
91 | |||
92 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) | ||
93 | #if defined(HAVE_LCD_CHARCELLS) && defined(SIMULATOR) | ||
94 | #define LCD_WIDTH (4*11*6) /* Display width in pixels */ | ||
95 | #define LCD_HEIGHT (4*16+2*24) /* 4*char + 2*icons */ | ||
96 | #else | ||
97 | #define LCD_WIDTH 112 /* Display width in pixels */ | ||
98 | #define LCD_HEIGHT 64 /* Display height in pixels */ | ||
99 | #endif | ||
100 | |||
101 | #define DRAW_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] |= (1<<((y)&7)) | ||
102 | #define CLEAR_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] &= ~(1<<((y)&7)) | ||
103 | #define INVERT_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] ^= (1<<((y)&7)) | ||
104 | |||
105 | /* | ||
106 | * Memory copy of display bitmap | ||
107 | */ | ||
108 | extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; | ||
109 | |||
110 | extern void lcd_setmargins(int xmargin, int ymargin); | ||
111 | extern int lcd_getxmargin(void); | ||
112 | extern int lcd_getymargin(void); | ||
113 | extern void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny, | ||
114 | bool clear); | ||
115 | extern void lcd_clearrect (int x, int y, int nx, int ny); | ||
116 | extern void lcd_fillrect (int x, int y, int nx, int ny); | ||
117 | extern void lcd_drawrect (int x, int y, int nx, int ny); | ||
118 | extern void lcd_invertrect (int x, int y, int nx, int ny); | ||
119 | extern void lcd_drawline( int x1, int y1, int x2, int y2 ); | ||
120 | extern void lcd_clearline( int x1, int y1, int x2, int y2 ); | ||
121 | extern void lcd_drawpixel(int x, int y); | ||
122 | extern void lcd_clearpixel(int x, int y); | ||
123 | extern void lcd_invertpixel(int x, int y); | ||
124 | extern void lcd_roll(int pixels); | ||
125 | |||
126 | extern void lcd_bidir_scroll(int threshold); | ||
127 | extern void lcd_scroll_step(int pixels); | ||
128 | extern void lcd_setfont(int font); | ||
129 | extern void lcd_putsxy(int x, int y, unsigned char *string); | ||
130 | extern int lcd_getstringsize(unsigned char *str, int *w, int *h); | ||
131 | extern int lcd_getstringsize(unsigned char *str, int *w, int *h); | ||
132 | |||
133 | #endif /* CHARCELLS / BITMAP */ | ||
134 | |||
135 | |||
136 | #endif /* __LCD_H__ */ | ||