aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core/common/command.h
blob: a729e4b1e438c73f28f0391ff4c341587d03875d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
href='#n59'>59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef COMMAND_H
#define COMMAND

/* TODO: Refactoring */
typedef enum { ONESHOT, CONSOLE, MOUSEKEY } command_state_t;
extern command_state_t command_state;

/* This allows to extend commands. Return false when command is not processed. */
bool command_extra(uint8_t code);
bool command_console_extra(uint8_t code);

#ifdef COMMAND_ENABLE
uint8_t numkey2num(uint8_t code);
bool command_proc(uint8_t code);
#else
#define command_proc(code)      false
#endif


#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
#endif

#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
#endif

#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
#endif

#ifndef MAGIC_KEY_HELP1
#define MAGIC_KEY_HELP1          H
#endif

#ifndef MAGIC_KEY_HELP2
#define MAGIC_KEY_HELP2          SLASH
#endif

#ifndef MAGIC_KEY_DEBUG
#define MAGIC_KEY_DEBUG          D
#endif

#ifndef MAGIC_KEY_DEBUG_MATRIX
#define MAGIC_KEY_DEBUG_MATRIX   X
#endif

#ifndef MAGIC_KEY_DEBUG_KBD
#define MAGIC_KEY_DEBUG_KBD      K
#endif

#ifndef MAGIC_KEY_DEBUG_MOUSE
#define MAGIC_KEY_DEBUG_MOUSE    M
#endif

#ifndef MAGIC_KEY_VERSION
#define MAGIC_KEY_VERSION        V
#endif

#ifndef MAGIC_KEY_STATUS
#define MAGIC_KEY_STATUS         S
#endif

#ifndef MAGIC_KEY_CONSOLE
#define MAGIC_KEY_CONSOLE        C
#endif

#ifndef MAGIC_KEY_LAYER0_ALT1
#define MAGIC_KEY_LAYER0_ALT1    ESC
#endif

#ifndef MAGIC_KEY_LAYER0_ALT2
#define MAGIC_KEY_LAYER0_ALT2    GRAVE
#endif

#ifndef MAGIC_KEY_LAYER0
#define MAGIC_KEY_LAYER0         0
#endif

#ifndef MAGIC_KEY_LAYER1
#define MAGIC_KEY_LAYER1         1
#endif

#ifndef MAGIC_KEY_LAYER2
#define MAGIC_KEY_LAYER2         2
#endif

#ifndef MAGIC_KEY_LAYER3
#define MAGIC_KEY_LAYER3         3
#endif

#ifndef MAGIC_KEY_LAYER4
#define MAGIC_KEY_LAYER4         4
#endif

#ifndef MAGIC_KEY_LAYER5
#define MAGIC_KEY_LAYER5         5
#endif

#ifndef MAGIC_KEY_LAYER6
#define MAGIC_KEY_LAYER6         6
#endif

#ifndef MAGIC_KEY_LAYER7
#define MAGIC_KEY_LAYER7         7
#endif

#ifndef MAGIC_KEY_LAYER8
#define MAGIC_KEY_LAYER8         8
#endif

#ifndef MAGIC_KEY_LAYER9
#define MAGIC_KEY_LAYER9         9
#endif

#ifndef MAGIC_KEY_BOOTLOADER
#define MAGIC_KEY_BOOTLOADER     PAUSE
#endif

#ifndef MAGIC_KEY_LOCK
#define MAGIC_KEY_LOCK           CAPS
#endif

#ifndef MAGIC_KEY_EEPROM
#define MAGIC_KEY_EEPROM         E
#endif

#ifndef MAGIC_KEY_NKRO
#define MAGIC_KEY_NKRO           N
#endif

#ifndef MAGIC_KEY_SLEEP_LED
#define MAGIC_KEY_SLEEP_LED      Z

#endif

#define XMAGIC_KC(key) KC_##key
#define MAGIC_KC(key) XMAGIC_KC(key)

#endif