diff options
Diffstat (limited to 'quantum/command.h')
-rw-r--r-- | quantum/command.h | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/quantum/command.h b/quantum/command.h new file mode 100644 index 0000000000..4f77be085c --- /dev/null +++ b/quantum/command.h @@ -0,0 +1,163 @@ +/* +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/>. +*/ + +#pragma once + +/* FIXME: Add doxygen comments for the behavioral defines in here. */ + +/* 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 IS_COMMAND +# define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) +#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_HELP +# define MAGIC_KEY_HELP H +#endif + +#ifndef MAGIC_KEY_HELP_ALT +# define MAGIC_KEY_HELP_ALT 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 +# define MAGIC_KEY_LAYER0 0 +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT +# define MAGIC_KEY_LAYER0_ALT GRAVE +#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 B +#endif + +#ifndef MAGIC_KEY_BOOTLOADER_ALT +# define MAGIC_KEY_BOOTLOADER_ALT ESC +#endif + +#ifndef MAGIC_KEY_LOCK +# define MAGIC_KEY_LOCK CAPS +#endif + +#ifndef MAGIC_KEY_EEPROM +# define MAGIC_KEY_EEPROM E +#endif + +#ifndef MAGIC_KEY_EEPROM_CLEAR +# define MAGIC_KEY_EEPROM_CLEAR BSPACE +#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) |