summaryrefslogtreecommitdiff
path: root/apps/plugins/battery_bench.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-01-03 13:27:19 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-01-03 13:27:19 +0000
commit4b472de39b30c079ff846aec83d2da33cc0adcc5 (patch)
treef2435c9307c6aa495f4dc34c098290ddad3f97c3 /apps/plugins/battery_bench.c
parent3681ff197d3cf5393df3d56d7b6f7b39af0fc47f (diff)
downloadrockbox-4b472de39b30c079ff846aec83d2da33cc0adcc5.zip
rockbox-4b472de39b30c079ff846aec83d2da33cc0adcc5.tar.gz
rockbox-4b472de39b30c079ff846aec83d2da33cc0adcc5.tar.bz2
rockbox-4b472de39b30c079ff846aec83d2da33cc0adcc5.tar.xz
a few more button/statusbar fixes...
* hopefully fix the last of the plugins which dont handle the enw SYS event. * fix FS#9750 - WPS's which dont specify (or force the wps on) wernt showing the statusbar at all * lamp, battery_bench, *_flash button handling fixes * plugins using the core menu code will again show the statusbar git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19656 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/battery_bench.c')
-rw-r--r--apps/plugins/battery_bench.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 7c67cca..6559f53 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -224,6 +224,7 @@ static unsigned int buf_idx;
bool exit_tsr(bool reenter)
{
+ long button;
(void)reenter;
rb->lcd_clear_display();
rb->lcd_puts_scroll(0, 0, "Batt.Bench is currently running.");
@@ -233,15 +234,21 @@ bool exit_tsr(bool reenter)
#endif
rb->lcd_update();
- if (rb->button_get(true) == BATTERY_OFF)
+ while (1)
{
- rb->queue_post(&thread_q, EV_EXIT, 0);
- rb->thread_wait(thread_id);
- /* remove the thread's queue from the broadcast list */
- rb->queue_delete(&thread_q);
- return true;
+ button = rb->button_get(true);
+ if (IS_SYSEVENT(button))
+ continue;
+ if (button == BATTERY_OFF)
+ {
+ rb->queue_post(&thread_q, EV_EXIT, 0);
+ rb->thread_wait(thread_id);
+ /* remove the thread's queue from the broadcast list */
+ rb->queue_delete(&thread_q);
+ return true;
+ }
+ else return false;
}
- else return false;
}
#define BIT_CHARGER 0x1