Code cleanup
This commit is contained in:
parent
ad6359a2ad
commit
69fd50b6b7
@ -10,13 +10,11 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <Keypad.h>
|
#include <Keypad.h>
|
||||||
|
|
||||||
const uint8_t USB_LED_NUM_LOCK = 0;
|
const uint8_t USB_LED_CAPS_LOCK = 1; // Caps lock LED definition from HID spec
|
||||||
const uint8_t USB_LED_CAPS_LOCK = 1;
|
|
||||||
const uint8_t USB_LED_SCROLL_LOCK = 2;
|
|
||||||
|
|
||||||
const uint16_t KEY_OFFSET = 0xAA00; // Offset to apply for not interfere with already defined keyboard keys
|
const uint16_t KEY_OFFSET = 0xAA00; // Offset to apply for not interfere with already defined keyboard keys
|
||||||
const uint16_t KEY_FN = 1 + KEY_OFFSET; // Function layer 1 button
|
const uint16_t KEY_FN = 1 + KEY_OFFSET; // Function layer button reference
|
||||||
const uint16_t KEY_WIN_LATCH = 2 + KEY_OFFSET; // Function layer 2 button
|
const uint16_t KEY_GUI_LATCH = 2 + KEY_OFFSET; // GUI latching (ex: Win) button reference
|
||||||
|
|
||||||
const uint8_t NBR_OF_BUTTONS = 42; // Number of buttons used (42 in this case)
|
const uint8_t NBR_OF_BUTTONS = 42; // Number of buttons used (42 in this case)
|
||||||
|
|
||||||
@ -87,7 +85,7 @@ Button buttons[NBR_OF_BUTTONS] =
|
|||||||
/* 5 */ {KEY_R, KEY_F4, KEY_F15, IDLE, NO_KEY, false},
|
/* 5 */ {KEY_R, KEY_F4, KEY_F15, IDLE, NO_KEY, false},
|
||||||
/* 6 */ {KEY_T, KEY_F5, KEY_F16, IDLE, NO_KEY, false},
|
/* 6 */ {KEY_T, KEY_F5, KEY_F16, IDLE, NO_KEY, false},
|
||||||
/* 7 */ {KEY_Y, KEY_F6, KEY_TILDE, IDLE, NO_KEY, false},
|
/* 7 */ {KEY_Y, KEY_F6, KEY_TILDE, IDLE, NO_KEY, false},
|
||||||
/* 8 */ {KEY_U, KEY_F7, KEY_WIN_LATCH, IDLE, NO_KEY, false},
|
/* 8 */ {KEY_U, KEY_F7, KEY_GUI_LATCH, IDLE, NO_KEY, false},
|
||||||
/* 9 */ {KEY_I, KEY_F8, KEY_LEFT_GUI, IDLE, NO_KEY, false},
|
/* 9 */ {KEY_I, KEY_F8, KEY_LEFT_GUI, IDLE, NO_KEY, false},
|
||||||
/* 10 */ {KEY_O, KEY_F9, NO_KEY, IDLE, NO_KEY, false},
|
/* 10 */ {KEY_O, KEY_F9, NO_KEY, IDLE, NO_KEY, false},
|
||||||
/* 11 */ {KEY_P, KEY_F10, KEY_CAPS_LOCK, IDLE, NO_KEY, false},
|
/* 11 */ {KEY_P, KEY_F10, KEY_CAPS_LOCK, IDLE, NO_KEY, false},
|
||||||
@ -146,7 +144,7 @@ uint8_t set_key(uint16_t keycode, uint8_t kstate)
|
|||||||
{
|
{
|
||||||
if (keycode == NO_KEY || keycode == KEY_FN) return 0;
|
if (keycode == NO_KEY || keycode == KEY_FN) return 0;
|
||||||
|
|
||||||
if (keycode == KEY_WIN_LATCH)
|
if (keycode == KEY_GUI_LATCH)
|
||||||
{
|
{
|
||||||
win_latched = true;
|
win_latched = true;
|
||||||
return 1;
|
return 1;
|
||||||
@ -183,7 +181,7 @@ uint8_t set_key(uint16_t keycode, uint8_t kstate)
|
|||||||
/**
|
/**
|
||||||
* process_keypad
|
* process_keypad
|
||||||
*
|
*
|
||||||
* @return uint8_t 1 if key(s) processed, 0 if not.
|
* @return uint8_t 1 if key(s) processed, 0 if not.
|
||||||
*/
|
*/
|
||||||
uint8_t process_keys()
|
uint8_t process_keys()
|
||||||
{
|
{
|
||||||
@ -195,13 +193,14 @@ uint8_t process_keys()
|
|||||||
|
|
||||||
for (int i = 0; i < MAX_SIMULTANIOUS_KEYS; i++)
|
for (int i = 0; i < MAX_SIMULTANIOUS_KEYS; i++)
|
||||||
{
|
{
|
||||||
/* Process key press/release */
|
/* Update button table if key pressed/releaseed */
|
||||||
if ((kp_keypad.key[i].kstate == PRESSED || kp_keypad.key[i].kstate == RELEASED) && (kp_keypad.key[i].stateChanged == true))
|
if ((kp_keypad.key[i].kstate == PRESSED || kp_keypad.key[i].kstate == RELEASED) && (kp_keypad.key[i].stateChanged == true))
|
||||||
{
|
{
|
||||||
buttons[kp_keypad.key[i].kchar - 1].run_keycode = true;
|
buttons[kp_keypad.key[i].kchar - 1].run_keycode = true;
|
||||||
buttons[kp_keypad.key[i].kchar - 1].kstate = kp_keypad.key[i].kstate;
|
buttons[kp_keypad.key[i].kchar - 1].kstate = kp_keypad.key[i].kstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Skip if key is not pressed */
|
||||||
if (kp_keypad.key[i].kstate == IDLE || kp_keypad.key[i].kstate == RELEASED) continue;
|
if (kp_keypad.key[i].kstate == IDLE || kp_keypad.key[i].kstate == RELEASED) continue;
|
||||||
|
|
||||||
/* Count number of corner keys pressed */
|
/* Count number of corner keys pressed */
|
||||||
@ -214,27 +213,21 @@ uint8_t process_keys()
|
|||||||
if (buttons[kp_keypad.key[i].kchar - 1].keycode == KEY_FN) fn_mode++;
|
if (buttons[kp_keypad.key[i].kchar - 1].keycode == KEY_FN) fn_mode++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enter bootloader if all four corner-buttons is pressed together */
|
|
||||||
if (corner_pressed == 4)
|
if (corner_pressed == 4)
|
||||||
{
|
{
|
||||||
/* Release all keys and reboot to bootloader */
|
|
||||||
Keyboard.releaseAll();
|
Keyboard.releaseAll();
|
||||||
status_led.on();
|
status_led.on();
|
||||||
status_led.update();
|
status_led.update();
|
||||||
delay(200); // Wait for usb to settle before rebooting
|
delay(200); // Wait for usb to settle before rebooting
|
||||||
_reboot_Teensyduino_();
|
_reboot_Teensyduino_();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Execute key commands */
|
|
||||||
for (int i = 0; i < NBR_OF_BUTTONS; i++)
|
for (int i = 0; i < NBR_OF_BUTTONS; i++)
|
||||||
{
|
{
|
||||||
/* Check if key should be processed */
|
/* Check if key is ready to be set. Else skip to next button */
|
||||||
if (buttons[i].run_keycode == false) continue;
|
if (buttons[i].run_keycode == false) continue;
|
||||||
|
|
||||||
/* Reset run_keycode flag */
|
|
||||||
buttons[i].run_keycode = false;
|
buttons[i].run_keycode = false;
|
||||||
|
|
||||||
/* Check if key pressed or released */
|
|
||||||
if (buttons[i].kstate == RELEASED)
|
if (buttons[i].kstate == RELEASED)
|
||||||
{
|
{
|
||||||
set_key(buttons[i].last_keycode, RELEASED);
|
set_key(buttons[i].last_keycode, RELEASED);
|
||||||
@ -282,7 +275,7 @@ void loop()
|
|||||||
if (current_timestamp >= indicator_timestamp)
|
if (current_timestamp >= indicator_timestamp)
|
||||||
{
|
{
|
||||||
indicator_timestamp = current_timestamp + 200;
|
indicator_timestamp = current_timestamp + 200;
|
||||||
|
|
||||||
/* Set status indication */
|
/* Set status indication */
|
||||||
if (keyboard_leds & (1 << USB_LED_CAPS_LOCK))
|
if (keyboard_leds & (1 << USB_LED_CAPS_LOCK))
|
||||||
{
|
{
|
||||||
@ -296,7 +289,7 @@ void loop()
|
|||||||
{
|
{
|
||||||
status_led.off();
|
status_led.off();
|
||||||
}
|
}
|
||||||
|
|
||||||
status_led.update();
|
status_led.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user