diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2009-01-28 20:53:50 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2009-01-28 20:53:50 +0000 |
commit | 4118de4cc87246360cc36a77069460b015cfb21b (patch) | |
tree | 205d9425934bd85350a99a9c29849ed3e9f22016 /apps/menus/main_menu.c | |
parent | 76ba8ec8903f0ee3f9c7a3548e35acf8f209f8ab (diff) | |
download | rockbox-4118de4cc87246360cc36a77069460b015cfb21b.tar.gz rockbox-4118de4cc87246360cc36a77069460b015cfb21b.zip |
Make sure 'Battery: Charging' is displayed in the info screen when charging no matter the algorithm (Archos Recorder still specially handled). Have screen refresh itself at 1HZ if CONFIG_CHARGING.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19872 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menus/main_menu.c')
-rw-r--r-- | apps/menus/main_menu.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index fc4d3e45e9..598373116e 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c | |||
@@ -194,19 +194,25 @@ static char* info_getname(int selected_item, void *data, | |||
194 | break; | 194 | break; |
195 | case INFO_BATTERY: /* battery */ | 195 | case INFO_BATTERY: /* battery */ |
196 | #if CONFIG_CHARGING == CHARGING_SIMPLE | 196 | #if CONFIG_CHARGING == CHARGING_SIMPLE |
197 | if (charger_input_state == CHARGER) | 197 | /* Only know if plugged */ |
198 | if (charger_inserted()) | ||
198 | return (char *)str(LANG_BATTERY_CHARGE); | 199 | return (char *)str(LANG_BATTERY_CHARGE); |
199 | else | 200 | else |
200 | #elif CONFIG_CHARGING >= CHARGING_MONITOR | 201 | #elif CONFIG_CHARGING >= CHARGING_MONITOR |
202 | #ifdef ARCHOS_RECORDER | ||
203 | /* Report the particular algorithm state */ | ||
201 | if (charge_state == CHARGING) | 204 | if (charge_state == CHARGING) |
202 | return (char *)str(LANG_BATTERY_CHARGE); | 205 | return (char *)str(LANG_BATTERY_CHARGE); |
203 | else | 206 | else if (charge_state == TOPOFF) |
204 | #ifdef ARCHOS_RECORDER | ||
205 | if (charge_state == TOPOFF) | ||
206 | return (char *)str(LANG_BATTERY_TOPOFF_CHARGE); | 207 | return (char *)str(LANG_BATTERY_TOPOFF_CHARGE); |
207 | else if (charge_state == TRICKLE) | 208 | else if (charge_state == TRICKLE) |
208 | return (char *)str(LANG_BATTERY_TRICKLE_CHARGE); | 209 | return (char *)str(LANG_BATTERY_TRICKLE_CHARGE); |
209 | else | 210 | else |
211 | #else /* !ARCHOS_RECORDER */ | ||
212 | /* Go by what power management reports */ | ||
213 | if (charging_state()) | ||
214 | return (char *)str(LANG_BATTERY_CHARGE); | ||
215 | else | ||
210 | #endif /* ARCHOS_RECORDER */ | 216 | #endif /* ARCHOS_RECORDER */ |
211 | #endif /* CONFIG_CHARGING = */ | 217 | #endif /* CONFIG_CHARGING = */ |
212 | if (battery_level() >= 0) | 218 | if (battery_level() >= 0) |
@@ -283,19 +289,25 @@ static int info_speak_item(int selected_item, void * data) | |||
283 | } | 289 | } |
284 | case INFO_BATTERY: /* battery */ | 290 | case INFO_BATTERY: /* battery */ |
285 | #if CONFIG_CHARGING == CHARGING_SIMPLE | 291 | #if CONFIG_CHARGING == CHARGING_SIMPLE |
292 | /* Only know if plugged */ | ||
286 | if (charger_inserted()) | 293 | if (charger_inserted()) |
287 | talk_id(LANG_BATTERY_CHARGE, true); | 294 | talk_id(LANG_BATTERY_CHARGE, true); |
288 | else | 295 | else |
289 | #elif CONFIG_CHARGING >= CHARGING_MONITOR | 296 | #elif CONFIG_CHARGING >= CHARGING_MONITOR |
297 | #ifdef ARCHOS_RECORDER | ||
298 | /* Report the particular algorithm state */ | ||
290 | if (charge_state == CHARGING) | 299 | if (charge_state == CHARGING) |
291 | talk_id(LANG_BATTERY_CHARGE, true); | 300 | talk_id(LANG_BATTERY_CHARGE, true); |
292 | else | 301 | else if (charge_state == TOPOFF) |
293 | #ifdef ARCHOS_RECORDER | ||
294 | if (charge_state == TOPOFF) | ||
295 | talk_id(LANG_BATTERY_TOPOFF_CHARGE, true); | 302 | talk_id(LANG_BATTERY_TOPOFF_CHARGE, true); |
296 | else if (charge_state == TRICKLE) | 303 | else if (charge_state == TRICKLE) |
297 | talk_id(LANG_BATTERY_TRICKLE_CHARGE, true); | 304 | talk_id(LANG_BATTERY_TRICKLE_CHARGE, true); |
298 | else | 305 | else |
306 | #else /* !ARCHOS_RECORDER */ | ||
307 | /* Go by what power management reports */ | ||
308 | if (charging_state()) | ||
309 | talk_id(LANG_BATTERY_CHARGE, true); | ||
310 | else | ||
299 | #endif /* ARCHOS_RECORDER */ | 311 | #endif /* ARCHOS_RECORDER */ |
300 | #endif /* CONFIG_CHARGING = */ | 312 | #endif /* CONFIG_CHARGING = */ |
301 | if (battery_level() >= 0) | 313 | if (battery_level() >= 0) |
@@ -354,6 +366,11 @@ static int info_speak_item(int selected_item, void * data) | |||
354 | 366 | ||
355 | static int info_action_callback(int action, struct gui_synclist *lists) | 367 | static int info_action_callback(int action, struct gui_synclist *lists) |
356 | { | 368 | { |
369 | #if CONFIG_CHARGING | ||
370 | if (action == ACTION_NONE) | ||
371 | return ACTION_REDRAW; | ||
372 | else | ||
373 | #endif | ||
357 | if (action == ACTION_STD_CANCEL) | 374 | if (action == ACTION_STD_CANCEL) |
358 | return action; | 375 | return action; |
359 | else if ((action == ACTION_STD_OK) | 376 | else if ((action == ACTION_STD_OK) |
@@ -394,6 +411,9 @@ static bool show_info(void) | |||
394 | if(global_settings.talk_menu) | 411 | if(global_settings.talk_menu) |
395 | info.get_talk = info_speak_item; | 412 | info.get_talk = info_speak_item; |
396 | info.action_callback = info_action_callback; | 413 | info.action_callback = info_action_callback; |
414 | #if CONFIG_CHARGING | ||
415 | info.timeout = HZ; | ||
416 | #endif | ||
397 | return simplelist_show_list(&info); | 417 | return simplelist_show_list(&info); |
398 | } | 418 | } |
399 | MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO), | 419 | MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO), |