Plugin loader adjustments: * Don't clear the LCD before loading, just show a splash instead. * After successful loading, remove backdrop, then clear display, to properly prepare the screen for the plugin. * Clear after returning from plugin and restoring the backdrop.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8710 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2006-02-16 22:36:04 +00:00
parent 791005a541
commit 7ea4d59127

View file

@ -424,13 +424,8 @@ int plugin_load(const char* plugin, void* parameter)
plugin_loaded = false; plugin_loaded = false;
} }
lcd_clear_display(); gui_syncsplash(0, true, str(LANG_WAIT));
#ifdef HAVE_LCD_BITMAP
xm = lcd_getxmargin();
ym = lcd_getymargin();
lcd_setmargins(0,0);
lcd_update();
#endif
#ifdef SIMULATOR #ifdef SIMULATOR
hdr = sim_plugin_load((char *)plugin, &fd); hdr = sim_plugin_load((char *)plugin, &fd);
if (!fd) { if (!fd) {
@ -486,10 +481,18 @@ int plugin_load(const char* plugin, void* parameter)
plugin_loaded = true; plugin_loaded = true;
#ifdef HAVE_LCD_BITMAP
xm = lcd_getxmargin();
ym = lcd_getymargin();
lcd_setmargins(0,0);
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
old_backdrop = lcd_get_backdrop(); old_backdrop = lcd_get_backdrop();
lcd_set_backdrop(NULL); lcd_set_backdrop(NULL);
#endif
lcd_clear_display();
lcd_update(); lcd_update();
#else /* !HAVE_LCD_BITMAP */
lcd_clear_display();
#endif #endif
invalidate_icache(); invalidate_icache();
@ -506,10 +509,12 @@ int plugin_load(const char* plugin, void* parameter)
#endif /* LCD_DEPTH */ #endif /* LCD_DEPTH */
/* restore margins */ /* restore margins */
lcd_setmargins(xm,ym); lcd_setmargins(xm,ym);
#endif /* HAVE_LCD_BITMAP */
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
lcd_set_backdrop(old_backdrop); lcd_set_backdrop(old_backdrop);
#endif #endif
lcd_clear_display();
lcd_update();
#endif /* HAVE_LCD_BITMAP */
if (pfn_tsr_exit == NULL) if (pfn_tsr_exit == NULL)
plugin_loaded = false; plugin_loaded = false;