summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-06-23 16:53:54 +0000
committerJens Arnold <amiconn@rockbox.org>2005-06-23 16:53:54 +0000
commit6a556c1740174d76da3f652de2a4ca0777b931c4 (patch)
tree7fb79cedee84ec829b359a2e8cee0f3c707dbfe5 /firmware/export
parentbec1afada554b4624d0ef9b43b3443d1f0583cf3 (diff)
downloadrockbox-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.h79
-rw-r--r--firmware/export/lcd.h113
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
35extern void lcd_remote_init(void); 36extern void lcd_remote_init(void);
36extern void lcd_remote_clear_display(void);
37extern void lcd_remote_backlight_on(void); 37extern void lcd_remote_backlight_on(void);
38extern void lcd_remote_backlight_off(void); 38extern void lcd_remote_backlight_off(void);
39extern void lcd_remote_stop_scroll(void);
40extern void lcd_remote_scroll_speed( int speed );
41extern void lcd_remote_scroll_delay( int ms );
42extern void lcd_remote_set_contrast(int val);
43extern int lcd_remote_default_contrast(void); 39extern int lcd_remote_default_contrast(void);
44extern void lcd_remote_update(void); 40extern void lcd_remote_set_contrast(int val);
45extern void lcd_remote_update_rect (int x_start, int y, 41
46 int width, int height); 42extern void lcd_remote_clear_display(void);
47
48extern void lcd_remote_puts(int x, int y, const unsigned char *string); 43extern void lcd_remote_puts(int x, int y, const unsigned char *string);
49extern void lcd_remote_puts_style(int x, int y, const unsigned char *string, 44extern void lcd_remote_puts_style(int x, int y, const unsigned char *string,
50 int style); 45 int style);
51 46extern void lcd_remote_putc(int x, int y, unsigned short ch);
52extern void lcd_remote_puts_scroll(int x, int y, const unsigned char* string ); 47extern void lcd_remote_stop_scroll(void);
48extern void lcd_remote_scroll_speed(int speed);
49extern void lcd_remote_scroll_delay(int ms);
50extern void lcd_remote_puts_scroll(int x, int y, const unsigned char* string);
53extern void lcd_remote_puts_scroll_style(int x, int y, const unsigned char* string, 51extern void lcd_remote_puts_scroll_style(int x, int y, const unsigned char* string,
54 int style); 52 int style);
55 53
56extern void lcd_remote_putc(int x, int y, unsigned short ch); 54extern void lcd_remote_update(void);
55extern void lcd_remote_update_rect int x_start, int y, int width, int height);
57 56
57/* Memory copy of display bitmap */
58extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH];
59
60extern void lcd_remote_set_invert_display(bool yesno);
61extern void lcd_remote_set_flip(bool yesno);
62extern void lcd_remote_roll(int pixels);
58extern void lcd_remote_setmargins(int xmargin, int ymargin); 63extern void lcd_remote_setmargins(int xmargin, int ymargin);
59extern int lcd_remote_getxmargin(void); 64extern int lcd_remote_getxmargin(void);
60extern int lcd_remote_getymargin(void); 65extern int lcd_remote_getymargin(void);
61 66extern void lcd_remote_setfont(int font);
62/* 67extern int lcd_remote_getstringsize(const unsigned char *str, int *w, int *h);
63 * Memory copy of display bitmap
64 */
65extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH];
66
67extern void lcd_remote_bitmap (const unsigned char *src, int x, int y,
68 int nx, int ny, bool clear);
69extern void lcd_remote_clearrect (int x, int y, int nx, int ny);
70extern void lcd_remote_fillrect (int x, int y, int nx, int ny);
71extern void lcd_remote_invertrect (int x, int y, int nx, int ny);
72extern void lcd_remote_drawrect (int x, int y, int nx, int ny);
73extern void lcd_remote_invertrect (int x, int y, int nx, int ny);
74//extern void lcd_invertscroll(int x, int y);
75extern void lcd_remote_drawline( int x1, int y1, int x2, int y2 );
76extern void lcd_remote_clearline( int x1, int y1, int x2, int y2 );
77extern void lcd_remote_drawpixel(int x, int y); 68extern void lcd_remote_drawpixel(int x, int y);
78extern void lcd_remote_clearpixel(int x, int y); 69extern void lcd_remote_clearpixel(int x, int y);
79extern void lcd_remote_invertpixel(int x, int y); 70extern void lcd_remote_invertpixel(int x, int y);
80extern void lcd_remote_roll(int pixels); 71extern void lcd_remote_drawline(int x1, int y1, int x2, int y2);
81extern void lcd_remote_set_invert_display(bool yesno); 72extern void lcd_remote_clearline(int x1, int y1, int x2, int y2);
82extern void lcd_remote_set_flip(bool yesno); 73extern void lcd_remote_drawrect(int x, int y, int nx, int ny);
74extern void lcd_remote_clearrect(int x, int y, int nx, int ny);
75extern void lcd_remote_fillrect(int x, int y, int nx, int ny);
76extern void lcd_remote_invertrect(int x, int y, int nx, int ny);
77extern void lcd_remote_bitmap(const unsigned char *src, int x, int y,
78 int nx, int ny, bool clear);
79extern void lcd_remote_putsxy(int x, int y, const unsigned char *string);
80extern void lcd_remote_invertscroll(int x, int y);
83extern void lcd_remote_bidir_scroll(int threshold); 81extern void lcd_remote_bidir_scroll(int threshold);
84extern void lcd_remote_scroll_step(int pixels); 82extern void lcd_remote_scroll_step(int pixels);
85extern void lcd_remote_setfont(int font);
86extern void lcd_remote_putsxy(int x, int y, const unsigned char *string);
87extern 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 */
38extern void lcd_write_command(int byte);
39extern void lcd_write_command_ex(int cmd, int data1, int data2);
40extern void lcd_write_data(const unsigned char* p_bytes, int count);
35extern void lcd_init(void); 41extern void lcd_init(void);
36extern void lcd_clear_display(void);
37extern void lcd_backlight(bool on); 42extern void lcd_backlight(bool on);
43extern int lcd_default_contrast(void);
44extern void lcd_set_contrast(int val);
45
46extern void lcd_clear_display(void);
38extern void lcd_puts(int x, int y, const unsigned char *string); 47extern void lcd_puts(int x, int y, const unsigned char *string);
39extern void lcd_puts_style(int x, int y, const unsigned char *string, int style); 48extern void lcd_puts_style(int x, int y, const unsigned char *string, int style);
40extern void lcd_putc(int x, int y, unsigned short ch); 49extern void lcd_putc(int x, int y, unsigned short ch);
41 50extern void lcd_stop_scroll(void);
42extern void lcd_puts_scroll(int x, int y, const unsigned char* string ); 51extern void lcd_scroll_speed(int speed);
52extern void lcd_scroll_delay(int ms);
53extern void lcd_puts_scroll(int x, int y, const unsigned char* string);
43extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, 54extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string,
44 int style); 55 int style);
45extern void lcd_icon(int icon, bool enable); 56extern void lcd_icon(int icon, bool enable);
46extern void lcd_stop_scroll(void);
47extern void lcd_scroll_speed( int speed );
48extern void lcd_scroll_delay( int ms );
49extern void lcd_set_contrast(int val);
50extern void lcd_write_command( int byte );
51extern void lcd_write_command_ex( int cmd, int data1, int data2);
52extern void lcd_write_data( const unsigned char* p_bytes, int count );
53extern int lcd_default_contrast(void);
54 57
55#if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) 58#if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP)
56extern void lcd_update(void);
57/* performance function */ 59/* performance function */
58extern void lcd_blit (const unsigned char* p_data, int x, int y, int width, 60extern 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
63extern void lcd_update(void);
61/* update a fraction of the screen */ 64/* update a fraction of the screen */
62extern void lcd_update_rect(int x, int y, int width, int height); 65extern 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
100extern void lcd_define_hw_pattern (int which,const char *pattern,int length); 103extern void lcd_double_height(bool on);
101extern void lcd_define_pattern (int which,const char *pattern); 104extern void lcd_define_hw_pattern(int which,const char *pattern,int length);
102extern void lcd_double_height (bool on); 105extern void lcd_define_pattern(int which,const char *pattern);
103#define JUMP_SCROLL_ALWAYS 5
104extern void lcd_jump_scroll (int mode); /* 0=off, 1=once, ..., ALWAYS */
105extern void lcd_jump_scroll_delay( int ms );
106unsigned char lcd_get_locked_pattern(void); 106unsigned char lcd_get_locked_pattern(void);
107void lcd_unlock_pattern(unsigned char pat); 107void lcd_unlock_pattern(unsigned char pat);
108extern void lcd_bidir_scroll(int threshold);
109void lcd_put_cursor(int x, int y, char cursor_char); 108void lcd_put_cursor(int x, int y, char cursor_char);
110void lcd_remove_cursor(void); 109void lcd_remove_cursor(void);
110extern void lcd_bidir_scroll(int threshold);
111#define JUMP_SCROLL_ALWAYS 5
112extern void lcd_jump_scroll(int mode); /* 0=off, 1=once, ..., ALWAYS */
113extern 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 */
124extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; 123extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH];
125 124
125extern void lcd_set_invert_display(bool yesno);
126extern void lcd_set_flip(bool yesno);
127extern void lcd_roll(int pixels);
126extern void lcd_setmargins(int xmargin, int ymargin); 128extern void lcd_setmargins(int xmargin, int ymargin);
127extern int lcd_getxmargin(void); 129extern int lcd_getxmargin(void);
128extern int lcd_getymargin(void); 130extern int lcd_getymargin(void);
129extern void lcd_bitmap (const unsigned char *src, int x, int y, int nx, int ny, 131extern void lcd_setfont(int font);
130 bool clear); 132extern int lcd_getstringsize(const unsigned char *str, int *w, int *h);
131extern void lcd_clearrect (int x, int y, int nx, int ny);
132extern void lcd_fillrect (int x, int y, int nx, int ny);
133extern void lcd_drawrect (int x, int y, int nx, int ny);
134extern void lcd_invertrect (int x, int y, int nx, int ny);
135extern void lcd_invertscroll(int x, int y);
136extern void lcd_drawline( int x1, int y1, int x2, int y2 );
137extern void lcd_clearline( int x1, int y1, int x2, int y2 );
138extern void lcd_drawpixel(int x, int y); 133extern void lcd_drawpixel(int x, int y);
139extern void lcd_clearpixel(int x, int y); 134extern void lcd_clearpixel(int x, int y);
140extern void lcd_invertpixel(int x, int y); 135extern void lcd_invertpixel(int x, int y);
141extern void lcd_roll(int pixels); 136extern void lcd_drawline(int x1, int y1, int x2, int y2);
142extern void lcd_set_invert_display(bool yesno); 137extern void lcd_clearline(int x1, int y1, int x2, int y2);
143extern void lcd_set_flip(bool yesno); 138extern void lcd_drawrect(int x, int y, int nx, int ny);
139extern void lcd_clearrect(int x, int y, int nx, int ny);
140extern void lcd_fillrect(int x, int y, int nx, int ny);
141extern void lcd_invertrect(int x, int y, int nx, int ny);
142extern void lcd_bitmap(const unsigned char *src, int x, int y, int nx, int ny,
143 bool clear);
144extern void lcd_putsxy(int x, int y, const unsigned char *string);
145extern void lcd_invertscroll(int x, int y);
144extern void lcd_bidir_scroll(int threshold); 146extern void lcd_bidir_scroll(int threshold);
145extern void lcd_scroll_step(int pixels); 147extern void lcd_scroll_step(int pixels);
146extern void lcd_setfont(int font);
147extern void lcd_putsxy(int x, int y, const unsigned char *string);
148extern 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
155struct 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
168struct 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__ */