summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-16bit.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-03-17 02:43:47 +0000
committerThomas Martitz <kugel@rockbox.org>2009-03-17 02:43:47 +0000
commitb7739fbf1c838cb6e6e47f9d28d5b339828e1e30 (patch)
treef4011d6a14cd93fae2002eeccdd63e039ab44f7e /firmware/drivers/lcd-16bit.c
parentaad712d39f3cdeb95a22e56edb805554dd0a90e1 (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.c39
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)