process_secure.c 1009 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2022 QMK
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "secure.h"
  4. #include "process_secure.h"
  5. #include "quantum_keycodes.h"
  6. bool preprocess_secure(uint16_t keycode, keyrecord_t *record) {
  7. if (secure_is_unlocking()) {
  8. if (!record->event.pressed) {
  9. secure_keypress_event(record->event.key.row, record->event.key.col);
  10. }
  11. // Normal keypresses should be disabled until the sequence is completed
  12. return false;
  13. }
  14. return true;
  15. }
  16. bool process_secure(uint16_t keycode, keyrecord_t *record) {
  17. #ifndef SECURE_DISABLE_KEYCODES
  18. if (!record->event.pressed) {
  19. if (keycode == SECURE_LOCK) {
  20. secure_lock();
  21. return false;
  22. }
  23. if (keycode == SECURE_UNLOCK) {
  24. secure_unlock();
  25. return false;
  26. }
  27. if (keycode == SECURE_TOGGLE) {
  28. secure_is_locked() ? secure_unlock() : secure_lock();
  29. return false;
  30. }
  31. }
  32. #endif
  33. return true;
  34. }