at master 1.4 kB view raw
1/* Copyright 2016 Jack Humbert 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17#include "process_leader.h" 18#include "leader.h" 19#include "quantum_keycodes.h" 20 21bool process_leader(uint16_t keycode, keyrecord_t *record) { 22 if (record->event.pressed) { 23 if (leader_sequence_active() && !leader_sequence_timed_out()) { 24#ifndef LEADER_KEY_STRICT_KEY_PROCESSING 25 keycode = get_tap_keycode(keycode); 26#endif 27 28 if (!leader_sequence_add(keycode)) { 29 leader_end(); 30 31 return true; 32 } 33 34#ifdef LEADER_PER_KEY_TIMING 35 leader_reset_timer(); 36#endif 37 38 return false; 39 } else if (keycode == QK_LEADER) { 40 leader_start(); 41 } 42 } 43 44 return true; 45}