#ifndef _PLOTTER_STATE_ #define _PLOTTER_STATE_ enum system_status { SYSTEM_STATUS_NO_USB = -1, SYSTEM_STATUS_UNKNOWN, SYSTEM_STATUS_CHARGING, SYSTEM_STATUS_DISCHARGING, SYSTEM_STATUS_MONITORING, SYSTEM_STATUS_COMPLETED = 6, }; struct log_plotter_status { int old_system_status; int system_status; }; extern struct log_plotter_status plotter_state; static inline void set_plotter_system_status(int new_status) { plotter_state.system_status = new_status; } static inline char *state_to_str(int state) { switch (state) { case SYSTEM_STATUS_NO_USB: return "No USB"; case SYSTEM_STATUS_CHARGING: return "Charging"; case SYSTEM_STATUS_DISCHARGING: return "Discharging"; case SYSTEM_STATUS_MONITORING: return "Monitoring"; case SYSTEM_STATUS_COMPLETED: return "Completed"; default: return "Unknown"; } } static inline int state_has_changed(void) { return plotter_state.old_system_status != plotter_state.system_status; } #endif