#include <util/delay.h>
#include "keycode.h"
#include "host.h"
+ #include "keymap.h"
#include "print.h"
#include "debug.h"
#include "util.h"
static uint8_t numkey2num(uint8_t code);
static void switch_layer(uint8_t layer);
- static void clear_keyboard(void);
typedef enum { ONESHOT, CONSOLE, MOUSEKEY } cmdstate_t;
break;
#ifdef NKRO_ENABLE
case KC_N:
+ clear_keyboard(); //Prevents stuck keys.
keyboard_nkro = !keyboard_nkro;
if (keyboard_nkro)
print("NKRO: enabled\n");
default_layer = layer;
print("switch to "); print_val_hex8(layer);
}
-
- static void clear_keyboard(void)
- {
- host_clear_keys();
- host_clear_mods();
- host_send_keyboard_report();
-
- host_system_send(0);
- host_consumer_send(0);
-
- #ifdef MOUSEKEY_ENABLE
- mousekey_clear();
- mousekey_send();
- #endif
- }
#define HOST_H
#include <stdint.h>
+#include <stdbool.h>
#include "report.h"
#include "host_driver.h"
void host_add_key(uint8_t key);
void host_del_key(uint8_t key);
void host_clear_keys(void);
- void host_add_mod_bit(uint8_t mod);
- void host_del_mod_bit(uint8_t mod);
+
+ uint8_t host_get_mods(void);
+ void host_add_mods(uint8_t mods);
+ void host_del_mods(uint8_t mods);
void host_set_mods(uint8_t mods);
void host_clear_mods(void);
+
uint8_t host_has_anykey(void);
uint8_t host_has_anymod(void);
uint8_t host_get_first_key(void);