diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2016-03-30 00:45:48 -0400 | 
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2016-03-30 00:45:48 -0400 | 
| commit | e7377dc24b4aaf97f9c48ef7db78b7b6cbabe748 (patch) | |
| tree | 7774668076bb8c8d2331028bb540510c078e60be /tmk_core/common | |
| parent | b8ac5095708b5023f5e3e375b22534f8b395741f (diff) | |
| parent | 4a676746a6d8c9b47956f863ead335e995677c53 (diff) | |
Merge branch 'master' of https://github.com/jackhumbert/tmk_keyboard
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/action.c | 10 | ||||
| -rw-r--r-- | tmk_core/common/action.h | 3 | ||||
| -rw-r--r-- | tmk_core/common/action_macro.c | 4 | ||||
| -rw-r--r-- | tmk_core/common/action_util.c | 9 | ||||
| -rw-r--r-- | tmk_core/common/action_util.h | 7 | ||||
| -rw-r--r-- | tmk_core/common/avr/suspend.c | 5 | ||||
| -rw-r--r-- | tmk_core/common/command.c | 353 | ||||
| -rw-r--r-- | tmk_core/common/command.h | 121 | ||||
| -rw-r--r-- | tmk_core/common/keyboard.c | 6 | ||||
| -rw-r--r-- | tmk_core/common/led.h | 5 | ||||
| -rw-r--r-- | tmk_core/common/matrix.h | 4 | 
11 files changed, 414 insertions, 113 deletions
| diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 77ea39e942..2ccc0e0b94 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -53,6 +53,9 @@ void action_exec(keyevent_t event)  #endif  } +__attribute__ ((weak)) +void process_action_kb(keyrecord_t *record) {} +  void process_action(keyrecord_t *record)  {      keyevent_t event = record->event; @@ -62,6 +65,8 @@ void process_action(keyrecord_t *record)      if (IS_NOEVENT(event)) { return; } +    process_action_kb(record); +      action_t action = layer_switch_get_action(event.key);      dprint("ACTION: "); debug_action(action);  #ifndef NO_ACTION_LAYER @@ -70,6 +75,10 @@ void process_action(keyrecord_t *record)  #endif      dprintln(); +    if (event.pressed) { +        // clear the potential weak mods left by previously pressed keys +        clear_weak_mods(); +    }      switch (action.kind.id) {          /* Key and Mods */          case ACT_LMODS: @@ -500,6 +509,7 @@ void clear_keyboard(void)  void clear_keyboard_but_mods(void)  {      clear_weak_mods(); +    clear_macro_mods();      clear_keys();      send_keyboard_report();  #ifdef MOUSEKEY_ENABLE diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 8a4736d7bc..9f528af4b9 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -58,6 +58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);  /* user defined special function */  void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); +/* keyboard-specific key event (pre)processing */ +void process_action_kb(keyrecord_t *record); +  /* Utilities for actions.  */  void process_action(keyrecord_t *record);  void register_code(uint8_t code); diff --git a/tmk_core/common/action_macro.c b/tmk_core/common/action_macro.c index ffaf125c06..7726b11907 100644 --- a/tmk_core/common/action_macro.c +++ b/tmk_core/common/action_macro.c @@ -41,7 +41,7 @@ void action_macro_play(const macro_t *macro_p)                  MACRO_READ();                  dprintf("KEY_DOWN(%02X)\n", macro);                  if (IS_MOD(macro)) { -                    add_weak_mods(MOD_BIT(macro)); +                    add_macro_mods(MOD_BIT(macro));                      send_keyboard_report();                  } else {                      register_code(macro); @@ -51,7 +51,7 @@ void action_macro_play(const macro_t *macro_p)                  MACRO_READ();                  dprintf("KEY_UP(%02X)\n", macro);                  if (IS_MOD(macro)) { -                    del_weak_mods(MOD_BIT(macro)); +                    del_macro_mods(MOD_BIT(macro));                      send_keyboard_report();                  } else {                      unregister_code(macro); diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c index f81877dd9f..a2d6577b24 100644 --- a/tmk_core/common/action_util.c +++ b/tmk_core/common/action_util.c @@ -29,6 +29,7 @@ static inline void del_key_bit(uint8_t code);  static uint8_t real_mods = 0;  static uint8_t weak_mods = 0; +static uint8_t macro_mods = 0;  #ifdef USB_6KRO_ENABLE  #define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) @@ -55,6 +56,7 @@ static int16_t oneshot_time = 0;  void send_keyboard_report(void) {      keyboard_report->mods  = real_mods;      keyboard_report->mods |= weak_mods; +    keyboard_report->mods |= macro_mods;  #ifndef NO_ACTION_ONESHOT      if (oneshot_mods) {  #if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) @@ -118,6 +120,13 @@ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; }  void set_weak_mods(uint8_t mods) { weak_mods = mods; }  void clear_weak_mods(void) { weak_mods = 0; } +/* macro modifier */ +uint8_t get_macro_mods(void) { return macro_mods; } +void add_macro_mods(uint8_t mods) { macro_mods |= mods; } +void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; } +void set_macro_mods(uint8_t mods) { macro_mods = mods; } +void clear_macro_mods(void) { macro_mods = 0; } +  /* Oneshot modifier */  #ifndef NO_ACTION_ONESHOT  void set_oneshot_mods(uint8_t mods) diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h index a955638b46..1a95cec10e 100644 --- a/tmk_core/common/action_util.h +++ b/tmk_core/common/action_util.h @@ -47,6 +47,13 @@ void del_weak_mods(uint8_t mods);  void set_weak_mods(uint8_t mods);  void clear_weak_mods(void); +/* macro modifier */ +uint8_t get_macro_mods(void); +void add_macro_mods(uint8_t mods); +void del_macro_mods(uint8_t mods); +void set_macro_mods(uint8_t mods); +void clear_macro_mods(void); +  /* oneshot modifier */  void set_oneshot_mods(uint8_t mods);  void clear_oneshot_mods(void); diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index caf0b06254..c07c2801d5 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -66,9 +66,12 @@ static void power_down(uint8_t wdto)      wdt_intr_enable(wdto);  #ifdef BACKLIGHT_ENABLE -backlight_set(0); +	backlight_set(0);  #endif +	// Turn off LED indicators +	led_set(0); +      // TODO: more power saving      // See PicoPower application note      // - I/O port input with pullup diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index d59bb01bbc..b4cd3ca56b 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -52,6 +52,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  static bool command_common(uint8_t code);  static void command_common_help(void); +static void print_version(void); +static void print_status(void);  static bool command_console(uint8_t code);  static void command_console_help(void);  #ifdef MOUSEKEY_ENABLE @@ -112,35 +114,140 @@ bool command_console_extra(uint8_t code)   ***********************************************************/  static void command_common_help(void)  { -    print("\n\t- Magic -\n" -          "d:	debug\n" -          "x:	debug matrix\n" -          "k:	debug keyboard\n" -          "m:	debug mouse\n" -          "v:	version\n" -          "s:	status\n" -          "c:	console mode\n" -          "0-4:	layer0-4(F10-F4)\n" -          "Paus:	bootloader\n" +	print(                            "\n\t- Magic -\n" +		STR(MAGIC_KEY_DEBUG       ) ":	Debug Message Toggle\n" +		STR(MAGIC_KEY_DEBUG_MATRIX) ":	Matrix Debug Mode Toggle - Show keypresses in matrix grid\n" +		STR(MAGIC_KEY_DEBUG_KBD   ) ":	Keyboard Debug Toggle - Show keypress report\n" +		STR(MAGIC_KEY_DEBUG_MOUSE ) ":	Debug Mouse Toggle\n" +		STR(MAGIC_KEY_VERSION     ) ":	Version\n" +		STR(MAGIC_KEY_STATUS      ) ":	Status\n" +		STR(MAGIC_KEY_CONSOLE     ) ":	Activate Console Mode\n" +		 +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +		STR(MAGIC_KEY_LAYER0      ) ":	Switch to Layer 0\n" +		STR(MAGIC_KEY_LAYER1      ) ":	Switch to Layer 1\n" +		STR(MAGIC_KEY_LAYER2      ) ":	Switch to Layer 2\n" +		STR(MAGIC_KEY_LAYER3      ) ":	Switch to Layer 3\n" +		STR(MAGIC_KEY_LAYER4      ) ":	Switch to Layer 4\n" +		STR(MAGIC_KEY_LAYER5      ) ":	Switch to Layer 5\n" +		STR(MAGIC_KEY_LAYER6      ) ":	Switch to Layer 6\n" +		STR(MAGIC_KEY_LAYER7      ) ":	Switch to Layer 7\n" +		STR(MAGIC_KEY_LAYER8      ) ":	Switch to Layer 8\n" +		STR(MAGIC_KEY_LAYER9      ) ":	Switch to Layer 9\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS							 +		                            "F1-F10:	Switch to Layer 0-9 (F10 = L0)\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS							 +		                            "0-9:	Switch to Layer 0-9\n" +#endif + +		STR(MAGIC_KEY_LAYER0_ALT1 ) ":	Switch to Layer 0 (alternate key 1)\n" +		STR(MAGIC_KEY_LAYER0_ALT2 ) ":	Switch to Layer 0 (alternate key 2)\n" +		STR(MAGIC_KEY_BOOTLOADER  ) ":	Jump to Bootloader (Reset)\n"  #ifdef KEYBOARD_LOCK_ENABLE -          "Caps:	Lock\n" +		STR(MAGIC_KEY_LOCK        ) ":	Lock\n"  #endif  #ifdef BOOTMAGIC_ENABLE -          "e:	eeprom\n" +		STR(MAGIC_KEY_EEPROM      ) ":	Print EEPROM Settings\n"  #endif  #ifdef NKRO_ENABLE -          "n:	NKRO\n" +		STR(MAGIC_KEY_NKRO        ) ":	NKRO Toggle\n"  #endif  #ifdef SLEEP_LED_ENABLE -          "z:	sleep LED test\n" +		STR(MAGIC_KEY_SLEEP_LED   ) ":	Sleep LED Test\n"  #endif      );  } +static void print_version(void) +{ +	// print version & information +    print("\n\t- Version -\n"); +    print("DESC: " STR(DESCRIPTION) "\n"); +    print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " +          "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " +          "VER: " STR(DEVICE_VER) "\n"); +    print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); + +    /* build options */ +    print("OPTIONS:" + +#ifdef PROTOCOL_PJRC +	    " PJRC" +#endif +#ifdef PROTOCOL_LUFA +	    " LUFA" +#endif +#ifdef PROTOCOL_VUSB +	    " VUSB" +#endif +#ifdef BOOTMAGIC_ENABLE +	    " BOOTMAGIC" +#endif +#ifdef MOUSEKEY_ENABLE +	    " MOUSEKEY" +#endif +#ifdef EXTRAKEY_ENABLE +	    " EXTRAKEY" +#endif +#ifdef CONSOLE_ENABLE +	    " CONSOLE" +#endif +#ifdef COMMAND_ENABLE +	    " COMMAND" +#endif +#ifdef NKRO_ENABLE +	    " NKRO" +#endif +#ifdef KEYMAP_SECTION_ENABLE +	    " KEYMAP_SECTION" +#endif + +	    " " STR(BOOTLOADER_SIZE) "\n"); + +    print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) +          " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ +          " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + +	return; +} + +static void print_status(void) +{ + +    print("\n\t- Status -\n"); + +    print_val_hex8(host_keyboard_leds()); +    print_val_hex8(keyboard_protocol); +    print_val_hex8(keyboard_idle); +#ifdef NKRO_ENABLE +    print_val_hex8(keyboard_nkro); +#endif +    print_val_hex32(timer_count); + +#ifdef PROTOCOL_PJRC +    print_val_hex8(UDCON); +    print_val_hex8(UDIEN); +    print_val_hex8(UDINT); +    print_val_hex8(usb_keyboard_leds); +    print_val_hex8(usb_keyboard_idle_count); +#endif + +#ifdef PROTOCOL_PJRC +#   if USB_COUNT_SOF +    print_val_hex8(usbSofCount); +#   endif +#endif +	return; +} +  #ifdef BOOTMAGIC_ENABLE  static void print_eeconfig(void)  { @@ -178,24 +285,36 @@ static void print_eeconfig(void)  static bool command_common(uint8_t code)  { + +#ifdef KEYBOARD_LOCK_ENABLE      static host_driver_t *host_driver = 0; +#endif +      switch (code) { +  #ifdef SLEEP_LED_ENABLE -        case KC_Z: -            // test breathing sleep LED -            print("Sleep LED test\n"); + +		// test breathing sleep LED +        case MAGIC_KC(MAGIC_KEY_SLEEP_LED): +            print("Sleep LED Test\n");              sleep_led_toggle();              led_set(host_keyboard_leds());              break;  #endif +  #ifdef BOOTMAGIC_ENABLE -        case KC_E: + +		// print stored eeprom config +        case MAGIC_KC(MAGIC_KEY_EEPROM):                      print("eeconfig:\n");              print_eeconfig();              break;  #endif +  #ifdef KEYBOARD_LOCK_ENABLE -        case KC_CAPSLOCK: + +		// lock/unlock keyboard +        case MAGIC_KC(MAGIC_KEY_LOCK):              if (host_get_driver()) {                  host_driver = host_get_driver();                  clear_keyboard(); @@ -207,11 +326,15 @@ static bool command_common(uint8_t code)              }              break;  #endif -        case KC_H: -        case KC_SLASH: /* ? */ + +		// print help +        case MAGIC_KC(MAGIC_KEY_HELP1): +        case MAGIC_KC(MAGIC_KEY_HELP2):              command_common_help();              break; -        case KC_C: + +		// activate console +        case MAGIC_KC(MAGIC_KEY_CONSOLE):              debug_matrix   = false;              debug_keyboard = false;              debug_mouse    = false; @@ -220,25 +343,33 @@ static bool command_common(uint8_t code)              print("C> ");              command_state = CONSOLE;              break; -        case KC_PAUSE: -            clear_keyboard(); -            print("\n\nbootloader... "); + +        // jump to bootloader +        case MAGIC_KC(MAGIC_KEY_BOOTLOADER): +            clear_keyboard(); // clear to prevent stuck keys +            print("\n\nJumping to bootloader... ");              _delay_ms(1000);              bootloader_jump(); // not return              break; -        case KC_D: + +        // debug toggle +        case MAGIC_KC(MAGIC_KEY_DEBUG): +            debug_enable = !debug_enable;              if (debug_enable) { +                print("\ndebug: on\n"); +                debug_matrix   = true; +                debug_keyboard = true; +                debug_mouse    = true; +            } else {                  print("\ndebug: off\n");                  debug_matrix   = false;                  debug_keyboard = false;                  debug_mouse    = false; -                debug_enable   = false; -            } else { -                print("\ndebug: on\n"); -                debug_enable   = true;              }              break; -        case KC_X: // debug matrix toggle + +        // debug matrix toggle +        case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX):               debug_matrix = !debug_matrix;              if (debug_matrix) {                  print("\nmatrix: on\n"); @@ -247,7 +378,9 @@ static bool command_common(uint8_t code)                  print("\nmatrix: off\n");              }              break; -        case KC_K: // debug keyboard toggle + +        // debug keyboard toggle +        case MAGIC_KC(MAGIC_KEY_DEBUG_KBD):               debug_keyboard = !debug_keyboard;              if (debug_keyboard) {                  print("\nkeyboard: on\n"); @@ -256,87 +389,33 @@ static bool command_common(uint8_t code)                  print("\nkeyboard: off\n");              }              break; -        case KC_M: // debug mouse toggle + +        // debug mouse toggle +        case MAGIC_KC(MAGIC_KEY_DEBUG_MOUSE):              debug_mouse = !debug_mouse;              if (debug_mouse) {                  print("\nmouse: on\n");                  debug_enable = true;              } else { -                print("\nmouse: off\n"); +				print("\nmouse: off\n");              }              break; -        case KC_V: // print version & information -            print("\n\t- Version -\n"); -            print("DESC: " STR(DESCRIPTION) "\n"); -            print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " -                  "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " -                  "VER: " STR(DEVICE_VER) "\n"); -            print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); -            /* build options */ -            print("OPTIONS:" -#ifdef PROTOCOL_PJRC -            " PJRC" -#endif -#ifdef PROTOCOL_LUFA -            " LUFA" -#endif -#ifdef PROTOCOL_VUSB -            " VUSB" -#endif -#ifdef BOOTMAGIC_ENABLE -            " BOOTMAGIC" -#endif -#ifdef MOUSEKEY_ENABLE -            " MOUSEKEY" -#endif -#ifdef EXTRAKEY_ENABLE -            " EXTRAKEY" -#endif -#ifdef CONSOLE_ENABLE -            " CONSOLE" -#endif -#ifdef COMMAND_ENABLE -            " COMMAND" -#endif -#ifdef NKRO_ENABLE -            " NKRO" -#endif -#ifdef KEYMAP_SECTION_ENABLE -            " KEYMAP_SECTION" -#endif -            " " STR(BOOTLOADER_SIZE) "\n"); -            print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) -                  " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ -                  " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); -            break; -        case KC_S: -            print("\n\t- Status -\n"); -            print_val_hex8(host_keyboard_leds()); -            print_val_hex8(keyboard_protocol); -            print_val_hex8(keyboard_idle); -#ifdef NKRO_ENABLE -            print_val_hex8(keyboard_nkro); -#endif -            print_val_hex32(timer_count); - -#ifdef PROTOCOL_PJRC -            print_val_hex8(UDCON); -            print_val_hex8(UDIEN); -            print_val_hex8(UDINT); -            print_val_hex8(usb_keyboard_leds); -            print_val_hex8(usb_keyboard_idle_count); -#endif +		// print version +        case MAGIC_KC(MAGIC_KEY_VERSION): +        	print_version(); +		    break; -#ifdef PROTOCOL_PJRC -#   if USB_COUNT_SOF -            print_val_hex8(usbSofCount); -#   endif -#endif +		// print status +		case MAGIC_KC(MAGIC_KEY_STATUS): +			print_status();              break; +  #ifdef NKRO_ENABLE -        case KC_N: -            clear_keyboard(); //Prevents stuck keys. + +		// NKRO toggle +        case MAGIC_KC(MAGIC_KEY_NKRO): +            clear_keyboard(); // clear to prevent stuck keys              keyboard_nkro = !keyboard_nkro;              if (keyboard_nkro)                  print("NKRO: on\n"); @@ -344,18 +423,78 @@ static bool command_common(uint8_t code)                  print("NKRO: off\n");              break;  #endif -        case KC_ESC: -        case KC_GRV: -        case KC_0: + +		// switch layers + +		case MAGIC_KC(MAGIC_KEY_LAYER0_ALT1): +		case MAGIC_KC(MAGIC_KEY_LAYER0_ALT2): +            switch_default_layer(0); +            break; + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + +		case MAGIC_KC(MAGIC_KEY_LAYER0): +            switch_default_layer(0); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER1): +            switch_default_layer(1); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER2): +            switch_default_layer(2); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER3): +            switch_default_layer(3); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER4): +            switch_default_layer(4); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER5): +            switch_default_layer(5); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER6): +            switch_default_layer(6); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER7): +            switch_default_layer(7); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER8): +            switch_default_layer(8); +            break; + +		case MAGIC_KC(MAGIC_KEY_LAYER9): +            switch_default_layer(9); +            break; +#endif + + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + +        case KC_F1 ... KC_F9: +            switch_default_layer((code - KC_F1) + 1); +            break;          case KC_F10:              switch_default_layer(0);              break; +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +          case KC_1 ... KC_9:              switch_default_layer((code - KC_1) + 1);              break; -        case KC_F1 ... KC_F9: -            switch_default_layer((code - KC_F1) + 1); +        case KC_0: +            switch_default_layer(0);              break; +#endif +          default:              print("?");              return false; diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index b57a6c1ced..92b18849bf 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -32,4 +32,125 @@ bool command_proc(uint8_t code);  #define command_proc(code)      false  #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_HELP1 +#define MAGIC_KEY_HELP1          H +#endif + +#ifndef MAGIC_KEY_HELP2 +#define MAGIC_KEY_HELP2          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_ALT1 +#define MAGIC_KEY_LAYER0_ALT1    ESC +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT2 +#define MAGIC_KEY_LAYER0_ALT2    GRAVE +#endif + +#ifndef MAGIC_KEY_LAYER0 +#define MAGIC_KEY_LAYER0         0 +#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     PAUSE +#endif + +#ifndef MAGIC_KEY_LOCK +#define MAGIC_KEY_LOCK           CAPS +#endif + +#ifndef MAGIC_KEY_EEPROM +#define MAGIC_KEY_EEPROM         E +#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) + +#endif
\ No newline at end of file diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index eb7b096bed..302b3ec87c 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -70,6 +70,7 @@ void keyboard_setup(void)  void keyboard_init(void)  { +      timer_init();      matrix_init();  #ifdef PS2_MOUSE_ENABLE @@ -90,6 +91,11 @@ void keyboard_init(void)  #ifdef BACKLIGHT_ENABLE      backlight_init();  #endif + +#if defined(NKRO_ENABLE) && defined(FORCE_NKRO) +	keyboard_nkro = true; +#endif +  }  /* diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h index d5fc051bf5..2e18dc2afa 100644 --- a/tmk_core/common/led.h +++ b/tmk_core/common/led.h @@ -34,8 +34,11 @@ extern "C" {  void led_set(uint8_t usb_led); +/* keyboard-specific LED functionality */ +void led_set_kb(uint8_t usb_led); +  #ifdef __cplusplus  }  #endif -#endif +#endif
\ No newline at end of file diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 85415df719..0b013fc989 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -64,8 +64,8 @@ void matrix_power_up(void);  void matrix_power_down(void);  /* keyboard-specific setup/loop functionality */ -void * matrix_init_kb(void); -void * matrix_scan_kb(void); +void matrix_init_kb(void); +void matrix_scan_kb(void);  #ifdef __cplusplus  } | 
