~ruther/qmk_firmware

0112938140b4a59904f4b0b8c3893588410013cb — Jouke Witteveen 3 years ago 2af2c5e
Expose the time of the last change to the LED state (#17222)

2 files changed, 14 insertions(+), 1 deletions(-)

M quantum/led.c
M quantum/led.h
M quantum/led.c => quantum/led.c +11 -1
@@ 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: ");

M quantum/led.h => quantum/led.h +3 -0
@@ 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