Add battery changed callbacks (#25207)

This commit is contained in:
Joel Challis 2025-05-05 03:28:33 +01:00 committed by GitHub
parent 11c8b2841e
commit 5611a40064
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 44 additions and 0 deletions

View File

@ -49,3 +49,25 @@ Sample battery level.
#### Return Value {#api-battery-get-percent-return} #### Return Value {#api-battery-get-percent-return}
The battery percentage, in the range 0-100. The battery percentage, in the range 0-100.
## Callbacks
### `void battery_percent_changed_user(uint8_t level)` {#api-battery-percent-changed-user}
User hook called when battery level changed.
### Arguments {#api-battery-percent-changed-user-arguments}
- `uint8_t level`
The battery percentage, in the range 0-100.
---
### `void battery_percent_changed_kb(uint8_t level)` {#api-battery-percent-changed-kb}
Keyboard hook called when battery level changed.
### Arguments {#api-battery-percent-changed-kb-arguments}
- `uint8_t level`
The battery percentage, in the range 0-100.

View File

@ -17,11 +17,21 @@ void battery_init(void) {
last_bat_level = battery_driver_sample_percent(); 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) { void battery_task(void) {
static uint32_t bat_timer = 0; static uint32_t bat_timer = 0;
if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) { if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) {
last_bat_level = battery_driver_sample_percent(); last_bat_level = battery_driver_sample_percent();
handle_percent_changed();
bat_timer = timer_read32(); bat_timer = timer_read32();
} }
} }

View File

@ -31,4 +31,16 @@ void battery_task(void);
*/ */
uint8_t battery_get_percent(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);
/** \} */ /** \} */