qmk

QMK Firmware
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

command.h (3452B)


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