diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2004-10-17 00:54:09 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2004-10-17 00:54:09 +0000 |
| commit | 79afbafa669bee52059d980ae887dfa06948c252 (patch) | |
| tree | b359f4cb336fbd477ec990a37b86a73f8266e455 /apps/plugins/clock.c | |
| parent | 7c2496d35a1046d6383a7df8a78a1e9ba5cf7607 (diff) | |
| download | rockbox-79afbafa669bee52059d980ae887dfa06948c252.zip rockbox-79afbafa669bee52059d980ae887dfa06948c252.tar.gz rockbox-79afbafa669bee52059d980ae887dfa06948c252.tar.bz2 rockbox-79afbafa669bee52059d980ae887dfa06948c252.tar.xz | |
Plugin rework 2: (most) Compile-time keyboard configuration, for Ondio adaption. (all) Now using the default event handler, standard placement is now in switch() default case. (calendar, chip8) Fixed usb handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5295 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/clock.c')
| -rw-r--r-- | apps/plugins/clock.c | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c index 9886eb8..2695bab 100644 --- a/apps/plugins/clock.c +++ b/apps/plugins/clock.c @@ -1276,11 +1276,27 @@ bool show_credits(void) return false; } +/********************************************************************** + * Cleanup on plugin return + **********************************************************************/ + +void cleanup(void *parameter) +{ + (void)parameter; /* unused */ + + if(settings.save_mode == 1) + save_settings(true); + + /* restore set backlight timeout */ + rb->backlight_set_timeout(rb->global_settings->backlight_timeout); +} + /****************** * F1 Screen - HELP *****************/ bool f1_screen(void) { + int button; int screen = 1; done = false; @@ -1401,7 +1417,8 @@ bool f1_screen(void) rb->lcd_update(); - switch(rb->button_get_w_tmo(HZ/4)) + button = rb->button_get_w_tmo(HZ/4); + switch(button) { case BUTTON_F1: /* exit */ case BUTTON_OFF: @@ -1418,9 +1435,10 @@ bool f1_screen(void) screen++; break; - case SYS_USB_CONNECTED: /* leave for usb */ - return PLUGIN_USB_CONNECTED; - rb->usb_screen(); + default: + if(rb->default_event_handler_ex(button, cleanup, NULL) + == SYS_USB_CONNECTED) + return PLUGIN_USB_CONNECTED; break; } } @@ -2546,6 +2564,8 @@ void counter_options(void) **********************************************************************/ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { + int button; + /* time ints */ int i; int hour; @@ -2802,16 +2822,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) /************************* * Scan for button presses ************************/ - switch (rb->button_get_w_tmo(HZ/10)) + button = rb->button_get_w_tmo(HZ/10); + switch (button) { case BUTTON_OFF: /* save and exit */ - if(settings.save_mode == 1) - save_settings(true); - - /* restore set backlight timeout */ - rb->backlight_set_timeout( - rb->global_settings->backlight_timeout); - + cleanup(NULL); return PLUGIN_OK; case BUTTON_ON | BUTTON_REL: /* credit roll */ @@ -2889,9 +2904,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) select_mode(); break; - case SYS_USB_CONNECTED: /* usb plugged? */ - rb->usb_screen(); - return PLUGIN_USB_CONNECTED; + default: + if(rb->default_event_handler_ex(button, cleanup, NULL) + == SYS_USB_CONNECTED) + return PLUGIN_USB_CONNECTED; break; } } |