From ee593c95e22b0361431f97dcc8a91c0264a5485a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Fri, 31 Oct 2008 21:48:44 +0000 Subject: [PATCH] Make lcd_set_enable_hook() conditional on HAVE_LCD_ENABLE and HAVE_LCD_COLOR This prepares for the Clip which will define HAVE_LCD_ENABLE but won't need the hook since the internal LCD framebuffer is updated regardless if the display is on or off. firmware/drivers/lcd-16bit.c has not been modified since HAVE_LCD_COLOR is obviously defined here git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18951 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugin.c | 2 +- apps/plugin.h | 2 +- apps/plugins/mpegplayer/mpeg_settings.c | 6 +++--- apps/plugins/mpegplayer/mpegplayer.c | 6 +++--- docs/PLUGIN_API.new | 2 +- firmware/export/lcd.h | 4 ++++ 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/plugin.c b/apps/plugin.c index 13c829805f..86e5c51128 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -133,7 +133,7 @@ static const struct plugin_api rockbox_api = { #ifdef HAVE_LCD_INVERT lcd_set_invert_display, #endif /* HAVE_LCD_INVERT */ -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) lcd_set_enable_hook, &button_queue, #endif diff --git a/apps/plugin.h b/apps/plugin.h index 4f747ea2b1..08d0b603ac 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -226,7 +226,7 @@ struct plugin_api { void (*lcd_set_invert_display)(bool yesno); #endif /* HAVE_LCD_INVERT */ -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) void (*lcd_set_enable_hook)(void (*enable_hook)(void)); struct event_queue *button_queue; #endif diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 519fd0f059..14863c943d 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c @@ -571,7 +571,7 @@ static int get_start_time(uint32_t duration) lcd_(clear_display)(); lcd_(update)(); -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) rb->lcd_set_enable_hook(get_start_time_lcd_enable_hook); #endif @@ -762,11 +762,11 @@ static int get_start_time(uint32_t duration) rb->yield(); } +#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_ENABLE rb->lcd_set_enable_hook(NULL); #endif - -#ifndef HAVE_LCD_COLOR +#else stream_gray_show(false); grey_clear_display(); grey_update(); diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index cb8c0d2133..5e34c2b041 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -612,11 +612,11 @@ static void wvs_backlight_on_video_mode(bool video_on) /* Turn off backlight timeout */ /* backlight control in lib/helper.c */ backlight_force_on(rb); -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) rb->lcd_set_enable_hook(NULL); #endif } else { -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) rb->lcd_set_enable_hook(wvs_lcd_enable_hook); #endif /* Revert to user's backlight settings */ @@ -1605,7 +1605,7 @@ static void button_loop(void) wvs_stop(); -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) /* Be sure hook is removed before exiting since the stop will put it * back because of the backlight restore. */ rb->lcd_set_enable_hook(NULL); diff --git a/docs/PLUGIN_API.new b/docs/PLUGIN_API.new index 02e9c8c157..1f24ac08bc 100644 --- a/docs/PLUGIN_API.new +++ b/docs/PLUGIN_API.new @@ -1394,7 +1394,7 @@ void lcd_set_drawmode(int mode) \description void lcd_set_enable_hook(void (*enable_hook)(void)) - \conditions !defined(HAVE_LCD_CHARCELLS) )) && (defined(HAVE_LCD_ENABLE + \conditions !defined(HAVE_LCD_CHARCELLS) && defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) \param enable_hook \description diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 0aec5d0cbf..60329147da 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -338,9 +338,13 @@ void lcd_poweroff(void); /* Enable/disable the main display. */ extern void lcd_enable(bool on); extern bool lcd_enabled(void); + +#ifdef HAVE_LCD_COLOR /* Register a hook that is called when the lcd is powered and after the * framebuffer data is synchronized */ void lcd_set_enable_hook(void (*enable_hook)(void)); +#endif /* HAVE_LCD_COLOR */ + #endif /* HAVE_LCD_ENABLE */ void lcd_call_enable_hook(void);