forked from mirrors/qmk_userspace
hhkb: refactored
This commit is contained in:
parent
9d7979931e
commit
06eb50be07
16 changed files with 354 additions and 217 deletions
|
@ -1,8 +1,11 @@
|
|||
#include <avr/interrupt.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#include "usb_keyboard.h"
|
||||
#include "print.h"
|
||||
|
||||
|
||||
static bool is_sent = false;
|
||||
|
||||
// which modifier keys are currently pressed
|
||||
// 1=left ctrl, 2=left shift, 4=left alt, 8=left gui
|
||||
// 16=right ctrl, 32=right shift, 64=right alt, 128=right gui
|
||||
|
@ -72,5 +75,45 @@ int8_t usb_keyboard_send(void)
|
|||
UEINTX = 0x3A;
|
||||
keyboard_idle_count = 0;
|
||||
SREG = intr_state;
|
||||
is_sent = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void usb_keyboard_init(void) {
|
||||
usb_keyboard_clear();
|
||||
is_sent = false;
|
||||
}
|
||||
|
||||
void usb_keyboard_clear(void) {
|
||||
usb_keyboard_clear_key();
|
||||
usb_keyboard_clear_mod();
|
||||
}
|
||||
|
||||
void usb_keyboard_clear_key(void) {
|
||||
for (int i = 0; i < 6; i++) keyboard_keys[i] = 0;
|
||||
}
|
||||
|
||||
void usb_keyboard_clear_mod(void) {
|
||||
keyboard_modifier_keys = 0;
|
||||
}
|
||||
|
||||
bool usb_keyboard_is_sent(void) {
|
||||
return is_sent;
|
||||
}
|
||||
|
||||
bool usb_keyboard_has_key(void) {
|
||||
uint8_t keys = 0;
|
||||
for (int i = 0; i < 6; i++) keys |= keyboard_keys[i];
|
||||
return keys ? true : false;
|
||||
}
|
||||
|
||||
bool usb_keyboard_has_mod(void) {
|
||||
return keyboard_modifier_keys ? true : false;
|
||||
}
|
||||
|
||||
void usb_keyboard_print(void) {
|
||||
print("\nkeys: ");
|
||||
for (int i = 0; i < 6; i++) { phex(keyboard_keys[i]); print(" "); }
|
||||
print("\n");
|
||||
print("mods: "); phex(keyboard_modifier_keys); print("\n");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue