diff options
author | Joel Challis <git@zvecr.com> | 2023-08-21 22:46:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-21 22:46:12 +0100 |
commit | f9aba8660a86f9af2ac9e809da63e2f104b03d34 (patch) | |
tree | d8fdbe216e6d81e32fce2107b97947c3d938d377 /keyboards/drop/lib/common.c | |
parent | 11970b1a52c00526ddd198e54137302b9e52bd70 (diff) |
Initial support for ALT v2 (#21754)
Diffstat (limited to 'keyboards/drop/lib/common.c')
-rw-r--r-- | keyboards/drop/lib/common.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/keyboards/drop/lib/common.c b/keyboards/drop/lib/common.c new file mode 100644 index 0000000000..515625a686 --- /dev/null +++ b/keyboards/drop/lib/common.c @@ -0,0 +1,54 @@ +// Copyright 2023 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#ifdef RGB_MATRIX_ENABLE +# include "host.h" +# include "rgb_matrix.h" + +# define LED_FLAG_ANY_SWITCH (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR) + +# ifdef RGB_MATRIX_CAPS_LOCK_INDEX +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_WHITE); + } else if ((rgb_matrix_get_flags() & LED_FLAG_ANY_SWITCH) == 0) { + rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_OFF); + } + return true; +} +# endif + +# ifdef RGB_MATRIX_CYCLE_ZONES_ENABLE +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + + if (!record->event.pressed) { + switch (keycode) { + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_ANY_SWITCH); + break; + case LED_FLAG_ANY_SWITCH: + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; +# endif + +#endif |