at master 162 lines 3.4 kB view raw
1/* 2Copyright 2011 Jun Wako <wakojun@gmail.com> 3 4This program is free software: you can redistribute it and/or modify 5it under the terms of the GNU General Public License as published by 6the Free Software Foundation, either version 2 of the License, or 7(at your option) any later version. 8 9This program is distributed in the hope that it will be useful, 10but WITHOUT ANY WARRANTY; without even the implied warranty of 11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12GNU General Public License for more details. 13 14You should have received a copy of the GNU General Public License 15along with this program. If not, see <http://www.gnu.org/licenses/>. 16*/ 17 18#pragma once 19 20/* FIXME: Add doxygen comments for the behavioral defines in here. */ 21 22/* TODO: Refactoring */ 23typedef enum { ONESHOT, CONSOLE, MOUSEKEY } command_state_t; 24extern command_state_t command_state; 25 26/* This allows to extend commands. Return false when command is not processed. */ 27bool command_extra(uint8_t code); 28bool command_console_extra(uint8_t code); 29 30#ifdef COMMAND_ENABLE 31bool command_proc(uint8_t code); 32#else 33# define command_proc(code) false 34#endif 35 36#ifndef IS_COMMAND 37# define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) 38#endif 39 40#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS 41# define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true 42#endif 43 44#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS 45# define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true 46#endif 47 48#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM 49# define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false 50#endif 51 52#ifndef MAGIC_KEY_HELP 53# define MAGIC_KEY_HELP H 54#endif 55 56#ifndef MAGIC_KEY_HELP_ALT 57# define MAGIC_KEY_HELP_ALT SLASH 58#endif 59 60#ifndef MAGIC_KEY_DEBUG 61# define MAGIC_KEY_DEBUG D 62#endif 63 64#ifndef MAGIC_KEY_DEBUG_MATRIX 65# define MAGIC_KEY_DEBUG_MATRIX X 66#endif 67 68#ifndef MAGIC_KEY_DEBUG_KBD 69# define MAGIC_KEY_DEBUG_KBD K 70#endif 71 72#ifndef MAGIC_KEY_DEBUG_MOUSE 73# define MAGIC_KEY_DEBUG_MOUSE M 74#endif 75 76#ifndef MAGIC_KEY_VERSION 77# define MAGIC_KEY_VERSION V 78#endif 79 80#ifndef MAGIC_KEY_STATUS 81# define MAGIC_KEY_STATUS S 82#endif 83 84#ifndef MAGIC_KEY_CONSOLE 85# define MAGIC_KEY_CONSOLE C 86#endif 87 88#ifndef MAGIC_KEY_LAYER0 89# define MAGIC_KEY_LAYER0 0 90#endif 91 92#ifndef MAGIC_KEY_LAYER0_ALT 93# define MAGIC_KEY_LAYER0_ALT GRAVE 94#endif 95 96#ifndef MAGIC_KEY_LAYER1 97# define MAGIC_KEY_LAYER1 1 98#endif 99 100#ifndef MAGIC_KEY_LAYER2 101# define MAGIC_KEY_LAYER2 2 102#endif 103 104#ifndef MAGIC_KEY_LAYER3 105# define MAGIC_KEY_LAYER3 3 106#endif 107 108#ifndef MAGIC_KEY_LAYER4 109# define MAGIC_KEY_LAYER4 4 110#endif 111 112#ifndef MAGIC_KEY_LAYER5 113# define MAGIC_KEY_LAYER5 5 114#endif 115 116#ifndef MAGIC_KEY_LAYER6 117# define MAGIC_KEY_LAYER6 6 118#endif 119 120#ifndef MAGIC_KEY_LAYER7 121# define MAGIC_KEY_LAYER7 7 122#endif 123 124#ifndef MAGIC_KEY_LAYER8 125# define MAGIC_KEY_LAYER8 8 126#endif 127 128#ifndef MAGIC_KEY_LAYER9 129# define MAGIC_KEY_LAYER9 9 130#endif 131 132#ifndef MAGIC_KEY_BOOTLOADER 133# define MAGIC_KEY_BOOTLOADER B 134#endif 135 136#ifndef MAGIC_KEY_BOOTLOADER_ALT 137# define MAGIC_KEY_BOOTLOADER_ALT ESC 138#endif 139 140#ifndef MAGIC_KEY_LOCK 141# define MAGIC_KEY_LOCK CAPS 142#endif 143 144#ifndef MAGIC_KEY_EEPROM 145# define MAGIC_KEY_EEPROM E 146#endif 147 148#ifndef MAGIC_KEY_EEPROM_CLEAR 149# define MAGIC_KEY_EEPROM_CLEAR BACKSPACE 150#endif 151 152#ifndef MAGIC_KEY_NKRO 153# define MAGIC_KEY_NKRO N 154#endif 155 156#ifndef MAGIC_KEY_SLEEP_LED 157# define MAGIC_KEY_SLEEP_LED Z 158 159#endif 160 161#define XMAGIC_KC(key) KC_##key 162#define MAGIC_KC(key) XMAGIC_KC(key)