123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2022 QMK
- // SPDX-License-Identifier: GPL-2.0-or-later
- #include "secure.h"
- #include "process_secure.h"
- #include "quantum_keycodes.h"
- bool preprocess_secure(uint16_t keycode, keyrecord_t *record) {
- if (secure_is_unlocking()) {
- // !pressed will trigger on any already held keys (such as layer keys),
- // and cause the request secure check to prematurely fail.
- if (record->event.pressed) {
- secure_keypress_event(record->event.key.row, record->event.key.col);
- }
- // Normal keypresses should be disabled until the sequence is completed
- return false;
- }
- return true;
- }
- bool process_secure(uint16_t keycode, keyrecord_t *record) {
- #ifndef SECURE_DISABLE_KEYCODES
- if (!record->event.pressed) {
- if (keycode == QK_SECURE_LOCK) {
- secure_lock();
- return false;
- }
- if (keycode == QK_SECURE_UNLOCK) {
- secure_unlock();
- return false;
- }
- if (keycode == QK_SECURE_TOGGLE) {
- secure_is_locked() ? secure_unlock() : secure_lock();
- return false;
- }
- if (keycode == QK_SECURE_REQUEST) {
- secure_request_unlock();
- return false;
- }
- }
- #endif
- return true;
- }
|