From 470989bd708d9a425dbbf2d83b8fcbd0a8d0f488 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Fri, 14 Mar 2014 23:15:16 +0100 Subject: 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 --- apps/gui/viewport.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'apps/gui/viewport.c') 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 } -- cgit v1.2.3