summaryrefslogtreecommitdiff
path: root/apps/plugins/clock.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2004-10-17 00:54:09 +0000
committerJens Arnold <amiconn@rockbox.org>2004-10-17 00:54:09 +0000
commit79afbafa669bee52059d980ae887dfa06948c252 (patch)
treeb359f4cb336fbd477ec990a37b86a73f8266e455 /apps/plugins/clock.c
parent7c2496d35a1046d6383a7df8a78a1e9ba5cf7607 (diff)
downloadrockbox-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.c46
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;
}
}