1
0
Fork 0
forked from len0rd/rockbox

Convert lcd_activation callbacks to use the event system to allow for multiple parallel callbacks (for custom statusbar).

Increase maximum event count as we need more (I actually had a report about it during custom statusbar testing).
Removed corresponding functions from the core and plugin api. Bump min version and sort.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23302 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Martitz 2009-10-20 21:54:59 +00:00
parent 774bacc692
commit d85c3ec410
32 changed files with 57 additions and 117 deletions

View file

@ -562,8 +562,9 @@ static void play_hop(int direction)
* we suppress updates until the wps is activated again (the lcd driver will * we suppress updates until the wps is activated again (the lcd driver will
* call this hook to issue an instant update) * call this hook to issue an instant update)
* */ * */
static void wps_lcd_activation_hook(void) static void wps_lcd_activation_hook(void *param)
{ {
(void)param;
wps_state.do_full_update = true; wps_state.do_full_update = true;
/* force timeout in wps main loop, so that the update is instantly */ /* force timeout in wps main loop, so that the update is instantly */
queue_post(&button_queue, BUTTON_NONE, 0); queue_post(&button_queue, BUTTON_NONE, 0);
@ -585,7 +586,7 @@ static void gwps_leave_wps(void)
viewportmanager_set_statusbar(oldbars); viewportmanager_set_statusbar(oldbars);
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
/* Play safe and unregister the hook */ /* Play safe and unregister the hook */
lcd_activation_set_hook(NULL); remove_event(LCD_EVENT_ACTIVATION, wps_lcd_activation_hook);
#endif #endif
/* unhandle statusbar update delay */ /* unhandle statusbar update delay */
sb_skin_set_update_delay(DEFAULT_UPDATE_DELAY); sb_skin_set_update_delay(DEFAULT_UPDATE_DELAY);
@ -1164,13 +1165,9 @@ long gui_wps_show(void)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
{ {
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
if (lcd_active()
#ifdef HAVE_REMOTE_LCD
/* currently, all remotes are readable without backlight /* currently, all remotes are readable without backlight
* so still update those */ * so still update those */
|| (i == SCREEN_REMOTE) if (lcd_active() || (i != SCREEN_MAIN))
#endif
)
#endif #endif
{ {
skin_update(&gui_wps[i], WPS_REFRESH_NON_STATIC); skin_update(&gui_wps[i], WPS_REFRESH_NON_STATIC);
@ -1193,7 +1190,7 @@ long gui_wps_show(void)
restore = false; restore = false;
restoretimer = RESTORE_WPS_INSTANTLY; restoretimer = RESTORE_WPS_INSTANTLY;
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
lcd_activation_set_hook(wps_lcd_activation_hook); add_event(LCD_EVENT_ACTIVATION, false, wps_lcd_activation_hook);
#endif #endif
/* we remove the update delay since it's not very usable in the wps, /* we remove the update delay since it's not very usable in the wps,
* e.g. during volume changing or ffwd/rewind */ * e.g. during volume changing or ffwd/rewind */

View file

@ -155,7 +155,6 @@ static const struct plugin_api rockbox_api = {
lcd_set_mode, lcd_set_mode,
#endif #endif
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
lcd_activation_set_hook,
&button_queue, &button_queue,
#endif #endif
bidi_l2v, bidi_l2v,
@ -255,6 +254,7 @@ static const struct plugin_api rockbox_api = {
button_status, button_status,
#ifdef HAVE_BUTTON_DATA #ifdef HAVE_BUTTON_DATA
button_get_data, button_get_data,
button_status_wdata,
#endif #endif
button_clear_queue, button_clear_queue,
button_queue_count, button_queue_count,
@ -376,6 +376,9 @@ static const struct plugin_api rockbox_api = {
__cyg_profile_func_enter, __cyg_profile_func_enter,
__cyg_profile_func_exit, __cyg_profile_func_exit,
#endif #endif
add_event,
remove_event,
send_event,
#ifdef SIMULATOR #ifdef SIMULATOR
/* special simulator hooks */ /* special simulator hooks */
@ -668,9 +671,6 @@ static const struct plugin_api rockbox_api = {
appsversion, appsversion,
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
#ifdef HAVE_BUTTON_DATA
button_status_wdata,
#endif
}; };
int plugin_load(const char* plugin, const void* parameter) int plugin_load(const char* plugin, const void* parameter)

View file

@ -133,12 +133,12 @@ void* plugin_get_buffer(size_t *buffer_size);
#define PLUGIN_MAGIC 0x526F634B /* RocK */ #define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */ /* increase this every time the api struct changes */
#define PLUGIN_API_VERSION 172 #define PLUGIN_API_VERSION 173
/* update this to latest version if a change to the api struct breaks /* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */ new function which are "waiting" at the end of the function table) */
#define PLUGIN_MIN_API_VERSION 172 #define PLUGIN_MIN_API_VERSION 173
/* plugin return codes */ /* plugin return codes */
enum plugin_status { enum plugin_status {
@ -244,7 +244,6 @@ struct plugin_api {
#endif #endif
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
void (*lcd_activation_set_hook)(void (*enable_hook)(void));
struct event_queue *button_queue; struct event_queue *button_queue;
#endif #endif
unsigned short *(*bidi_l2v)( const unsigned char *str, int orientation ); unsigned short *(*bidi_l2v)( const unsigned char *str, int orientation );
@ -367,6 +366,7 @@ struct plugin_api {
int (*button_status)(void); int (*button_status)(void);
#ifdef HAVE_BUTTON_DATA #ifdef HAVE_BUTTON_DATA
intptr_t (*button_get_data)(void); intptr_t (*button_get_data)(void);
int (*button_status_wdata)(int *pdata);
#endif #endif
void (*button_clear_queue)(void); void (*button_clear_queue)(void);
int (*button_queue_count)(void); int (*button_queue_count)(void);
@ -500,6 +500,10 @@ struct plugin_api {
void (*profile_func_enter)(void *this_fn, void *call_site); void (*profile_func_enter)(void *this_fn, void *call_site);
void (*profile_func_exit)(void *this_fn, void *call_site); void (*profile_func_exit)(void *this_fn, void *call_site);
#endif #endif
/* event api */
bool (*add_event)(unsigned short id, bool oneshot, void (*handler)(void *data));
void (*remove_event)(unsigned short id, void (*handler)(void *data));
void (*send_event)(unsigned short id, void *data);
#ifdef SIMULATOR #ifdef SIMULATOR
/* special simulator hooks */ /* special simulator hooks */
@ -837,10 +841,6 @@ struct plugin_api {
const char *appsversion; const char *appsversion;
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
#ifdef HAVE_BUTTON_DATA
int (*button_status_wdata)(int *pdata);
#endif
}; };
/* plugin header */ /* plugin header */

View file

@ -599,8 +599,9 @@ static uint32_t increment_time(uint32_t val, int32_t amount, uint32_t range)
} }
#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) #if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR)
static void get_start_time_lcd_enable_hook(void) static void get_start_time_lcd_enable_hook(void *param)
{ {
(void)param;
rb->queue_post(rb->button_queue, LCD_ENABLE_EVENT_0, 0); rb->queue_post(rb->button_queue, LCD_ENABLE_EVENT_0, 0);
} }
#endif /* HAVE_LCD_ENABLE */ #endif /* HAVE_LCD_ENABLE */
@ -619,7 +620,7 @@ static int get_start_time(uint32_t duration)
lcd_(update)(); lcd_(update)();
#if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR) #if defined(HAVE_LCD_ENABLE) && defined(HAVE_LCD_COLOR)
rb->lcd_activation_set_hook(get_start_time_lcd_enable_hook); rb->add_event(LCD_EVENT_ACTIVATION, false, get_start_time_lcd_enable_hook);
#endif #endif
draw_slider(0, 100, &rc_bound); draw_slider(0, 100, &rc_bound);
@ -810,7 +811,7 @@ static int get_start_time(uint32_t duration)
} }
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
rb->lcd_activation_set_hook(NULL); rb->remove_event(LCD_EVENT_ACTIVATION, get_start_time_lcd_enable_hook);
#endif #endif
#ifndef HAVE_LCD_COLOR #ifndef HAVE_LCD_COLOR
stream_gray_show(false); stream_gray_show(false);

View file

@ -652,8 +652,9 @@ static void draw_putsxy_oriented(int x, int y, const char *str)
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
/* So we can refresh the overlay */ /* So we can refresh the overlay */
static void wvs_lcd_enable_hook(void) static void wvs_lcd_enable_hook(void* param)
{ {
(void)param;
rb->queue_post(rb->button_queue, LCD_ENABLE_EVENT_1, 0); rb->queue_post(rb->button_queue, LCD_ENABLE_EVENT_1, 0);
} }
#endif #endif
@ -665,11 +666,11 @@ static void wvs_backlight_on_video_mode(bool video_on)
/* backlight control in lib/helper.c */ /* backlight control in lib/helper.c */
backlight_force_on(); backlight_force_on();
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
rb->lcd_activation_set_hook(NULL); rb->remove_event(LCD_EVENT_ACTIVATION, wvs_lcd_enable_hook);
#endif #endif
} else { } else {
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
rb->lcd_activation_set_hook(wvs_lcd_enable_hook); rb->add_event(LCD_EVENT_ACTIVATION, false, wvs_lcd_enable_hook);
#endif #endif
/* Revert to user's backlight settings */ /* Revert to user's backlight settings */
backlight_use_settings(); backlight_use_settings();
@ -1671,7 +1672,7 @@ static void button_loop(void)
#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
/* Be sure hook is removed before exiting since the stop will put it /* Be sure hook is removed before exiting since the stop will put it
* back because of the backlight restore. */ * back because of the backlight restore. */
rb->lcd_activation_set_hook(NULL); rb->remove_event(LCD_EVENT_ACTIVATION, wvs_lcd_enable_hook);
#endif #endif
rb->lcd_setfont(FONT_UI); rb->lcd_setfont(FONT_UI);

View file

@ -1384,11 +1384,6 @@ void lcd_set_drawmode(int mode)
\param mode \param mode
\description \description
void lcd_activation_set_hook(void (*enable_hook)(void))
\conditions !defined(HAVE_LCD_CHARCELLS) && (defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP))
\param enable_hook
\description
void lcd_set_foreground(unsigned foreground) void lcd_set_foreground(unsigned foreground)
\group lcd \group lcd
\conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1) \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)

View file

@ -75,27 +75,6 @@ static struct viewport* current_vp IDATA_ATTR = &default_vp;
struct viewport* current_vp IDATA_ATTR = &default_vp; struct viewport* current_vp IDATA_ATTR = &default_vp;
#endif #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 */ /* LCD init */
void lcd_init(void) void lcd_init(void)
{ {

View file

@ -74,27 +74,6 @@ static struct viewport* current_vp IDATA_ATTR = &default_vp;
struct viewport* current_vp IDATA_ATTR = &default_vp; struct viewport* current_vp IDATA_ATTR = &default_vp;
#endif #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 */ /* LCD init */
void lcd_init(void) void lcd_init(void)
{ {

View file

@ -91,25 +91,6 @@ void LCDFN(init)(void)
#endif #endif
} }
#ifdef MAIN_LCD
#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;
}
void lcd_activation_call_hook(void)
{
void (*func)(void) = lcd_activation_hook;
if (func != NULL)
func();
}
#endif
#endif
/*** parameter handling ***/ /*** parameter handling ***/
void LCDFN(set_drawmode)(int mode) void LCDFN(set_drawmode)(int mode)

View file

@ -23,7 +23,7 @@
#include "events.h" #include "events.h"
#include "panic.h" #include "panic.h"
#define MAX_SYS_EVENTS 20 #define MAX_SYS_EVENTS 28
struct sysevent { struct sysevent {
unsigned short id; unsigned short id;

View file

@ -37,6 +37,7 @@
#define EVENT_CLASS_PLAYBACK 0x0200 #define EVENT_CLASS_PLAYBACK 0x0200
#define EVENT_CLASS_BUFFERING 0x0400 #define EVENT_CLASS_BUFFERING 0x0400
#define EVENT_CLASS_GUI 0x0800 #define EVENT_CLASS_GUI 0x0800
#define EVENT_CLASS_LCD 0xf000
bool add_event(unsigned short id, bool oneshot, void (*handler)(void *data)); bool add_event(unsigned short id, bool oneshot, void (*handler)(void *data));
void remove_event(unsigned short id, void (*handler)(void *data)); void remove_event(unsigned short id, void (*handler)(void *data));

View file

@ -25,6 +25,7 @@
#include <stdbool.h> #include <stdbool.h>
#include "cpu.h" #include "cpu.h"
#include "config.h" #include "config.h"
#include "events.h"
#define VP_FLAG_ALIGN_RIGHT 0x01 #define VP_FLAG_ALIGN_RIGHT 0x01
#define VP_FLAG_ALIGN_CENTER 0x02 #define VP_FLAG_ALIGN_CENTER 0x02
@ -426,13 +427,16 @@ extern void lcd_sleep(void);
* framebuffer data is synchronized */ * framebuffer data is synchronized */
/* Sansa Clip has these function in it's lcd driver, since it's the only /* Sansa Clip has these function in it's lcd driver, since it's the only
* 1-bit display featuring lcd_active, so far */ * 1-bit display featuring lcd_active, so far */
enum {
LCD_EVENT_ACTIVATION = (EVENT_CLASS_LCD|1),
};
extern bool lcd_active(void); extern bool lcd_active(void);
extern void lcd_activation_set_hook(void (*enable_hook)(void));
extern void lcd_activation_call_hook(void);
#endif #endif
#ifdef HAVE_LCD_SHUTDOWN #ifdef HAVE_LCD_SHUTDOWN
void lcd_shutdown(void); extern void lcd_shutdown(void);
#endif #endif
/* Bitmap formats */ /* Bitmap formats */

View file

@ -172,7 +172,7 @@ void lcd_enable(bool enable)
ascodec_write(AS3514_DCDC15, 1); ascodec_write(AS3514_DCDC15, 1);
lcd_write_command(LCD_SET_DISPLAY_ON); lcd_write_command(LCD_SET_DISPLAY_ON);
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else { else {
lcd_write_command(LCD_SET_DISPLAY_OFF); lcd_write_command(LCD_SET_DISPLAY_OFF);

View file

@ -372,7 +372,7 @@ void lcd_enable(bool on)
if(on) if(on)
{ {
_display_on(); _display_on();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -217,7 +217,7 @@ void lcd_enable(bool on)
lcd_write_reg(0x07, 0x17); lcd_write_reg(0x07, 0x17);
display_on = true; display_on = true;
lcd_update(); /* Resync display */ lcd_update(); /* Resync display */
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
sleep(0); sleep(0);
} }

View file

@ -122,7 +122,7 @@ void lcd_enable(bool state)
lcd_powered = true; lcd_powered = true;
lcd_on = true; lcd_on = true;
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -618,7 +618,7 @@ void lcd_awake(void)
tick_add_task(&lcd_tick); tick_add_task(&lcd_tick);
wakeup_wait(&(lcd_state.initwakeup), TIMEOUT_BLOCK); wakeup_wait(&(lcd_state.initwakeup), TIMEOUT_BLOCK);
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
} }

View file

@ -380,7 +380,7 @@ void lcd_enable(bool on)
/* Probably out of sync and we don't wanna pepper the code with /* Probably out of sync and we don't wanna pepper the code with
lcd_update() calls for this. */ lcd_update() calls for this. */
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -320,7 +320,7 @@ void lcd_enable(bool yesno)
{ {
lcd_send_command(R_STANDBY_OFF, 0); lcd_send_command(R_STANDBY_OFF, 0);
lcd_send_command(R_DISPLAY_ON, 0); lcd_send_command(R_DISPLAY_ON, 0);
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -339,7 +339,7 @@ void lcd_enable(bool on)
/* Probably out of sync and we don't wanna pepper the code with /* Probably out of sync and we don't wanna pepper the code with
lcd_update() calls for this. */ lcd_update() calls for this. */
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -323,7 +323,7 @@ void lcd_enable(bool state)
lcd_on = true; lcd_on = true;
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -226,7 +226,7 @@ void lcd_enable(bool yesno)
{ {
lcd_send_command(R_STANDBY_OFF); lcd_send_command(R_STANDBY_OFF);
lcd_send_command(R_DISPLAY_ON); lcd_send_command(R_DISPLAY_ON);
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -492,7 +492,7 @@ void lcd_enable(bool on)
/* Probably out of sync and we don't wanna pepper the code with /* Probably out of sync and we don't wanna pepper the code with
lcd_update() calls for this. */ lcd_update() calls for this. */
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -448,7 +448,7 @@ void lcd_enable(bool on)
DEV_EN |= DEV_LCD; /* Enable LCD controller */ DEV_EN |= DEV_LCD; /* Enable LCD controller */
lcd_display_on(); /* Turn on display */ lcd_display_on(); /* Turn on display */
lcd_update(); /* Resync display */ lcd_update(); /* Resync display */
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
LCD_REG_6 |= 1; /* Restart DMA */ LCD_REG_6 |= 1; /* Restart DMA */
sleep(HZ/50); /* Wait for a frame to be written */ sleep(HZ/50); /* Wait for a frame to be written */
} }

View file

@ -143,7 +143,7 @@ void lcd_enable(bool on)
if (on) { if (on) {
_display_on(); _display_on();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} else { } else {
/** Off sequence according to datasheet, p. 130 **/ /** Off sequence according to datasheet, p. 130 **/
lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */ lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */

View file

@ -209,7 +209,7 @@ void lcd_enable(bool on)
lcd_display_on(); lcd_display_on();
LCDC_CTRL |= 1; /* controller enable */ LCDC_CTRL |= 1; /* controller enable */
lcd_update(); /* Resync display */ lcd_update(); /* Resync display */
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -237,7 +237,7 @@ return;
{ {
lcd_display_on(false); /* Turn on display */ lcd_display_on(false); /* Turn on display */
lcd_update(); /* Resync display */ lcd_update(); /* Resync display */
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -98,7 +98,7 @@ void lcd_awake(void)
sleep(HZ/10); sleep(HZ/10);
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
} }
#endif #endif

View file

@ -397,7 +397,7 @@ void lcd_enable(bool on)
/* Probably out of sync and we don't wanna pepper the code with /* Probably out of sync and we don't wanna pepper the code with
lcd_update() calls for this. */ lcd_update() calls for this. */
lcd_update(); lcd_update();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -280,7 +280,7 @@ void lcd_enable(bool on)
if (on) if (on)
{ {
_display_on(); _display_on();
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
} }
else else
{ {

View file

@ -55,7 +55,7 @@ void lcd_enable(bool state)
{ {
lcd_on(); lcd_on();
#ifdef HAVE_LCD_ENABLE #ifdef HAVE_LCD_ENABLE
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
#endif #endif
} }
else else

View file

@ -22,7 +22,9 @@
* *
****************************************************************************/ ****************************************************************************/
#include <stdbool.h>
#include "config.h" #include "config.h"
#include "system.h"
#include "lcd.h" #include "lcd.h"
#ifdef HAVE_LCD_ENABLE #ifdef HAVE_LCD_ENABLE
@ -82,7 +84,7 @@ void lcd_awake(void)
{ {
if (lcd_sleeping) if (lcd_sleeping)
{ {
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
lcd_sleeping = false; lcd_sleeping = false;
} }
} }
@ -96,7 +98,7 @@ void lcd_enable(bool on)
/* lcd_awake will handle the activation call */ /* lcd_awake will handle the activation call */
lcd_awake(); lcd_awake();
#else #else
lcd_activation_call_hook(); send_event(LCD_EVENT_ACTIVATION, NULL);
#endif #endif
} }
lcd_enabled = on; lcd_enabled = on;