mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
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:
parent
774bacc692
commit
d85c3ec410
32 changed files with 57 additions and 117 deletions
|
@ -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 */
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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 */
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue