1
0
Fork 0
forked from len0rd/rockbox

Decouple the statusbar drawing from the rest of the screen drawing. it is not drawn roughly 4x per second automatically.

viewport_Set_defaults() will setup the given viewport with the correct "full screen" dimensions (so start at 0,0 if statusbars are disabled or 0,8 if they are enabled.)
All screens should keep the statusbar enabled, but if you really want to ignore the user setting you can disbaled it with viewportmanager_set_statusbar(false).

This commit also includes some menu/list viewport cleanups from kugel in FS#9603


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19622 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2008-12-31 05:59:26 +00:00
parent 54919ae917
commit e385ee18ce
46 changed files with 294 additions and 264 deletions

View file

@ -47,6 +47,7 @@
#include "misc.h"
#include "splash.h"
#include "dircache.h"
#include "viewport.h"
#ifdef HAVE_TAGCACHE
#include "tagcache.h"
#endif
@ -232,6 +233,7 @@ static bool dbg_audio_thread(void)
struct audio_debug d;
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(1)
{
@ -269,6 +271,7 @@ static bool dbg_audio_thread(void)
lcd_update();
}
viewportmanager_set_statusbar(true);
return false;
}
#endif /* !SIMULATOR */
@ -304,6 +307,7 @@ static bool dbg_buffering_thread(void)
tick_add_task(dbg_audio_task);
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(!done)
{
button = get_action(CONTEXT_STD,HZ/5);
@ -394,6 +398,7 @@ static bool dbg_buffering_thread(void)
}
tick_remove_task(dbg_audio_task);
viewportmanager_set_statusbar(true);
return false;
}
@ -526,6 +531,7 @@ static bool dbg_hw_info(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
viewportmanager_set_statusbar(false);
lcd_puts(0, 0, "[Hardware info]");
@ -564,6 +570,7 @@ static bool dbg_hw_info(void)
int got_id; /* flag if we managed to get the flash IDs */
int oldmode; /* saved memory guard mode */
int line = 0;
viewportmanager_set_statusbar(false);
oldmode = system_memory_guard(MEMGUARD_NONE); /* disable memory guard */
@ -626,6 +633,7 @@ static bool dbg_hw_info(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
viewportmanager_set_statusbar(false);
lcd_puts(0, line++, "[Hardware info]");
@ -679,10 +687,12 @@ static bool dbg_hw_info(void)
lcd_update();
while (!(action_userabort(TIMEOUT_BLOCK)));
#else
/* Define this function in your target tree */
return __dbg_hw_info();
#endif /* CONFIG_CPU */
viewportmanager_set_statusbar(true);
return false;
}
#else /* !HAVE_LCD_BITMAP */
@ -824,6 +834,7 @@ static bool dbg_spdif(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
#ifdef HAVE_SPDIF_POWER
spdif_power_enable(true); /* We need SPDIF power for both sending & receiving */
@ -976,6 +987,7 @@ static bool dbg_spdif(void)
spdif_power_enable(global_settings.spdif_enable);
#endif
viewportmanager_set_statusbar(true);
return false;
}
#endif /* CPU_COLDFIRE */
@ -1033,6 +1045,7 @@ bool dbg_ports(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
viewportmanager_set_statusbar(false);
while(1)
{
@ -1057,7 +1070,10 @@ bool dbg_ports(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
viewportmanager_set_statusbar(true);
return false;
}
}
#elif defined(CPU_COLDFIRE)
unsigned int gpio_out;
@ -1075,6 +1091,7 @@ bool dbg_ports(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(1)
{
@ -1140,7 +1157,10 @@ bool dbg_ports(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
viewportmanager_set_statusbar(true);
return false;
}
}
#elif defined(CPU_PP502x)
@ -1150,6 +1170,7 @@ bool dbg_ports(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(1)
{
@ -1247,7 +1268,10 @@ extern unsigned char serbuf[];
#endif
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
viewportmanager_set_statusbar(true);
return false;
}
}
#elif CONFIG_CPU == PP5002
@ -1256,6 +1280,7 @@ extern unsigned char serbuf[];
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(1)
{
@ -1286,8 +1311,12 @@ extern unsigned char serbuf[];
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
viewportmanager_set_statusbar(true);
return false;
}
}
viewportmanager_set_statusbar(true);
#else
return __dbg_ports();
#endif /* CPU */
@ -1302,6 +1331,7 @@ bool dbg_ports(void)
int currval = 0;
lcd_clear_display();
viewportmanager_set_statusbar(false);
while(1)
{
@ -1337,7 +1367,6 @@ bool dbg_ports(void)
case 9:
snprintf(buf, 32, "AN7: %03x", adc_read(7));
break;
break;
}
lcd_puts(0, 0, buf);
@ -1367,6 +1396,7 @@ bool dbg_ports(void)
break;
}
}
viewportmanager_set_statusbar(true);
return false;
}
#endif /* !HAVE_LCD_BITMAP */
@ -1382,6 +1412,7 @@ static bool dbg_pcf(void)
lcd_setfont(FONT_SYSFIXED);
#endif
lcd_clear_display();
viewportmanager_set_statusbar(false);
while(1)
{
@ -1417,10 +1448,12 @@ static bool dbg_pcf(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
viewportmanager_set_statusbar(true);
return false;
}
}
viewportmanager_set_statusbar(true);
return false;
}
#endif
@ -1436,6 +1469,7 @@ static bool dbg_cpufreq(void)
lcd_setfont(FONT_SYSFIXED);
#endif
lcd_clear_display();
viewportmanager_set_statusbar(false);
while(1)
{
@ -1467,10 +1501,11 @@ static bool dbg_cpufreq(void)
break;
case ACTION_STD_CANCEL:
viewportmanager_set_statusbar(true);
return false;
}
}
viewportmanager_set_statusbar(true);
return false;
}
#endif /* HAVE_ADJUSTABLE_CPU_FREQ */
@ -1563,6 +1598,7 @@ static bool view_battery(void)
char buf[32];
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while(1)
{
@ -1803,9 +1839,11 @@ static bool view_battery(void)
break;
case ACTION_STD_CANCEL:
viewportmanager_set_statusbar(true);
return false;
}
}
viewportmanager_set_statusbar(true);
return false;
}
@ -2434,6 +2472,7 @@ static bool cpu_boost_log(void)
bool done;
lcd_setfont(FONT_SYSFIXED);
str = cpu_boost_log_getlog_first();
viewportmanager_set_statusbar(false);
while (i < count)
{
lcd_clear_display();
@ -2467,6 +2506,7 @@ static bool cpu_boost_log(void)
}
get_action(CONTEXT_STD,TIMEOUT_BLOCK);
lcd_setfont(FONT_UI);
viewportmanager_set_statusbar(true);
return false;
}
#endif
@ -2485,11 +2525,12 @@ static bool dbg_scrollwheel(void)
unsigned int speed;
lcd_setfont(FONT_SYSFIXED);
viewportmanager_set_statusbar(false);
while (1)
{
if (action_userabort(HZ/10))
return false;
break;
lcd_clear_display();
@ -2514,6 +2555,7 @@ static bool dbg_scrollwheel(void)
lcd_update();
}
viewportmanager_set_statusbar(true);
return false;
}
#endif