/* 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)