Expose the time of the last change to the LED state (#17222)

master
Jouke Witteveen 2022-07-02 13:57:05 +02:00 committed by GitHub
parent 2af2c5e109
commit 0112938140
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -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: ");

View File

@ -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