diff options
author | Thomas Martitz <kugel@rockbox.org> | 2014-03-14 23:15:16 +0100 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2014-03-14 23:36:30 +0100 |
commit | 470989bd708d9a425dbbf2d83b8fcbd0a8d0f488 (patch) | |
tree | f3bef37bc0f8ff7da4beddad9903209ced1bc25a /apps/gui/viewport.c | |
parent | 50f0dd80d660b332a1739e07a630c2cef1b678c6 (diff) | |
download | rockbox-470989bd708d9a425dbbf2d83b8fcbd0a8d0f488.tar.gz rockbox-470989bd708d9a425dbbf2d83b8fcbd0a8d0f488.zip |
events: Rework event subsystem (add_event, send_event) to be more versatile.
add_event_ex is added that takes an extra user_data pointer. This pointer is
passed to the callback (add_event and add_event_ex have slightly different
callbacks types). All callbacks also get the event id passed. Events added
with add_event_ex must be removed with remove_event_ex because the user_data
pointer must match in addition to the callback pointer.
On the other add_event is simplified to omit the oneshort parameter which
was almost always false (still there with add_event_ex).
As a side effect the ata_idle_notify callbacks are changed as well, they
do not take a data parameter anymore which was always NULL anyway.
This commit also adds some documentation to events.h
Change-Id: I13e29a0f88ef908f175b376d83550f9e0231f772
Diffstat (limited to 'apps/gui/viewport.c')
-rw-r--r-- | apps/gui/viewport.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index aeb884a95d..194954c1d2 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c @@ -69,7 +69,7 @@ struct viewport_stack_item }; #ifdef HAVE_LCD_BITMAP -static void viewportmanager_redraw(void* data); +static void viewportmanager_redraw(unsigned short id, void* data); static int theme_stack_top[NB_SCREENS]; /* the last item added */ static struct viewport_stack_item theme_stack[NB_SCREENS][VPSTACK_DEPTH]; @@ -80,14 +80,12 @@ static void toggle_events(bool enable) { if (enable) { - add_event(GUI_EVENT_ACTIONUPDATE, false, viewportmanager_redraw); + add_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) - add_event(LCD_EVENT_ACTIVATION, false, do_sbs_update_callback); + add_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); #endif - add_event(PLAYBACK_EVENT_TRACK_CHANGE, false, - do_sbs_update_callback); - add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false, - do_sbs_update_callback); + add_event(PLAYBACK_EVENT_TRACK_CHANGE, do_sbs_update_callback); + add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, do_sbs_update_callback); } else { @@ -232,8 +230,9 @@ int viewport_get_nb_lines(const struct viewport *vp) #endif } -static void viewportmanager_redraw(void* data) +static void viewportmanager_redraw(unsigned short id, void* data) { + (void)id; FOR_NB_SCREENS(i) { #ifdef HAVE_LCD_BITMAP @@ -256,7 +255,7 @@ void viewportmanager_init() viewportmanager_theme_enable(i, true, NULL); } #else - add_event(GUI_EVENT_ACTIONUPDATE, false, viewportmanager_redraw); + add_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_redraw); #endif } |