diff options
author | Thomas Martitz <kugel@rockbox.org> | 2009-03-17 02:43:47 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2009-03-17 02:43:47 +0000 |
commit | b7739fbf1c838cb6e6e47f9d28d5b339828e1e30 (patch) | |
tree | f4011d6a14cd93fae2002eeccdd63e039ab44f7e /firmware/drivers/lcd-16bit.c | |
parent | aad712d39f3cdeb95a22e56edb805554dd0a90e1 (diff) |
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
Diffstat (limited to 'firmware/drivers/lcd-16bit.c')
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index c3e076b392..0aa62f66b4 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c @@ -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,33 +74,36 @@ static struct viewport* current_vp IDATA_ATTR = &default_vp; struct viewport* current_vp IDATA_ATTR = &default_vp; #endif -/* LCD init */ -void lcd_init(void) -{ - lcd_clear_display(); - - /* Call device specific init */ - lcd_init_device(); - scroll_init(); -} /*** Helpers - consolidate optional code ***/ -#ifdef HAVE_LCD_ENABLE -void lcd_set_enable_hook(void (*enable_hook)(void)) +#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_enable_hook = enable_hook; + lcd_activation_hook = func; } /* To be called by target driver after enabling display and refreshing it */ -void lcd_call_enable_hook(void) +void lcd_activation_call_hook(void) { - void (*enable_hook)(void) = lcd_enable_hook; + void (*func)(void) = lcd_activation_hook; - if (enable_hook != NULL) - enable_hook(); + if (func != NULL) + func(); } + #endif +/* LCD init */ +void lcd_init(void) +{ + lcd_clear_display(); + + /* Call device specific init */ + lcd_init_device(); + scroll_init(); +} /*** Viewports ***/ void lcd_set_viewport(struct viewport* vp) |