diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2022-07-02 13:57:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-02 21:57:05 +1000 |
commit | 0112938140b4a59904f4b0b8c3893588410013cb (patch) | |
tree | a080e4c39d1711a371394c5df7ab71969202d7b1 | |
parent | 2af2c5e109cb58401521e32df4b83d7e7f6f1444 (diff) |
Expose the time of the last change to the LED state (#17222)
-rw-r--r-- | quantum/led.c | 12 | ||||
-rw-r--r-- | quantum/led.h | 3 |
2 files changed, 14 insertions, 1 deletions
diff --git a/quantum/led.c b/quantum/led.c index c5ddbc22c5..444d38f751 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -15,6 +15,7 @@ */ #include "led.h" #include "host.h" +#include "timer.h" #include "debug.h" #include "gpio.h" @@ -54,6 +55,14 @@ static void handle_backlight_caps_lock(led_t led_state) { } #endif +static uint32_t last_led_modification_time = 0; +uint32_t last_led_activity_time(void) { + return last_led_modification_time; +} +uint32_t last_led_activity_elapsed(void) { + return timer_elapsed32(last_led_modification_time); +} + /** \brief Lock LED set callback - keymap/user level * * \deprecated Use led_update_user() instead. @@ -174,7 +183,8 @@ void led_task(void) { // update LED uint8_t led_status = host_keyboard_leds(); if (last_led_status != led_status) { - last_led_status = led_status; + last_led_status = led_status; + last_led_modification_time = timer_read32(); if (debug_keyboard) { debug("led_task: "); diff --git a/quantum/led.h b/quantum/led.h index 934d25312c..b8262cbd8e 100644 --- a/quantum/led.h +++ b/quantum/led.h @@ -61,6 +61,9 @@ void led_set_kb(uint8_t usb_led); bool led_update_user(led_t led_state); bool led_update_kb(led_t led_state); +uint32_t last_led_activity_time(void); // Timestamp of the LED activity +uint32_t last_led_activity_elapsed(void); // Number of milliseconds since the last LED activity + #ifdef __cplusplus } #endif |