forked from len0rd/rockbox
Rework lcd_enabled and lcd_set/call_enable hook
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20331 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
aad712d39f
commit
b7739fbf1c
23 changed files with 101 additions and 84 deletions
|
|
@ -51,10 +51,6 @@ fb_data lcd_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH]
|
|||
static fb_data* lcd_backdrop = NULL;
|
||||
static long lcd_backdrop_offset IDATA_ATTR = 0;
|
||||
|
||||
#ifdef HAVE_LCD_ENABLE
|
||||
static void (*lcd_enable_hook)(void) = NULL;
|
||||
#endif
|
||||
|
||||
static struct viewport default_vp =
|
||||
{
|
||||
.x = 0,
|
||||
|
|
@ -78,6 +74,27 @@ static struct viewport* current_vp IDATA_ATTR = &default_vp;
|
|||
struct viewport* current_vp IDATA_ATTR = &default_vp;
|
||||
#endif
|
||||
|
||||
|
||||
/*** Helpers - consolidate optional code ***/
|
||||
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
|
||||
static void (*lcd_activation_hook)(void) = NULL;
|
||||
|
||||
void lcd_activation_set_hook(void (*func)(void))
|
||||
{
|
||||
lcd_activation_hook = func;
|
||||
}
|
||||
|
||||
/* To be called by target driver after enabling display and refreshing it */
|
||||
void lcd_activation_call_hook(void)
|
||||
{
|
||||
void (*func)(void) = lcd_activation_hook;
|
||||
|
||||
if (func != NULL)
|
||||
func();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* LCD init */
|
||||
void lcd_init(void)
|
||||
{
|
||||
|
|
@ -87,24 +104,6 @@ void lcd_init(void)
|
|||
lcd_init_device();
|
||||
scroll_init();
|
||||
}
|
||||
|
||||
/*** Helpers - consolidate optional code ***/
|
||||
#ifdef HAVE_LCD_ENABLE
|
||||
void lcd_set_enable_hook(void (*enable_hook)(void))
|
||||
{
|
||||
lcd_enable_hook = enable_hook;
|
||||
}
|
||||
|
||||
/* To be called by target driver after enabling display and refreshing it */
|
||||
void lcd_call_enable_hook(void)
|
||||
{
|
||||
void (*enable_hook)(void) = lcd_enable_hook;
|
||||
|
||||
if (enable_hook != NULL)
|
||||
enable_hook();
|
||||
}
|
||||
#endif
|
||||
|
||||
/*** Viewports ***/
|
||||
|
||||
void lcd_set_viewport(struct viewport* vp)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue