Merge pull request #124 from kairyu/6kro
[jackhill/qmk/firmware.git] / common / keymap.h
CommitLineData
0dde25e8 1/*
2Copyright 2011 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
fb8d23c6 18#ifndef KEYMAP_H
19#define KEYMAP_H
06eb50be 20
21#include <stdint.h>
22#include <stdbool.h>
8a709c27 23#include "action.h"
06eb50be 24
1e3e41a2 25
4e93b3fa 26#ifdef BOOTMAGIC_ENABLE
27/* NOTE: Not portable. Bit field order depends on implementation */
28typedef union {
29 uint8_t raw;
30 struct {
31 bool swap_control_capslock:1;
32 bool capslock_to_control:1;
33 bool swap_lalt_lgui:1;
34 bool swap_ralt_rgui:1;
35 bool no_gui:1;
36 bool swap_grave_esc:1;
37 bool swap_backslash_backspace:1;
e5bafff7 38 bool nkro:1;
4e93b3fa 39 };
40} keymap_config_t;
41keymap_config_t keymap_config;
42#endif
43
44
1d5bbb55 45/* translates key to keycode */
63c03dc1 46uint8_t keymap_key_to_keycode(uint8_t layer, key_t key);
1d5bbb55 47
63c03dc1 48/* translates Fn keycode to action */
49action_t keymap_fn_to_action(uint8_t keycode);
1d5bbb55 50
51
52
53#ifdef USE_LEGACY_KEYMAP
e0f960a5 54/*
1d5bbb55 55 * Legacy keymap
56 * Consider using new keymap API above instead.
e0f960a5 57 */
d95463f2 58/* keycode of key */
1d5bbb55 59__attribute__ ((deprecated))
45d4a7a8 60uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col);
1d5bbb55 61
45d4a7a8 62/* layer to move during press Fn key */
1d5bbb55 63__attribute__ ((deprecated))
3e56e80c 64uint8_t keymap_fn_layer(uint8_t fn_bits);
1d5bbb55 65
45d4a7a8 66/* keycode to send when release Fn key without using */
1d5bbb55 67__attribute__ ((deprecated))
45d4a7a8 68uint8_t keymap_fn_keycode(uint8_t fn_bits);
d95463f2 69#endif
8a709c27 70
06eb50be 71#endif