hopefully fix "early usb"

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23599 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2009-11-10 04:46:52 +00:00
parent dd93ef41bb
commit 29e28a3945
4 changed files with 21 additions and 14 deletions

View file

@ -128,7 +128,7 @@ struct usb_screen_vps_t
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
static void usb_screen_fix_viewports(struct screen *screen, static void usb_screen_fix_viewports(struct screen *screen,
struct usb_screen_vps_t *usb_screen_vps) struct usb_screen_vps_t *usb_screen_vps, bool early_usb)
{ {
int logo_width, logo_height; int logo_width, logo_height;
struct viewport *parent = &usb_screen_vps->parent; struct viewport *parent = &usb_screen_vps->parent;
@ -147,8 +147,13 @@ static void usb_screen_fix_viewports(struct screen *screen,
logo_height = BMPHEIGHT_usblogo; logo_height = BMPHEIGHT_usblogo;
} }
viewport_set_defaults(parent, screen->screen_type); if (!early_usb)
if (parent->width < logo_width || parent->height < logo_height) {
viewport_set_defaults(parent, screen->screen_type);
if (parent->width < logo_width || parent->height < logo_height)
viewport_set_fullscreen(parent, screen->screen_type);
}
else
viewport_set_fullscreen(parent, screen->screen_type); viewport_set_fullscreen(parent, screen->screen_type);
*logo = *parent; *logo = *parent;
@ -242,10 +247,10 @@ static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar)
viewportmanager_set_statusbar(usb_bars); viewportmanager_set_statusbar(usb_bars);
} }
void gui_usb_screen_run(void) void gui_usb_screen_run(bool early_usb)
{ {
int i; int i;
int old_bars = viewportmanager_get_statusbar(); int old_bars = early_usb ? 0 : viewportmanager_get_statusbar();
struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS]; struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS];
#if defined HAVE_TOUCHSCREEN #if defined HAVE_TOUCHSCREEN
enum touchscreen_mode old_mode = touchscreen_get_mode(); enum touchscreen_mode old_mode = touchscreen_get_mode();
@ -270,7 +275,7 @@ void gui_usb_screen_run(void)
screen->set_viewport(NULL); screen->set_viewport(NULL);
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i]); usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i], early_usb);
#endif #endif
} }
@ -318,9 +323,11 @@ void gui_usb_screen_run(void)
{ {
screens[i].backlight_on(); screens[i].backlight_on();
} }
viewportmanager_set_statusbar(old_bars); if (!early_usb)
send_event(GUI_EVENT_REFRESH, NULL); {
viewportmanager_set_statusbar(old_bars);
send_event(GUI_EVENT_REFRESH, NULL);
}
} }
#endif /* !defined(USB_NONE) */ #endif /* !defined(USB_NONE) */

View file

@ -21,7 +21,7 @@
#ifndef _USB_SCREEN_H_ #ifndef _USB_SCREEN_H_
#define _USB_SCREEN_H_ #define _USB_SCREEN_H_
extern void gui_usb_screen_run(void); extern void gui_usb_screen_run(bool early_usb);
#endif #endif

View file

@ -496,7 +496,7 @@ static void init(void)
(mmc_remove_request() == SYS_HOTSWAP_EXTRACTED)) (mmc_remove_request() == SYS_HOTSWAP_EXTRACTED))
#endif #endif
{ {
gui_usb_screen_run(); gui_usb_screen_run(true);
mounted = true; /* mounting done @ end of USB mode */ mounted = true; /* mounting done @ end of USB mode */
} }
#ifdef HAVE_USB_POWER #ifdef HAVE_USB_POWER
@ -521,7 +521,7 @@ static void init(void)
lcd_update(); lcd_update();
while(button_get(true) != SYS_USB_CONNECTED) {}; while(button_get(true) != SYS_USB_CONNECTED) {};
gui_usb_screen_run(); gui_usb_screen_run(true);
system_reboot(); system_reboot();
} }
} }

View file

@ -581,7 +581,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame
check_bootfile(false); /* gets initial size */ check_bootfile(false); /* gets initial size */
#endif #endif
#endif #endif
gui_usb_screen_run(); gui_usb_screen_run(false);
#ifdef BOOTFILE #ifdef BOOTFILE
#if !defined(USB_NONE) && !defined(USB_HANDLED_BY_OF) #if !defined(USB_NONE) && !defined(USB_HANDLED_BY_OF)
check_bootfile(true); check_bootfile(true);