aboutsummaryrefslogtreecommitdiff
path: root/drivers/battery
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/battery')
-rw-r--r--drivers/battery/battery.c10
-rw-r--r--drivers/battery/battery.h12
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/battery/battery.c b/drivers/battery/battery.c
index 65497399e8..faf3c5a214 100644
--- a/drivers/battery/battery.c
+++ b/drivers/battery/battery.c
@@ -17,11 +17,21 @@ void battery_init(void) {
last_bat_level = battery_driver_sample_percent();
}
+__attribute__((weak)) void battery_percent_changed_user(uint8_t level) {}
+__attribute__((weak)) void battery_percent_changed_kb(uint8_t level) {}
+
+static void handle_percent_changed(void) {
+ battery_percent_changed_user(last_bat_level);
+ battery_percent_changed_kb(last_bat_level);
+}
+
void battery_task(void) {
static uint32_t bat_timer = 0;
if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) {
last_bat_level = battery_driver_sample_percent();
+ handle_percent_changed();
+
bat_timer = timer_read32();
}
}
diff --git a/drivers/battery/battery.h b/drivers/battery/battery.h
index 831b1f07e5..0985723eaa 100644
--- a/drivers/battery/battery.h
+++ b/drivers/battery/battery.h
@@ -31,4 +31,16 @@ void battery_task(void);
*/
uint8_t battery_get_percent(void);
+/**
+ * \brief user hook called when battery level changed.
+ *
+ */
+void battery_percent_changed_user(uint8_t level);
+
+/**
+ * \brief keyboard hook called when battery level changed.
+ *
+ */
+void battery_percent_changed_kb(uint8_t level);
+
/** \} */