diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-06-23 16:53:54 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-06-23 16:53:54 +0000 |
commit | 6a556c1740174d76da3f652de2a4ca0777b931c4 (patch) | |
tree | 7fb79cedee84ec829b359a2e8cee0f3c707dbfe5 /firmware/export | |
parent | bec1afada554b4624d0ef9b43b3443d1f0583cf3 (diff) | |
download | rockbox-6a556c1740174d76da3f652de2a4ca0777b931c4.tar.gz rockbox-6a556c1740174d76da3f652de2a4ca0777b931c4.zip |
Preparations for implementing the new graphics api: Ordered lcd bitmap driver defines, variables and functions by function groups. Centralised some definitions, code cleanup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6844 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/lcd-remote.h | 79 | ||||
-rw-r--r-- | firmware/export/lcd.h | 113 |
2 files changed, 105 insertions, 87 deletions
diff --git a/firmware/export/lcd-remote.h b/firmware/export/lcd-remote.h index 88b185ca93..58133fc7ce 100644 --- a/firmware/export/lcd-remote.h +++ b/firmware/export/lcd-remote.h | |||
@@ -7,7 +7,7 @@ | |||
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id$ | 8 | * $Id$ |
9 | * | 9 | * |
10 | * Copyright (C) 2005 by Richard S. La Charité | 10 | * Copyright (C) 2005 by Richard S. La Charité |
11 | * | 11 | * |
12 | * All files in this archive are subject to the GNU General Public License. | 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. | 13 | * See the file COPYING in the source tree root for full license agreement. |
@@ -25,74 +25,61 @@ | |||
25 | #include "config.h" | 25 | #include "config.h" |
26 | 26 | ||
27 | #ifdef HAVE_REMOTE_LCD | 27 | #ifdef HAVE_REMOTE_LCD |
28 | |||
28 | #define REMOTE_DRAW_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] |= (1<<((y)&7)) | 29 | #define REMOTE_DRAW_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] |= (1<<((y)&7)) |
29 | #define REMOTE_CLEAR_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] &= ~(1<<((y)&7)) | 30 | #define REMOTE_CLEAR_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] &= ~(1<<((y)&7)) |
30 | #define REMOTE_INVERT_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] ^= (1<<((y)&7)) | 31 | #define REMOTE_INVERT_PIXEL(x,y) lcd_remote_framebuffer[(y)/8][(x)] ^= (1<<((y)&7)) |
31 | 32 | ||
32 | #define STYLE_DEFAULT 0 | 33 | #define STYLE_DEFAULT 0 |
33 | #define STYLE_INVERT 1 | 34 | #define STYLE_INVERT 1 |
34 | 35 | ||
35 | extern void lcd_remote_init(void); | 36 | extern void lcd_remote_init(void); |
36 | extern void lcd_remote_clear_display(void); | ||
37 | extern void lcd_remote_backlight_on(void); | 37 | extern void lcd_remote_backlight_on(void); |
38 | extern void lcd_remote_backlight_off(void); | 38 | extern void lcd_remote_backlight_off(void); |
39 | extern void lcd_remote_stop_scroll(void); | ||
40 | extern void lcd_remote_scroll_speed( int speed ); | ||
41 | extern void lcd_remote_scroll_delay( int ms ); | ||
42 | extern void lcd_remote_set_contrast(int val); | ||
43 | extern int lcd_remote_default_contrast(void); | 39 | extern int lcd_remote_default_contrast(void); |
44 | extern void lcd_remote_update(void); | 40 | extern void lcd_remote_set_contrast(int val); |
45 | extern void lcd_remote_update_rect (int x_start, int y, | 41 | |
46 | int width, int height); | 42 | extern void lcd_remote_clear_display(void); |
47 | |||
48 | extern void lcd_remote_puts(int x, int y, const unsigned char *string); | 43 | extern void lcd_remote_puts(int x, int y, const unsigned char *string); |
49 | extern void lcd_remote_puts_style(int x, int y, const unsigned char *string, | 44 | extern void lcd_remote_puts_style(int x, int y, const unsigned char *string, |
50 | int style); | 45 | int style); |
51 | 46 | extern void lcd_remote_putc(int x, int y, unsigned short ch); | |
52 | extern void lcd_remote_puts_scroll(int x, int y, const unsigned char* string ); | 47 | extern void lcd_remote_stop_scroll(void); |
48 | extern void lcd_remote_scroll_speed(int speed); | ||
49 | extern void lcd_remote_scroll_delay(int ms); | ||
50 | extern void lcd_remote_puts_scroll(int x, int y, const unsigned char* string); | ||
53 | extern void lcd_remote_puts_scroll_style(int x, int y, const unsigned char* string, | 51 | extern void lcd_remote_puts_scroll_style(int x, int y, const unsigned char* string, |
54 | int style); | 52 | int style); |
55 | 53 | ||
56 | extern void lcd_remote_putc(int x, int y, unsigned short ch); | 54 | extern void lcd_remote_update(void); |
55 | extern void lcd_remote_update_rect int x_start, int y, int width, int height); | ||
57 | 56 | ||
57 | /* Memory copy of display bitmap */ | ||
58 | extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; | ||
59 | |||
60 | extern void lcd_remote_set_invert_display(bool yesno); | ||
61 | extern void lcd_remote_set_flip(bool yesno); | ||
62 | extern void lcd_remote_roll(int pixels); | ||
58 | extern void lcd_remote_setmargins(int xmargin, int ymargin); | 63 | extern void lcd_remote_setmargins(int xmargin, int ymargin); |
59 | extern int lcd_remote_getxmargin(void); | 64 | extern int lcd_remote_getxmargin(void); |
60 | extern int lcd_remote_getymargin(void); | 65 | extern int lcd_remote_getymargin(void); |
61 | 66 | extern void lcd_remote_setfont(int font); | |
62 | /* | 67 | extern int lcd_remote_getstringsize(const unsigned char *str, int *w, int *h); |
63 | * Memory copy of display bitmap | ||
64 | */ | ||
65 | extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; | ||
66 | |||
67 | extern void lcd_remote_bitmap (const unsigned char *src, int x, int y, | ||
68 | int nx, int ny, bool clear); | ||
69 | extern void lcd_remote_clearrect (int x, int y, int nx, int ny); | ||
70 | extern void lcd_remote_fillrect (int x, int y, int nx, int ny); | ||
71 | extern void lcd_remote_invertrect (int x, int y, int nx, int ny); | ||
72 | extern void lcd_remote_drawrect (int x, int y, int nx, int ny); | ||
73 | extern void lcd_remote_invertrect (int x, int y, int nx, int ny); | ||
74 | //extern void lcd_invertscroll(int x, int y); | ||
75 | extern void lcd_remote_drawline( int x1, int y1, int x2, int y2 ); | ||
76 | extern void lcd_remote_clearline( int x1, int y1, int x2, int y2 ); | ||
77 | extern void lcd_remote_drawpixel(int x, int y); | 68 | extern void lcd_remote_drawpixel(int x, int y); |
78 | extern void lcd_remote_clearpixel(int x, int y); | 69 | extern void lcd_remote_clearpixel(int x, int y); |
79 | extern void lcd_remote_invertpixel(int x, int y); | 70 | extern void lcd_remote_invertpixel(int x, int y); |
80 | extern void lcd_remote_roll(int pixels); | 71 | extern void lcd_remote_drawline(int x1, int y1, int x2, int y2); |
81 | extern void lcd_remote_set_invert_display(bool yesno); | 72 | extern void lcd_remote_clearline(int x1, int y1, int x2, int y2); |
82 | extern void lcd_remote_set_flip(bool yesno); | 73 | extern void lcd_remote_drawrect(int x, int y, int nx, int ny); |
74 | extern void lcd_remote_clearrect(int x, int y, int nx, int ny); | ||
75 | extern void lcd_remote_fillrect(int x, int y, int nx, int ny); | ||
76 | extern void lcd_remote_invertrect(int x, int y, int nx, int ny); | ||
77 | extern void lcd_remote_bitmap(const unsigned char *src, int x, int y, | ||
78 | int nx, int ny, bool clear); | ||
79 | extern void lcd_remote_putsxy(int x, int y, const unsigned char *string); | ||
80 | extern void lcd_remote_invertscroll(int x, int y); | ||
83 | extern void lcd_remote_bidir_scroll(int threshold); | 81 | extern void lcd_remote_bidir_scroll(int threshold); |
84 | extern void lcd_remote_scroll_step(int pixels); | 82 | extern void lcd_remote_scroll_step(int pixels); |
85 | extern void lcd_remote_setfont(int font); | ||
86 | extern void lcd_remote_putsxy(int x, int y, const unsigned char *string); | ||
87 | extern int lcd_remote_getstringsize(const unsigned char *str, int *w, int *h); | ||
88 | |||
89 | |||
90 | |||
91 | |||
92 | |||
93 | |||
94 | |||
95 | |||
96 | 83 | ||
97 | #endif | 84 | #endif |
98 | #endif | 85 | #endif |
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 08a02a8303..8c05fb984f 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h | |||
@@ -29,35 +29,38 @@ | |||
29 | 29 | ||
30 | #ifdef SIMULATOR | 30 | #ifdef SIMULATOR |
31 | #define lcd_icon(x,y) sim_lcd_icon(x,y) | 31 | #define lcd_icon(x,y) sim_lcd_icon(x,y) |
32 | #define MAX_PATH 260 | ||
33 | #else | ||
34 | #include "file.h" /* for MAX_PATH; FIXME: Why does this not work for sims? */ | ||
32 | #endif | 35 | #endif |
33 | 36 | ||
34 | /* common functions */ | 37 | /* common functions */ |
38 | extern void lcd_write_command(int byte); | ||
39 | extern void lcd_write_command_ex(int cmd, int data1, int data2); | ||
40 | extern void lcd_write_data(const unsigned char* p_bytes, int count); | ||
35 | extern void lcd_init(void); | 41 | extern void lcd_init(void); |
36 | extern void lcd_clear_display(void); | ||
37 | extern void lcd_backlight(bool on); | 42 | extern void lcd_backlight(bool on); |
43 | extern int lcd_default_contrast(void); | ||
44 | extern void lcd_set_contrast(int val); | ||
45 | |||
46 | extern void lcd_clear_display(void); | ||
38 | extern void lcd_puts(int x, int y, const unsigned char *string); | 47 | extern void lcd_puts(int x, int y, const unsigned char *string); |
39 | extern void lcd_puts_style(int x, int y, const unsigned char *string, int style); | 48 | extern void lcd_puts_style(int x, int y, const unsigned char *string, int style); |
40 | extern void lcd_putc(int x, int y, unsigned short ch); | 49 | extern void lcd_putc(int x, int y, unsigned short ch); |
41 | 50 | extern void lcd_stop_scroll(void); | |
42 | extern void lcd_puts_scroll(int x, int y, const unsigned char* string ); | 51 | extern void lcd_scroll_speed(int speed); |
52 | extern void lcd_scroll_delay(int ms); | ||
53 | extern void lcd_puts_scroll(int x, int y, const unsigned char* string); | ||
43 | extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, | 54 | extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, |
44 | int style); | 55 | int style); |
45 | extern void lcd_icon(int icon, bool enable); | 56 | extern void lcd_icon(int icon, bool enable); |
46 | extern void lcd_stop_scroll(void); | ||
47 | extern void lcd_scroll_speed( int speed ); | ||
48 | extern void lcd_scroll_delay( int ms ); | ||
49 | extern void lcd_set_contrast(int val); | ||
50 | extern void lcd_write_command( int byte ); | ||
51 | extern void lcd_write_command_ex( int cmd, int data1, int data2); | ||
52 | extern void lcd_write_data( const unsigned char* p_bytes, int count ); | ||
53 | extern int lcd_default_contrast(void); | ||
54 | 57 | ||
55 | #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) | 58 | #if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) |
56 | extern void lcd_update(void); | ||
57 | /* performance function */ | 59 | /* performance function */ |
58 | extern void lcd_blit (const unsigned char* p_data, int x, int y, int width, | 60 | extern void lcd_blit(const unsigned char* p_data, int x, int y, int width, |
59 | int height, int stride); | 61 | int height, int stride); |
60 | 62 | ||
63 | extern void lcd_update(void); | ||
61 | /* update a fraction of the screen */ | 64 | /* update a fraction of the screen */ |
62 | extern void lcd_update_rect(int x, int y, int width, int height); | 65 | extern void lcd_update_rect(int x, int y, int width, int height); |
63 | 66 | ||
@@ -97,56 +100,84 @@ enum | |||
97 | ICON_PARAM | 100 | ICON_PARAM |
98 | }; | 101 | }; |
99 | 102 | ||
100 | extern void lcd_define_hw_pattern (int which,const char *pattern,int length); | 103 | extern void lcd_double_height(bool on); |
101 | extern void lcd_define_pattern (int which,const char *pattern); | 104 | extern void lcd_define_hw_pattern(int which,const char *pattern,int length); |
102 | extern void lcd_double_height (bool on); | 105 | extern void lcd_define_pattern(int which,const char *pattern); |
103 | #define JUMP_SCROLL_ALWAYS 5 | ||
104 | extern void lcd_jump_scroll (int mode); /* 0=off, 1=once, ..., ALWAYS */ | ||
105 | extern void lcd_jump_scroll_delay( int ms ); | ||
106 | unsigned char lcd_get_locked_pattern(void); | 106 | unsigned char lcd_get_locked_pattern(void); |
107 | void lcd_unlock_pattern(unsigned char pat); | 107 | void lcd_unlock_pattern(unsigned char pat); |
108 | extern void lcd_bidir_scroll(int threshold); | ||
109 | void lcd_put_cursor(int x, int y, char cursor_char); | 108 | void lcd_put_cursor(int x, int y, char cursor_char); |
110 | void lcd_remove_cursor(void); | 109 | void lcd_remove_cursor(void); |
110 | extern void lcd_bidir_scroll(int threshold); | ||
111 | #define JUMP_SCROLL_ALWAYS 5 | ||
112 | extern void lcd_jump_scroll(int mode); /* 0=off, 1=once, ..., ALWAYS */ | ||
113 | extern void lcd_jump_scroll_delay(int ms); | ||
111 | #endif | 114 | #endif |
112 | 115 | ||
113 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) | 116 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) |
114 | #if defined(HAVE_LCD_CHARCELLS) && defined(SIMULATOR) | ||
115 | #endif | ||
116 | 117 | ||
117 | #define DRAW_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] |= (1<<((y)&7)) | 118 | #define DRAW_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] |= (1<<((y)&7)) |
118 | #define CLEAR_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] &= ~(1<<((y)&7)) | 119 | #define CLEAR_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] &= ~(1<<((y)&7)) |
119 | #define INVERT_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] ^= (1<<((y)&7)) | 120 | #define INVERT_PIXEL(x,y) lcd_framebuffer[(y)/8][(x)] ^= (1<<((y)&7)) |
120 | 121 | ||
121 | /* | 122 | /* Memory copy of display bitmap */ |
122 | * Memory copy of display bitmap | ||
123 | */ | ||
124 | extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; | 123 | extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; |
125 | 124 | ||
125 | extern void lcd_set_invert_display(bool yesno); | ||
126 | extern void lcd_set_flip(bool yesno); | ||
127 | extern void lcd_roll(int pixels); | ||
126 | extern void lcd_setmargins(int xmargin, int ymargin); | 128 | extern void lcd_setmargins(int xmargin, int ymargin); |
127 | extern int lcd_getxmargin(void); | 129 | extern int lcd_getxmargin(void); |
128 | extern int lcd_getymargin(void); | 130 | extern int lcd_getymargin(void); |
129 | extern void lcd_bitmap (const unsigned char *src, int x, int y, int nx, int ny, | 131 | extern void lcd_setfont(int font); |
130 | bool clear); | 132 | extern int lcd_getstringsize(const unsigned char *str, int *w, int *h); |
131 | extern void lcd_clearrect (int x, int y, int nx, int ny); | ||
132 | extern void lcd_fillrect (int x, int y, int nx, int ny); | ||
133 | extern void lcd_drawrect (int x, int y, int nx, int ny); | ||
134 | extern void lcd_invertrect (int x, int y, int nx, int ny); | ||
135 | extern void lcd_invertscroll(int x, int y); | ||
136 | extern void lcd_drawline( int x1, int y1, int x2, int y2 ); | ||
137 | extern void lcd_clearline( int x1, int y1, int x2, int y2 ); | ||
138 | extern void lcd_drawpixel(int x, int y); | 133 | extern void lcd_drawpixel(int x, int y); |
139 | extern void lcd_clearpixel(int x, int y); | 134 | extern void lcd_clearpixel(int x, int y); |
140 | extern void lcd_invertpixel(int x, int y); | 135 | extern void lcd_invertpixel(int x, int y); |
141 | extern void lcd_roll(int pixels); | 136 | extern void lcd_drawline(int x1, int y1, int x2, int y2); |
142 | extern void lcd_set_invert_display(bool yesno); | 137 | extern void lcd_clearline(int x1, int y1, int x2, int y2); |
143 | extern void lcd_set_flip(bool yesno); | 138 | extern void lcd_drawrect(int x, int y, int nx, int ny); |
139 | extern void lcd_clearrect(int x, int y, int nx, int ny); | ||
140 | extern void lcd_fillrect(int x, int y, int nx, int ny); | ||
141 | extern void lcd_invertrect(int x, int y, int nx, int ny); | ||
142 | extern void lcd_bitmap(const unsigned char *src, int x, int y, int nx, int ny, | ||
143 | bool clear); | ||
144 | extern void lcd_putsxy(int x, int y, const unsigned char *string); | ||
145 | extern void lcd_invertscroll(int x, int y); | ||
144 | extern void lcd_bidir_scroll(int threshold); | 146 | extern void lcd_bidir_scroll(int threshold); |
145 | extern void lcd_scroll_step(int pixels); | 147 | extern void lcd_scroll_step(int pixels); |
146 | extern void lcd_setfont(int font); | ||
147 | extern void lcd_putsxy(int x, int y, const unsigned char *string); | ||
148 | extern int lcd_getstringsize(const unsigned char *str, int *w, int *h); | ||
149 | 148 | ||
150 | #endif /* CHARCELLS / BITMAP */ | 149 | #endif /* CHARCELLS / BITMAP */ |
151 | 150 | ||
151 | /* internal usage, but in multiple drivers */ | ||
152 | #ifdef HAVE_LCD_BITMAP | ||
153 | #define SCROLL_SPACING 3 | ||
154 | |||
155 | struct scrollinfo { | ||
156 | char line[MAX_PATH + LCD_WIDTH/2 + SCROLL_SPACING + 2]; | ||
157 | int len; /* length of line in chars */ | ||
158 | int width; /* length of line in pixels */ | ||
159 | int offset; | ||
160 | int startx; | ||
161 | bool backward; /* scroll presently forward or backward? */ | ||
162 | bool bidir; | ||
163 | bool invert; /* invert the scrolled text */ | ||
164 | long start_tick; | ||
165 | }; | ||
166 | #else /* !HAVE_LCD_BITMAP */ | ||
167 | |||
168 | struct scrollinfo { | ||
169 | int mode; | ||
170 | char text[MAX_PATH]; | ||
171 | int textlen; | ||
172 | int offset; | ||
173 | int turn_offset; | ||
174 | int startx; | ||
175 | int starty; | ||
176 | long scroll_start_tick; | ||
177 | int direction; /* +1 for right or -1 for left*/ | ||
178 | int jump_scroll; | ||
179 | int jump_scroll_steps; | ||
180 | }; | ||
181 | #endif | ||
182 | |||
152 | #endif /* __LCD_H__ */ | 183 | #endif /* __LCD_H__ */ |