From e828a818ef4a8258a40b393f5fc5679edafd3581 Mon Sep 17 00:00:00 2001 From: Frank Adams Date: Tue, 16 Jul 2019 22:38:51 -0700 Subject: [PATCH] Added check for full slots --- .../HP_Pavilion_DV9000/HP_DV9000_Keyboard.ino | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Example_Keyboards/HP_Pavilion_DV9000/HP_DV9000_Keyboard.ino b/Example_Keyboards/HP_Pavilion_DV9000/HP_DV9000_Keyboard.ino index 912d343..e349905 100644 --- a/Example_Keyboards/HP_Pavilion_DV9000/HP_DV9000_Keyboard.ino +++ b/Example_Keyboards/HP_Pavilion_DV9000/HP_DV9000_Keyboard.ino @@ -17,6 +17,7 @@ // // Revision History // Initial Release Nov 18, 2018 +// Rev 1 July 16, 2019 - check if slots are full when detecting a key press // #define MODIFIERKEY_FN 0x8f // give Fn key a fake HID code #define CAPS_LED 13 // Teensy LED shows Caps-Lock @@ -189,7 +190,12 @@ void clear_slot(int key) { else if (slot6 == key) { 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 @@ -343,7 +349,7 @@ void loop() { // // ***********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 - 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" 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