diff options
author | Jens Arnold <amiconn@rockbox.org> | 2007-03-26 07:52:13 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2007-03-26 07:52:13 +0000 |
commit | ad4e3d665734b14a28f1ba5fa874663772dab3e7 (patch) | |
tree | bff44652495f1319a4d11ed63b3d4e90cb11197f /apps/screen_access.c | |
parent | 165f62d0cd771660e4b8d2ba7475e14d0d6f2e9f (diff) | |
download | rockbox-ad4e3d665734b14a28f1ba5fa874663772dab3e7.tar.gz rockbox-ad4e3d665734b14a28f1ba5fa874663772dab3e7.zip |
First step of charcell LCD code rework: * Make it fully unicode aware so that adding non-ISO8859-1 scripts becomes possible (limited by the LCD capabilities of course). * Make the API more similar to the bitmap LCD code's API. * Moved hardware dependent parts to target tree. * Simplified code. * Jumpscroll temporarily non-functional.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12916 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/screen_access.c')
-rw-r--r-- | apps/screen_access.c | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/apps/screen_access.c b/apps/screen_access.c index 00db92769b..6728c4ea2a 100644 --- a/apps/screen_access.c +++ b/apps/screen_access.c | |||
@@ -41,16 +41,15 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
41 | screen->depth=LCD_REMOTE_DEPTH; | 41 | screen->depth=LCD_REMOTE_DEPTH; |
42 | screen->has_disk_led=false; | 42 | screen->has_disk_led=false; |
43 | 43 | ||
44 | #if 1 /* all remote LCDs are bitmapped so far */ | ||
45 | screen->width=LCD_REMOTE_WIDTH; | 44 | screen->width=LCD_REMOTE_WIDTH; |
46 | screen->height=LCD_REMOTE_HEIGHT; | 45 | screen->height=LCD_REMOTE_HEIGHT; |
47 | screen->setmargins=&lcd_remote_setmargins; | 46 | screen->setmargins=&lcd_remote_setmargins; |
48 | screen->getymargin=&lcd_remote_getymargin; | 47 | screen->getymargin=&lcd_remote_getymargin; |
49 | screen->getxmargin=&lcd_remote_getxmargin; | 48 | screen->getxmargin=&lcd_remote_getxmargin; |
49 | screen->getstringsize=&lcd_remote_getstringsize; | ||
50 | #if 1 /* all remote LCDs are bitmapped so far */ | ||
50 | screen->setfont=&lcd_remote_setfont; | 51 | screen->setfont=&lcd_remote_setfont; |
51 | screen->setfont(FONT_UI); | 52 | screen->setfont(FONT_UI); |
52 | screen->getstringsize=&lcd_remote_getstringsize; | ||
53 | screen->putsxy=&lcd_remote_putsxy; | ||
54 | screen->mono_bitmap=&lcd_remote_mono_bitmap; | 53 | screen->mono_bitmap=&lcd_remote_mono_bitmap; |
55 | screen->mono_bitmap_part=&lcd_remote_mono_bitmap_part; | 54 | screen->mono_bitmap_part=&lcd_remote_mono_bitmap_part; |
56 | screen->set_drawmode=&lcd_remote_set_drawmode; | 55 | screen->set_drawmode=&lcd_remote_set_drawmode; |
@@ -70,20 +69,14 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
70 | screen->drawline=&lcd_remote_drawline; | 69 | screen->drawline=&lcd_remote_drawline; |
71 | screen->vline=&lcd_remote_vline; | 70 | screen->vline=&lcd_remote_vline; |
72 | screen->hline=&lcd_remote_hline; | 71 | screen->hline=&lcd_remote_hline; |
73 | screen->scroll_speed=&lcd_remote_scroll_speed; | ||
74 | screen->scroll_delay=&lcd_remote_scroll_delay; | ||
75 | screen->scroll_step=&lcd_remote_scroll_step; | 72 | screen->scroll_step=&lcd_remote_scroll_step; |
76 | screen->invertscroll=&lcd_remote_invertscroll; | 73 | screen->invertscroll=&lcd_remote_invertscroll; |
77 | #endif /* LCD_REMOTE_DEPTH > 1 */ | ||
78 | screen->puts_offset=&lcd_remote_puts_offset; | ||
79 | screen->puts_style_offset=&lcd_remote_puts_style_offset; | 74 | screen->puts_style_offset=&lcd_remote_puts_style_offset; |
80 | screen->puts_scroll_style=&lcd_remote_puts_scroll_style; | 75 | screen->puts_scroll_style=&lcd_remote_puts_scroll_style; |
81 | screen->puts_scroll_offset=&lcd_remote_puts_scroll_offset; | ||
82 | screen->puts_scroll_style_offset=&lcd_remote_puts_scroll_style_offset; | 76 | screen->puts_scroll_style_offset=&lcd_remote_puts_scroll_style_offset; |
77 | #endif /* 1 */ | ||
83 | 78 | ||
84 | #if 0 /* no charcell remote LCDs so far */ | 79 | #if 0 /* no charcell remote LCDs so far */ |
85 | screen->width=11; | ||
86 | screen->height=2; | ||
87 | screen->double_height=&lcd_remote_double_height; | 80 | screen->double_height=&lcd_remote_double_height; |
88 | screen->putc=&lcd_remote_putc; | 81 | screen->putc=&lcd_remote_putc; |
89 | screen->get_locked_pattern=&lcd_remote_get_locked_pattern; | 82 | screen->get_locked_pattern=&lcd_remote_get_locked_pattern; |
@@ -96,11 +89,16 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
96 | #endif /* 0 */ | 89 | #endif /* 0 */ |
97 | 90 | ||
98 | screen->init=&lcd_remote_init; | 91 | screen->init=&lcd_remote_init; |
92 | screen->putsxy=&lcd_remote_putsxy; | ||
93 | screen->puts=&lcd_remote_puts; | ||
94 | screen->puts_offset=&lcd_remote_puts_offset; | ||
99 | screen->puts_scroll=&lcd_remote_puts_scroll; | 95 | screen->puts_scroll=&lcd_remote_puts_scroll; |
96 | screen->puts_scroll_offset=&lcd_remote_puts_scroll_offset; | ||
97 | screen->scroll_speed=&lcd_remote_scroll_speed; | ||
98 | screen->scroll_delay=&lcd_remote_scroll_delay; | ||
100 | screen->stop_scroll=&lcd_remote_stop_scroll; | 99 | screen->stop_scroll=&lcd_remote_stop_scroll; |
101 | screen->clear_display=&lcd_remote_clear_display; | 100 | screen->clear_display=&lcd_remote_clear_display; |
102 | screen->update=&lcd_remote_update; | 101 | screen->update=&lcd_remote_update; |
103 | screen->puts=&lcd_remote_puts; | ||
104 | screen->backlight_on=&remote_backlight_on; | 102 | screen->backlight_on=&remote_backlight_on; |
105 | screen->backlight_off=&remote_backlight_off; | 103 | screen->backlight_off=&remote_backlight_off; |
106 | screen->is_backlight_on=&is_remote_backlight_on; | 104 | screen->is_backlight_on=&is_remote_backlight_on; |
@@ -116,16 +114,15 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
116 | #elif defined(HAVE_REMOTE_LCD) | 114 | #elif defined(HAVE_REMOTE_LCD) |
117 | screen->has_disk_led=true; | 115 | screen->has_disk_led=true; |
118 | #endif | 116 | #endif |
119 | #ifdef HAVE_LCD_BITMAP | ||
120 | screen->width=LCD_WIDTH; | 117 | screen->width=LCD_WIDTH; |
121 | screen->height=LCD_HEIGHT; | 118 | screen->height=LCD_HEIGHT; |
122 | screen->setmargins=&lcd_setmargins; | 119 | screen->setmargins=&lcd_setmargins; |
123 | screen->getymargin=&lcd_getymargin; | 120 | screen->getymargin=&lcd_getymargin; |
124 | screen->getxmargin=&lcd_getxmargin; | 121 | screen->getxmargin=&lcd_getxmargin; |
122 | screen->getstringsize=&lcd_getstringsize; | ||
123 | #ifdef HAVE_LCD_BITMAP | ||
125 | screen->setfont=&lcd_setfont; | 124 | screen->setfont=&lcd_setfont; |
126 | screen->setfont(FONT_UI); | 125 | screen->setfont(FONT_UI); |
127 | screen->getstringsize=&lcd_getstringsize; | ||
128 | screen->putsxy=&lcd_putsxy; | ||
129 | screen->mono_bitmap=&lcd_mono_bitmap; | 126 | screen->mono_bitmap=&lcd_mono_bitmap; |
130 | screen->mono_bitmap_part=&lcd_mono_bitmap_part; | 127 | screen->mono_bitmap_part=&lcd_mono_bitmap_part; |
131 | screen->set_drawmode=&lcd_set_drawmode; | 128 | screen->set_drawmode=&lcd_set_drawmode; |
@@ -147,7 +144,7 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
147 | screen->get_foreground=&lcd_get_foreground; | 144 | screen->get_foreground=&lcd_get_foreground; |
148 | screen->set_background=&lcd_set_background; | 145 | screen->set_background=&lcd_set_background; |
149 | screen->set_foreground=&lcd_set_foreground; | 146 | screen->set_foreground=&lcd_set_foreground; |
150 | #endif | 147 | #endif /* LCD_DEPTH > 1 */ |
151 | screen->update_rect=&lcd_update_rect; | 148 | screen->update_rect=&lcd_update_rect; |
152 | screen->fillrect=&lcd_fillrect; | 149 | screen->fillrect=&lcd_fillrect; |
153 | screen->drawrect=&lcd_drawrect; | 150 | screen->drawrect=&lcd_drawrect; |
@@ -155,20 +152,14 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
155 | screen->drawline=&lcd_drawline; | 152 | screen->drawline=&lcd_drawline; |
156 | screen->vline=&lcd_vline; | 153 | screen->vline=&lcd_vline; |
157 | screen->hline=&lcd_hline; | 154 | screen->hline=&lcd_hline; |
158 | screen->scroll_speed=&lcd_scroll_speed; | ||
159 | screen->scroll_delay=&lcd_scroll_delay; | ||
160 | screen->scroll_step=&lcd_scroll_step; | 155 | screen->scroll_step=&lcd_scroll_step; |
161 | screen->invertscroll=&lcd_invertscroll; | 156 | screen->invertscroll=&lcd_invertscroll; |
162 | screen->puts_offset=&lcd_puts_offset; | ||
163 | screen->puts_style_offset=&lcd_puts_style_offset; | 157 | screen->puts_style_offset=&lcd_puts_style_offset; |
164 | screen->puts_scroll_style=&lcd_puts_scroll_style; | 158 | screen->puts_scroll_style=&lcd_puts_scroll_style; |
165 | screen->puts_scroll_offset=&lcd_puts_scroll_offset; | ||
166 | screen->puts_scroll_style_offset=&lcd_puts_scroll_style_offset; | 159 | screen->puts_scroll_style_offset=&lcd_puts_scroll_style_offset; |
167 | #endif /* HAVE_LCD_BITMAP */ | 160 | #endif /* HAVE_LCD_BITMAP */ |
168 | 161 | ||
169 | #ifdef HAVE_LCD_CHARCELLS | 162 | #ifdef HAVE_LCD_CHARCELLS |
170 | screen->width=11; /* width in characters instead of pixels */ | ||
171 | screen->height=2; | ||
172 | screen->double_height=&lcd_double_height; | 163 | screen->double_height=&lcd_double_height; |
173 | screen->putc=&lcd_putc; | 164 | screen->putc=&lcd_putc; |
174 | screen->get_locked_pattern=&lcd_get_locked_pattern; | 165 | screen->get_locked_pattern=&lcd_get_locked_pattern; |
@@ -181,13 +172,18 @@ void screen_init(struct screen * screen, enum screen_type screen_type) | |||
181 | #endif /* HAVE_LCD_CHARCELLS */ | 172 | #endif /* HAVE_LCD_CHARCELLS */ |
182 | 173 | ||
183 | screen->init=&lcd_init; | 174 | screen->init=&lcd_init; |
175 | screen->putsxy=&lcd_putsxy; | ||
176 | screen->puts=&lcd_puts; | ||
177 | screen->puts_offset=&lcd_puts_offset; | ||
184 | screen->puts_scroll=&lcd_puts_scroll; | 178 | screen->puts_scroll=&lcd_puts_scroll; |
179 | screen->puts_scroll_offset=&lcd_puts_scroll_offset; | ||
180 | screen->scroll_speed=&lcd_scroll_speed; | ||
181 | screen->scroll_delay=&lcd_scroll_delay; | ||
185 | screen->stop_scroll=&lcd_stop_scroll; | 182 | screen->stop_scroll=&lcd_stop_scroll; |
186 | screen->clear_display=&lcd_clear_display; | 183 | screen->clear_display=&lcd_clear_display; |
187 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) | 184 | #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) |
188 | screen->update=&lcd_update; | 185 | screen->update=&lcd_update; |
189 | #endif | 186 | #endif |
190 | screen->puts=&lcd_puts; | ||
191 | screen->backlight_on=&backlight_on; | 187 | screen->backlight_on=&backlight_on; |
192 | screen->backlight_off=&backlight_off; | 188 | screen->backlight_off=&backlight_off; |
193 | screen->is_backlight_on=&is_backlight_on; | 189 | screen->is_backlight_on=&is_backlight_on; |