Bugfix Zero runtime not reset runtime while charger connected

I can't repro the users issue guessing its the difference with
charging monitor vs not

https://forums.rockbox.org/index.php/topic,55406.0.html

Change-Id: I252f48cd24a9cb0fb2b899352fe9f9ac540a9a5b
This commit is contained in:
William Wilgus 2025-07-19 09:12:29 -04:00
parent 29e0303915
commit 31c8c0496b
3 changed files with 11 additions and 4 deletions

View file

@ -192,7 +192,7 @@ static struct screen * sb_fill_bar_info(struct gui_statusbar * bar)
/* zero battery run time if charging */ /* zero battery run time if charging */
if (charge_state > DISCHARGING) if (charge_state > DISCHARGING)
reset_runtime(); zero_runtime();
/* animate battery if charging */ /* animate battery if charging */
if ((charge_state == DISCHARGING) || (charge_state == TRICKLE)) if ((charge_state == DISCHARGING) || (charge_state == TRICKLE))
@ -202,7 +202,7 @@ static struct screen * sb_fill_bar_info(struct gui_statusbar * bar)
else else
{ {
#else /* CONFIG_CHARGING < CHARGING_MONITOR */ #else /* CONFIG_CHARGING < CHARGING_MONITOR */
reset_runtime(); zero_runtime();
{ {
#endif /* CONFIG_CHARGING < CHARGING_MONITOR */ #endif /* CONFIG_CHARGING < CHARGING_MONITOR */
/* animate in (max.) 4 steps, starting near the current charge level */ /* animate in (max.) 4 steps, starting near the current charge level */

View file

@ -662,7 +662,7 @@ static void flush_config_block_callback(void)
void reset_runtime(void) void reset_runtime(void)
{ {
update_runtime(); /* in case this is > topruntimetime */ update_runtime(); /* in case this is > topruntimetime */
lasttime = current_tick; zero_runtime();
global_status.runtime = 0; global_status.runtime = 0;
} }
@ -681,6 +681,11 @@ void update_runtime(void)
global_status.topruntime = global_status.runtime; global_status.topruntime = global_status.runtime;
} }
void zero_runtime(void)
{
lasttime = current_tick;
}
void status_save(bool force) void status_save(bool force)
{ {
if(force) if(force)

View file

@ -262,13 +262,15 @@ enum { ALARM_START_WPS = 0,
/** function prototypes **/ /** function prototypes **/
void reset_runtime(void);
void update_runtime(void); void update_runtime(void);
void zero_runtime(void);
void settings_load(void) INIT_ATTR; void settings_load(void) INIT_ATTR;
bool settings_load_config(const char* file, bool apply); bool settings_load_config(const char* file, bool apply);
void status_save(bool force); void status_save(bool force);
int settings_save(void); int settings_save(void);
void reset_runtime(void);
/* defines for the options paramater */ /* defines for the options paramater */
enum { enum {
SETTINGS_SAVE_CHANGED = 0, SETTINGS_SAVE_CHANGED = 0,