summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/menus/main_menu.c34
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
355static int info_action_callback(int action, struct gui_synclist *lists) 367static 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}
399MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO), 419MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO),