0dde25e8 |
1 | /* |
2 | Copyright 2011 Jun Wako <wakojun@gmail.com> |
3 | |
4 | This program is free software: you can redistribute it and/or modify |
5 | it under the terms of the GNU General Public License as published by |
6 | the Free Software Foundation, either version 2 of the License, or |
7 | (at your option) any later version. |
8 | |
9 | This program is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | GNU General Public License for more details. |
13 | |
14 | You should have received a copy of the GNU General Public License |
15 | along 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 */ |
28 | typedef 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; |
41 | keymap_config_t keymap_config; |
42 | #endif |
43 | |
44 | |
1d5bbb55 |
45 | /* translates key to keycode */ |
63c03dc1 |
46 | uint8_t keymap_key_to_keycode(uint8_t layer, key_t key); |
1d5bbb55 |
47 | |
63c03dc1 |
48 | /* translates Fn keycode to action */ |
49 | action_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 |
60 | uint8_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 |
64 | uint8_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 |
68 | uint8_t keymap_fn_keycode(uint8_t fn_bits); |
d95463f2 |
69 | #endif |
8a709c27 |
70 | |
06eb50be |
71 | #endif |