summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-11-10 20:13:24 +0000
committerThomas Martitz <kugel@rockbox.org>2009-11-10 20:13:24 +0000
commitc5b4482ee2468c0e40da4441ddf429c890b5a291 (patch)
treef24461e5db3690c5b69caf48710f61c542c961f4 /apps
parent422fcbe35d93d2ea35695b8f746e0652ee1796ad (diff)
downloadrockbox-c5b4482ee2468c0e40da4441ddf429c890b5a291.tar.gz
rockbox-c5b4482ee2468c0e40da4441ddf429c890b5a291.zip
Revert r23599 and r23600 and fix the early usb problem at the root. The the viewportmanager and custom statusbar was initialized too late.
Now, call it earlier and remove parts of it that caused the need to call it later. Removing that is OK since it's done again on settings loading. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23603 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/usb_screen.c34
-rw-r--r--apps/gui/usb_screen.h2
-rw-r--r--apps/gui/viewport.c5
-rw-r--r--apps/main.c25
-rw-r--r--apps/misc.c2
5 files changed, 31 insertions, 37 deletions
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c
index 5306b014f0..c39acad9df 100644
--- a/apps/gui/usb_screen.c
+++ b/apps/gui/usb_screen.c
@@ -129,7 +129,7 @@ struct usb_screen_vps_t
129 129
130#ifdef HAVE_LCD_BITMAP 130#ifdef HAVE_LCD_BITMAP
131static void usb_screen_fix_viewports(struct screen *screen, 131static void usb_screen_fix_viewports(struct screen *screen,
132 struct usb_screen_vps_t *usb_screen_vps, bool early_usb) 132 struct usb_screen_vps_t *usb_screen_vps)
133{ 133{
134 int logo_width, logo_height; 134 int logo_width, logo_height;
135 struct viewport *parent = &usb_screen_vps->parent; 135 struct viewport *parent = &usb_screen_vps->parent;
@@ -148,15 +148,10 @@ static void usb_screen_fix_viewports(struct screen *screen,
148 logo_height = BMPHEIGHT_usblogo; 148 logo_height = BMPHEIGHT_usblogo;
149 } 149 }
150 150
151 if (!early_usb) 151 viewport_set_defaults(parent, screen->screen_type);
152 { 152 if (parent->width < logo_width || parent->height < logo_height)
153 viewport_set_defaults(parent, screen->screen_type);
154 if (parent->width < logo_width || parent->height < logo_height)
155 viewport_set_fullscreen(parent, screen->screen_type);
156 }
157 else
158 viewport_set_fullscreen(parent, screen->screen_type); 153 viewport_set_fullscreen(parent, screen->screen_type);
159 154
160 *logo = *parent; 155 *logo = *parent;
161 logo->x = parent->x + parent->width - logo_width; 156 logo->x = parent->x + parent->width - logo_width;
162 logo->y = parent->y + (parent->height - logo_height) / 2; 157 logo->y = parent->y + (parent->height - logo_height) / 2;
@@ -182,7 +177,7 @@ static void usb_screen_fix_viewports(struct screen *screen,
182} 177}
183#endif 178#endif
184 179
185static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar, bool early_usb) 180static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar)
186{ 181{
187 int i; 182 int i;
188 int usb_bars = VP_SB_ALLSCREENS; /* force statusbars */ 183 int usb_bars = VP_SB_ALLSCREENS; /* force statusbars */
@@ -241,14 +236,13 @@ static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar, bool ea
241 usb_bars |= VP_SB_IGNORE_SETTING(i); 236 usb_bars |= VP_SB_IGNORE_SETTING(i);
242 } 237 }
243 238
244 if (!early_usb) 239 viewportmanager_set_statusbar(usb_bars);
245 viewportmanager_set_statusbar(usb_bars);
246} 240}
247 241
248void gui_usb_screen_run(bool early_usb) 242void gui_usb_screen_run(void)
249{ 243{
250 int i; 244 int i;
251 int old_bars = early_usb ? 0 : viewportmanager_get_statusbar(); 245 int old_bars = viewportmanager_get_statusbar();
252 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS]; 246 struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS];
253#if defined HAVE_TOUCHSCREEN 247#if defined HAVE_TOUCHSCREEN
254 enum touchscreen_mode old_mode = touchscreen_get_mode(); 248 enum touchscreen_mode old_mode = touchscreen_get_mode();
@@ -273,13 +267,13 @@ void gui_usb_screen_run(bool early_usb)
273 267
274 screen->set_viewport(NULL); 268 screen->set_viewport(NULL);
275#ifdef HAVE_LCD_BITMAP 269#ifdef HAVE_LCD_BITMAP
276 usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i], early_usb); 270 usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i]);
277#endif 271#endif
278 } 272 }
279 273
280 while (1) 274 while (1)
281 { 275 {
282 usb_screens_draw(usb_screen_vps_ar, early_usb); 276 usb_screens_draw(usb_screen_vps_ar);
283#ifdef SIMULATOR 277#ifdef SIMULATOR
284 if (button_get_w_tmo(HZ/2)) 278 if (button_get_w_tmo(HZ/2))
285 break; 279 break;
@@ -321,11 +315,9 @@ void gui_usb_screen_run(bool early_usb)
321 { 315 {
322 screens[i].backlight_on(); 316 screens[i].backlight_on();
323 } 317 }
324 if (!early_usb) 318 viewportmanager_set_statusbar(old_bars);
325 { 319 send_event(GUI_EVENT_REFRESH, NULL);
326 viewportmanager_set_statusbar(old_bars); 320
327 send_event(GUI_EVENT_REFRESH, NULL);
328 }
329} 321}
330#endif /* !defined(USB_NONE) */ 322#endif /* !defined(USB_NONE) */
331 323
diff --git a/apps/gui/usb_screen.h b/apps/gui/usb_screen.h
index cbf4d296a5..d601546520 100644
--- a/apps/gui/usb_screen.h
+++ b/apps/gui/usb_screen.h
@@ -21,7 +21,7 @@
21#ifndef _USB_SCREEN_H_ 21#ifndef _USB_SCREEN_H_
22#define _USB_SCREEN_H_ 22#define _USB_SCREEN_H_
23 23
24extern void gui_usb_screen_run(bool early_usb); 24extern void gui_usb_screen_run(void);
25 25
26#endif 26#endif
27 27
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 063f59cec6..5f999df961 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -104,12 +104,7 @@ static bool showing_bars(enum screen_type screen)
104void viewportmanager_init(void) 104void viewportmanager_init(void)
105{ 105{
106#ifdef HAVE_LCD_BITMAP 106#ifdef HAVE_LCD_BITMAP
107 int retval, i;
108 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false, statusbar_toggled); 107 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false, statusbar_toggled);
109 retval = viewport_init_ui_vp();
110 FOR_NB_SCREENS(i)
111 ui_vp_info.active[i] = retval & BIT_N(i);
112 ui_vp_info.vp = custom_vp;
113#endif 108#endif
114 viewportmanager_set_statusbar(VP_SB_ALLSCREENS); 109 viewportmanager_set_statusbar(VP_SB_ALLSCREENS);
115} 110}
diff --git a/apps/main.c b/apps/main.c
index e5349ae4bf..145153ba37 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -142,7 +142,8 @@ int main(void)
142 list_init(); 142 list_init();
143#endif 143#endif
144 tree_gui_init(); 144 tree_gui_init();
145 viewportmanager_init(); 145 /* Keep the order of this 3
146 * Must be done before any code uses the multi-screen API */
146#ifdef HAVE_USBSTACK 147#ifdef HAVE_USBSTACK
147 /* All threads should be created and public queues registered by now */ 148 /* All threads should be created and public queues registered by now */
148 usb_start_monitoring(); 149 usb_start_monitoring();
@@ -318,13 +319,16 @@ static void init(void)
318#ifdef DEBUG 319#ifdef DEBUG
319 debug_init(); 320 debug_init();
320#endif 321#endif
321 /* Must be done before any code uses the multi-screen API */ 322 /* Keep the order of this 3 (viewportmanager handles statusbars)
323 * Must be done before any code uses the multi-screen API */
322 gui_syncstatusbar_init(&statusbars); 324 gui_syncstatusbar_init(&statusbars);
325 sb_skin_init();
326 viewportmanager_init();
327
328 gui_sync_wps_init();
323 storage_init(); 329 storage_init();
324 settings_reset(); 330 settings_reset();
325 settings_load(SETTINGS_ALL); 331 settings_load(SETTINGS_ALL);
326 gui_sync_wps_init();
327 sb_skin_init();
328 settings_apply(true); 332 settings_apply(true);
329 init_dircache(true); 333 init_dircache(true);
330 init_dircache(false); 334 init_dircache(false);
@@ -443,8 +447,13 @@ static void init(void)
443 radio_init(); 447 radio_init();
444#endif 448#endif
445 449
446 /* Must be done before any code uses the multi-screen API */ 450 /* Keep the order of this 3 (viewportmanager handles statusbars)
451 * Must be done before any code uses the multi-screen API */
447 gui_syncstatusbar_init(&statusbars); 452 gui_syncstatusbar_init(&statusbars);
453 sb_skin_init();
454 viewportmanager_init();
455
456 gui_sync_wps_init();
448 457
449#if CONFIG_CHARGING && (CONFIG_CPU == SH7034) 458#if CONFIG_CHARGING && (CONFIG_CPU == SH7034)
450 /* charger_inserted() can't be used here because power_thread() 459 /* charger_inserted() can't be used here because power_thread()
@@ -496,7 +505,7 @@ static void init(void)
496 (mmc_remove_request() == SYS_HOTSWAP_EXTRACTED)) 505 (mmc_remove_request() == SYS_HOTSWAP_EXTRACTED))
497#endif 506#endif
498 { 507 {
499 gui_usb_screen_run(true); 508 gui_usb_screen_run();
500 mounted = true; /* mounting done @ end of USB mode */ 509 mounted = true; /* mounting done @ end of USB mode */
501 } 510 }
502#ifdef HAVE_USB_POWER 511#ifdef HAVE_USB_POWER
@@ -521,7 +530,7 @@ static void init(void)
521 lcd_update(); 530 lcd_update();
522 531
523 while(button_get(true) != SYS_USB_CONNECTED) {}; 532 while(button_get(true) != SYS_USB_CONNECTED) {};
524 gui_usb_screen_run(true); 533 gui_usb_screen_run();
525 system_reboot(); 534 system_reboot();
526 } 535 }
527 } 536 }
@@ -551,8 +560,6 @@ static void init(void)
551#endif 560#endif
552 } 561 }
553 562
554 gui_sync_wps_init();
555 sb_skin_init();
556 settings_apply(true); 563 settings_apply(true);
557 init_dircache(false); 564 init_dircache(false);
558#ifdef HAVE_TAGCACHE 565#ifdef HAVE_TAGCACHE
diff --git a/apps/misc.c b/apps/misc.c
index 9e5fb4068d..f1c38f376c 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -581,7 +581,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame
581 check_bootfile(false); /* gets initial size */ 581 check_bootfile(false); /* gets initial size */
582#endif 582#endif
583#endif 583#endif
584 gui_usb_screen_run(false); 584 gui_usb_screen_run();
585#ifdef BOOTFILE 585#ifdef BOOTFILE
586#if !defined(USB_NONE) && !defined(USB_HANDLED_BY_OF) 586#if !defined(USB_NONE) && !defined(USB_HANDLED_BY_OF)
587 check_bootfile(true); 587 check_bootfile(true);