From ac57e8c9cb8bcabeed6149dac0382018958ef80c Mon Sep 17 00:00:00 2001 From: Jeremie GABOLDE Date: Sun, 18 Sep 2022 16:09:53 +0200 Subject: [PATCH] i guess we're running out of memory --- Maybe/Maybe.ino | 94 ++++++++++++++++------------------------------ Maybe/modeAction.h | 94 +++++++++++++++++++++++----------------------- 2 files changed, 80 insertions(+), 108 deletions(-) diff --git a/Maybe/Maybe.ino b/Maybe/Maybe.ino index 5c84245..6804944 100644 --- a/Maybe/Maybe.ino +++ b/Maybe/Maybe.ino @@ -16,23 +16,10 @@ struct MemSlot }; MemSlot memory[] = //128 bytes for the Teensy LC -{ +{ {"prst", 1, 0}, - {"p1_1", 2, 63}, - {"p1_2", 3, 63}, - {"p1_3", 4, 63}, - {"p1_4", 5, 63}, - {"p1_5", 6, 63}, - {"p1_6", 7, 63}, - {"p1_7", 8, 63}, - {"p1_8", 9, 63}, - {"p1_9", 10, 63}, - {"p1_a", 11, 63}, - {"p1_b", 12, 63}, - {"p1_c", 13, 63}, - {"p1_d", 14, 63}, - {"p1_e", 15, 63}, - {"p1_f", 16, 63} + {"p2_1", 2, 63}, + {"p2_2", 3, 63}, }; @@ -52,24 +39,9 @@ MenuItem menuEntries[] = { {"", true, "prst"}, {"", false, "edit"}, - {"/edit", false, "p1"}, {"/edit", false, "p2"}, - {"/edit", false, "p3"}, - {"/edit/p1", true, "p1_1"}, - {"/edit/p1", true, "p1_2"}, - {"/edit/p1", true, "p1_3"}, - {"/edit/p1", true, "p1_4"}, - {"/edit/p1", true, "p1_5"}, - {"/edit/p1", true, "p1_6"}, - {"/edit/p1", true, "p1_7"}, - {"/edit/p1", true, "p1_8"}, - {"/edit/p1", true, "p1_9"}, - {"/edit/p1", true, "p1_a"}, - //{"/edit/p1", true, "p1_b"}, - /*{"/edit/p1", true, "p1_c"}, - {"/edit/p1", true, "p1_d"}, - {"/edit/p1", true, "p1_e"}, - {"/edit/p1", true, "p1_f"},*/ + {"/edit/p2", true, "p2_1"}, + {"/edit/p2", true, "p2_2"}, }; String menuCurrentPath = ""; @@ -88,7 +60,7 @@ SevSeg sevseg; /* * key button matrix */ -#include +//#include #include const byte rows = 4; //four rows @@ -113,7 +85,6 @@ byte rotaryEncoderState = 0; // Rotary push button const int BUTTON_Rotary = 4; -bool BUTTON_Rotary_lastState = HIGH; /* * mode presets and action @@ -123,16 +94,16 @@ bool BUTTON_Rotary_lastState = HIGH; /* * custom display animations */ -#include "animations.h" +//#include "animations.h" -int animationFrame = 0; -bool animationLooping = true; +//int animationFrame = 0; +//bool animationLooping = true; /* * time cooldown managment */ unsigned int lastInputMillis = 0; -unsigned int inputCoolDown = 50; +unsigned int inputCoolDown = 10; unsigned int sevSegCoolDown = 5000; /* @@ -196,21 +167,20 @@ void loop() if (millis() > lastInputMillis + inputCoolDown) { char customKey = keypad.getKey(); - - rotaryEncoderState = rotaryEncoder.rotate(); - - //Serial.println(customKey); if (customKey) { sendInputOuput(customKey); } - - if (digitalRead(BUTTON_Rotary) == LOW && BUTTON_Rotary_lastState == HIGH) // = pressed + + if (rotaryEncoder.push() == 1) // = pressed { sendInputOuput(15); - } - else if (rotaryEncoderState == 1 || rotaryEncoderState == 2) + } + + rotaryEncoderState = rotaryEncoder.rotate(); + + if (rotaryEncoderState == 1 || rotaryEncoderState == 2) { if ( rotaryEncoderState == 1 ) //Turned Clockwise { @@ -223,26 +193,21 @@ void loop() } } } + + //clear screen after no input delay if (millis() > lastInputMillis + sevSegCoolDown) { sevseg.blank(); } + sevseg.refreshDisplay(); - BUTTON_Rotary_lastState = digitalRead(BUTTON_Rotary); - -} - -void clickKey(int key) -{ - Keyboard.press(key); - Keyboard.release(key); } void printMenu() { Serial.println("printMenu"); - Serial.println(menuCurrentPath + "/ "); + Serial.print(menuCurrentPath + "/ "); if (isInMenu) { if(menuIsSettingValue) @@ -254,7 +219,7 @@ void printMenu() { updateMenu(); sevseg.setChars(menuCurrentItem.displayName.c_str()); - Serial.println("3e :" + menuCurrentItem.displayName); + Serial.println(menuCurrentItem.displayName); } } } @@ -268,9 +233,7 @@ void updateMenu() { if(correspondingPathItemIndex == menuSelectionIndex) { - Serial.println("1e :" + menuEntries[i].displayName); menuCurrentItem = menuEntries[i]; - Serial.println("2e :" + menuCurrentItem.displayName); } correspondingPathItemIndex++; } @@ -425,7 +388,7 @@ void sendInputOuput(int input) { lastInputMillis = millis(); sevseg.setNumber(input, -1); - int mode = (getMemorySlot("prst")->value) % 3; + int mode = (getMemorySlot("prst")->value) % (sizeof(modes)/(sizeof(Action)*15)); Action actionToRun = modes[mode][input-1]; if (actionToRun.keyID == -1) //menu { @@ -454,6 +417,15 @@ void sendInputOuput(int input) } else { - clickKey(actionToRun.keyID); + clickKey(actionToRun.keyID, actionToRun.keyModifierID); } } + +void clickKey(int key, int modifier) +{ + if (modifier != -1) Keyboard.set_modifier(modifier); + Keyboard.press(key); + Keyboard.release(key); + Keyboard.set_modifier(0); + Keyboard.send_now(); +} diff --git a/Maybe/modeAction.h b/Maybe/modeAction.h index 9884734..d9fda83 100644 --- a/Maybe/modeAction.h +++ b/Maybe/modeAction.h @@ -3,60 +3,60 @@ struct Action { int keyID; - String arguments; + int keyModifierID; }; Action modes[][15] = { { - {KEY_F13, ""}, - {KEY_F14, ""}, - {KEY_F15, ""}, - {KEY_F16, ""}, - {KEY_F17, ""}, - {KEY_F18, ""}, - {KEY_F19, ""}, - {KEY_F20, ""}, - {KEY_F21, ""}, - {KEY_F22, ""}, - {KEY_F23, ""}, - {-1, ""}, //menu - {KEY_MEDIA_VOLUME_DEC, ""}, - {KEY_MEDIA_VOLUME_INC, ""}, - {KEY_MEDIA_MUTE, ""} + {KEY_MEDIA_PREV_TRACK, -1}, + {KEY_MEDIA_PLAY_PAUSE, -1}, + {KEY_MEDIA_NEXT_TRACK, -1}, + {KEY_F16, -1}, + {KEY_F17, -1}, + {KEY_F18, -1}, + {KEY_F19, -1}, + {KEY_F20, -1}, + {KEY_F21, -1}, + {KEY_F22, -1}, + {KEY_F23, -1}, + {-1, -1}, //menu + {KEY_MEDIA_VOLUME_DEC, -1}, + {KEY_MEDIA_VOLUME_INC, -1}, + {KEY_MEDIA_MUTE, -1} }, { - {KEY_F13, "MODIFIERKEY_SHIFT"}, - {KEY_F14, "MODIFIERKEY_SHIFT"}, - {KEY_F15, "MODIFIERKEY_SHIFT"}, - {KEY_F16, "MODIFIERKEY_SHIFT"}, - {KEY_F17, "MODIFIERKEY_SHIFT"}, - {KEY_F18, "MODIFIERKEY_SHIFT"}, - {KEY_F19, "MODIFIERKEY_SHIFT"}, - {KEY_F20, "MODIFIERKEY_SHIFT"}, - {KEY_F21, "MODIFIERKEY_SHIFT"}, - {KEY_F22, "MODIFIERKEY_SHIFT"}, - {KEY_F23, "MODIFIERKEY_SHIFT"}, - {-1, ""}, //menu - {KEY_MEDIA_VOLUME_DEC, ""}, - {KEY_MEDIA_VOLUME_INC, ""}, - {KEY_MEDIA_MUTE, ""} - }, + {KEY_F13, -1}, + {KEY_F14, -1}, + {KEY_F15, -1}, + {KEY_F16, -1}, + {KEY_F17, -1}, + {KEY_F18, -1}, + {KEY_F19, -1}, + {KEY_F20, -1}, + {KEY_F21, -1}, + {KEY_F22, -1}, + {KEY_F23, -1}, + {-1, -1}, //menu + {KEYPAD_MINUS, -1}, + {KEYPAD_PLUS, -1}, + {KEYPAD_ENTER, -1} + }, { - {KEY_MEDIA_PREV_TRACK, ""}, - {KEY_MEDIA_PLAY_PAUSE, ""}, - {KEY_MEDIA_NEXT_TRACK, ""}, - {KEY_F16, "MODIFIERKEY_CTRL"}, - {KEY_F17, "MODIFIERKEY_CTRL"}, - {KEY_F18, "MODIFIERKEY_CTRL"}, - {KEY_F19, "MODIFIERKEY_CTRL"}, - {KEY_F20, "MODIFIERKEY_CTRL"}, - {KEY_F21, "MODIFIERKEY_CTRL"}, - {KEY_F22, "MODIFIERKEY_CTRL"}, - {KEY_F23, "MODIFIERKEY_CTRL"}, - {-1, ""}, //menu - {KEY_MEDIA_VOLUME_DEC, ""}, - {KEY_MEDIA_VOLUME_INC, ""}, - {KEY_MEDIA_MUTE, ""} + {KEY_F13, MODIFIERKEY_CTRL}, + {KEY_F14, MODIFIERKEY_CTRL}, + {KEY_F15, MODIFIERKEY_CTRL}, + {KEY_F16, MODIFIERKEY_CTRL}, + {KEY_F17, MODIFIERKEY_CTRL}, + {KEY_F18, MODIFIERKEY_CTRL}, + {KEY_F19, MODIFIERKEY_CTRL}, + {KEY_F20, MODIFIERKEY_CTRL}, + {KEY_F21, MODIFIERKEY_CTRL}, + {KEY_F22, MODIFIERKEY_CTRL}, + {KEY_F23, MODIFIERKEY_CTRL}, + {-1, -1}, //menu + {KEYPAD_MINUS, MODIFIERKEY_CTRL}, + {KEYPAD_PLUS, MODIFIERKEY_CTRL}, + {KEYPAD_ENTER, MODIFIERKEY_CTRL} } };