Added check for full slots

This commit is contained in:
Frank Adams 2019-07-16 22:44:54 -07:00 committed by GitHub
parent 851600281a
commit da2a5345f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -17,7 +17,7 @@
// //
// Revision History // Revision History
// Initial Release Nov 15, 2018 // Initial Release Nov 15, 2018
// // Rev 1 July 16, 2019 - check if slots are full when detecting a key press
// //
#define MODIFIERKEY_FN 0x8f // give Fn key a HID code #define MODIFIERKEY_FN 0x8f // give Fn key a HID code
#define CAPS_LED 13 // Teensy LED shows Caps-Lock #define CAPS_LED 13 // Teensy LED shows Caps-Lock
@ -182,7 +182,12 @@ void clear_slot(int key) {
else if (slot6 == key) { else if (slot6 == key) {
slot6 = 0; slot6 = 0;
} }
slots_full = LOW; if (!slot1 || !slot2 || !slot3 || !slot4 || !slot5 || !slot6) {
slots_full = LOW; // slots are not full
}
else {
slots_full = HIGH; // slots are full
}
} }
// //
// Function to load the modifier key name into the appropriate mod variable // Function to load the modifier key name into the appropriate mod variable
@ -336,7 +341,7 @@ void loop() {
// //
// ***********Normal keys and media keys in this section // ***********Normal keys and media keys in this section
else if ((normal[x][y] != 0) || (media[x][y] != 0)) { // check if normal or media key exists at this location in the array else if ((normal[x][y] != 0) || (media[x][y] != 0)) { // check if normal or media key exists at this location in the array
if (!digitalRead(Col_IO[y]) && (old_key[x][y])) { // check if key is pressed and was not previously pressed if (!digitalRead(Col_IO[y]) && (old_key[x][y]) && (!slots_full)) { // check if key pressed and not previously pressed and slots not full
old_key[x][y] = LOW; // Save state of key as "pressed" old_key[x][y] = LOW; // Save state of key as "pressed"
if (Fn_pressed) { // Fn_pressed is active low so it is not pressed and normal key needs to be sent if (Fn_pressed) { // Fn_pressed is active low so it is not pressed and normal key needs to be sent
load_slot(normal[x][y]); //update first available slot with normal key name load_slot(normal[x][y]); //update first available slot with normal key name