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