qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

common.c (1706B)


      1 // Copyright 2023 Massdrop, Inc.
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 #ifdef RGB_MATRIX_ENABLE
      4 #    include "host.h"
      5 #    include "quantum.h"
      6 #    include "rgb_matrix.h"
      7 
      8 #    ifdef RGB_MATRIX_CAPS_LOCK_INDEX
      9 bool rgb_matrix_indicators_kb(void) {
     10     if (!rgb_matrix_indicators_user()) {
     11         return false;
     12     }
     13 
     14     if (host_keyboard_led_state().caps_lock && (rgb_matrix_get_flags() != LED_FLAG_NONE)) {
     15         rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_WHITE);
     16     } else if (rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) {
     17         rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_OFF);
     18     }
     19     return true;
     20 }
     21 #    endif
     22 
     23 #    ifdef RGB_MATRIX_CYCLE_ZONES_ENABLE
     24 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
     25     if (!process_record_user(keycode, record)) {
     26         return false;
     27     }
     28 
     29     if (!record->event.pressed) {
     30         switch (keycode) {
     31             case QK_RGB_MATRIX_TOGGLE:
     32                 switch (rgb_matrix_get_flags()) {
     33                     case LED_FLAG_ALL:
     34                         rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
     35                         break;
     36                     case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR):
     37                         rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
     38                         break;
     39                     case LED_FLAG_UNDERGLOW:
     40                         rgb_matrix_set_flags(LED_FLAG_NONE);
     41                         break;
     42                     default:
     43                         rgb_matrix_set_flags(LED_FLAG_ALL);
     44                         break;
     45                 }
     46                 return false;
     47         }
     48     }
     49     return true;
     50 };
     51 #    endif
     52 
     53 #endif