summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
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);