diff options
Diffstat (limited to 'quantum/led_matrix/led_matrix.c')
| -rw-r--r-- | quantum/led_matrix/led_matrix.c | 54 | 
1 files changed, 29 insertions, 25 deletions
| diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 14dd0dd48a..e215c2c2c3 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -54,12 +54,8 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER;  // -----End led effect includes macros-------  // ------------------------------------------ -#if defined(LED_DISABLE_AFTER_TIMEOUT) && !defined(LED_DISABLE_TIMEOUT) -#    define LED_DISABLE_TIMEOUT (LED_DISABLE_AFTER_TIMEOUT * 1200UL) -#endif - -#ifndef LED_DISABLE_TIMEOUT -#    define LED_DISABLE_TIMEOUT 0 +#ifndef LED_MATRIX_TIMEOUT +#    define LED_MATRIX_TIMEOUT 0  #endif  #if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX @@ -103,9 +99,9 @@ static uint8_t         led_last_enable   = UINT8_MAX;  static uint8_t         led_last_effect   = UINT8_MAX;  static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false};  static led_task_states led_task_state    = SYNCING; -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0  static uint32_t led_anykey_timer; -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0  // double buffers  static uint32_t led_timer_buffer; @@ -170,7 +166,7 @@ void led_matrix_set_value(int index, uint8_t value) {  void led_matrix_set_value_all(uint8_t value) {  #if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) -    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) +    for (uint8_t i = 0; i < LED_MATRIX_LED_COUNT; i++)          led_matrix_set_value(i, value);  #else  #    ifdef USE_CIE1931_CURVE @@ -185,9 +181,9 @@ void process_led_matrix(uint8_t row, uint8_t col, bool pressed) {  #ifndef LED_MATRIX_SPLIT      if (!is_keyboard_master()) return;  #endif -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0      led_anykey_timer = 0; -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0  #ifdef LED_MATRIX_KEYREACTIVE_ENABLED      uint8_t led[LED_HITS_TO_REMEMBER]; @@ -237,13 +233,13 @@ static bool led_matrix_none(effect_params_t *params) {  }  static void led_task_timers(void) { -#if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 +#if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_MATRIX_TIMEOUT > 0      uint32_t deltaTime = sync_timer_elapsed32(led_timer_buffer); -#endif // defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 +#endif // defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_MATRIX_TIMEOUT > 0      led_timer_buffer = sync_timer_read32();      // Update double buffer timers -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0      if (led_anykey_timer < UINT32_MAX) {          if (UINT32_MAX - deltaTime < led_anykey_timer) {              led_anykey_timer = UINT32_MAX; @@ -251,7 +247,7 @@ static void led_task_timers(void) {              led_anykey_timer += deltaTime;          }      } -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0      // Update double buffer last hit timers  #ifdef LED_MATRIX_KEYREACTIVE_ENABLED @@ -357,9 +353,9 @@ void led_matrix_task(void) {      // Ideally we would also stop sending zeros to the LED driver PWM buffers      // while suspended and just do a software shutdown. This is a cheap hack for now.      bool suspend_backlight = suspend_state || -#if LED_DISABLE_TIMEOUT > 0 -                             (led_anykey_timer > (uint32_t)LED_DISABLE_TIMEOUT) || -#endif // LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0 +                             (led_anykey_timer > (uint32_t)LED_MATRIX_TIMEOUT) || +#endif // LED_MATRIX_TIMEOUT > 0                               false;      uint8_t effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; @@ -389,9 +385,13 @@ void led_matrix_indicators(void) {      led_matrix_indicators_user();  } -__attribute__((weak)) void led_matrix_indicators_kb(void) {} +__attribute__((weak)) bool led_matrix_indicators_kb(void) { +    return led_matrix_indicators_user(); +} -__attribute__((weak)) void led_matrix_indicators_user(void) {} +__attribute__((weak)) bool led_matrix_indicators_user(void) { +    return true; +}  void led_matrix_indicators_advanced(effect_params_t *params) {      /* special handling is needed for "params->iter", since it's already been incremented. @@ -399,21 +399,25 @@ void led_matrix_indicators_advanced(effect_params_t *params) {       * and not sure which would be better. Otherwise, this should be called from       * led_task_render, right before the iter++ line.       */ -#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL +#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT      uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1);      uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; -    if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; +    if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT;  #else      uint8_t min = 0; -    uint8_t max = DRIVER_LED_TOTAL; +    uint8_t max = LED_MATRIX_LED_COUNT;  #endif      led_matrix_indicators_advanced_kb(min, max);      led_matrix_indicators_advanced_user(min, max);  } -__attribute__((weak)) void led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +    return led_matrix_indicators_advanced_user(led_min, led_max); +} -__attribute__((weak)) void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +    return true; +}  void led_matrix_init(void) {      led_matrix_driver.init(); | 
