i guess we're running out of memory

This commit is contained in:
Jeremie GABOLDE 2022-09-18 16:09:53 +02:00
parent 38e3882d6a
commit ac57e8c9cb
2 changed files with 80 additions and 108 deletions

View File

@ -18,21 +18,8 @@ struct MemSlot
MemSlot memory[] = //128 bytes for the Teensy LC MemSlot memory[] = //128 bytes for the Teensy LC
{ {
{"prst", 1, 0}, {"prst", 1, 0},
{"p1_1", 2, 63}, {"p2_1", 2, 63},
{"p1_2", 3, 63}, {"p2_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}
}; };
@ -52,24 +39,9 @@ MenuItem menuEntries[] =
{ {
{"", true, "prst"}, {"", true, "prst"},
{"", false, "edit"}, {"", false, "edit"},
{"/edit", false, "p1"},
{"/edit", false, "p2"}, {"/edit", false, "p2"},
{"/edit", false, "p3"}, {"/edit/p2", true, "p2_1"},
{"/edit/p1", true, "p1_1"}, {"/edit/p2", true, "p2_2"},
{"/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"},*/
}; };
String menuCurrentPath = ""; String menuCurrentPath = "";
@ -88,7 +60,7 @@ SevSeg sevseg;
/* /*
* key button matrix * key button matrix
*/ */
#include <Key.h> //#include <Key.h>
#include <Keypad.h> #include <Keypad.h>
const byte rows = 4; //four rows const byte rows = 4; //four rows
@ -113,7 +85,6 @@ byte rotaryEncoderState = 0;
// Rotary push button // Rotary push button
const int BUTTON_Rotary = 4; const int BUTTON_Rotary = 4;
bool BUTTON_Rotary_lastState = HIGH;
/* /*
* mode presets and action * mode presets and action
@ -123,16 +94,16 @@ bool BUTTON_Rotary_lastState = HIGH;
/* /*
* custom display animations * custom display animations
*/ */
#include "animations.h" //#include "animations.h"
int animationFrame = 0; //int animationFrame = 0;
bool animationLooping = true; //bool animationLooping = true;
/* /*
* time cooldown managment * time cooldown managment
*/ */
unsigned int lastInputMillis = 0; unsigned int lastInputMillis = 0;
unsigned int inputCoolDown = 50; unsigned int inputCoolDown = 10;
unsigned int sevSegCoolDown = 5000; unsigned int sevSegCoolDown = 5000;
/* /*
@ -197,20 +168,19 @@ void loop()
{ {
char customKey = keypad.getKey(); char customKey = keypad.getKey();
rotaryEncoderState = rotaryEncoder.rotate();
//Serial.println(customKey);
if (customKey) if (customKey)
{ {
sendInputOuput(customKey); sendInputOuput(customKey);
} }
if (digitalRead(BUTTON_Rotary) == LOW && BUTTON_Rotary_lastState == HIGH) // = pressed if (rotaryEncoder.push() == 1) // = pressed
{ {
sendInputOuput(15); sendInputOuput(15);
} }
else if (rotaryEncoderState == 1 || rotaryEncoderState == 2)
rotaryEncoderState = rotaryEncoder.rotate();
if (rotaryEncoderState == 1 || rotaryEncoderState == 2)
{ {
if ( rotaryEncoderState == 1 ) //Turned Clockwise if ( rotaryEncoderState == 1 ) //Turned Clockwise
{ {
@ -223,26 +193,21 @@ void loop()
} }
} }
} }
//clear screen after no input delay
if (millis() > lastInputMillis + sevSegCoolDown) if (millis() > lastInputMillis + sevSegCoolDown)
{ {
sevseg.blank(); sevseg.blank();
} }
sevseg.refreshDisplay(); sevseg.refreshDisplay();
BUTTON_Rotary_lastState = digitalRead(BUTTON_Rotary);
}
void clickKey(int key)
{
Keyboard.press(key);
Keyboard.release(key);
} }
void printMenu() void printMenu()
{ {
Serial.println("printMenu"); Serial.println("printMenu");
Serial.println(menuCurrentPath + "/ "); Serial.print(menuCurrentPath + "/ ");
if (isInMenu) if (isInMenu)
{ {
if(menuIsSettingValue) if(menuIsSettingValue)
@ -254,7 +219,7 @@ void printMenu()
{ {
updateMenu(); updateMenu();
sevseg.setChars(menuCurrentItem.displayName.c_str()); sevseg.setChars(menuCurrentItem.displayName.c_str());
Serial.println("3e :" + menuCurrentItem.displayName); Serial.println(menuCurrentItem.displayName);
} }
} }
} }
@ -268,9 +233,7 @@ void updateMenu()
{ {
if(correspondingPathItemIndex == menuSelectionIndex) if(correspondingPathItemIndex == menuSelectionIndex)
{ {
Serial.println("1e :" + menuEntries[i].displayName);
menuCurrentItem = menuEntries[i]; menuCurrentItem = menuEntries[i];
Serial.println("2e :" + menuCurrentItem.displayName);
} }
correspondingPathItemIndex++; correspondingPathItemIndex++;
} }
@ -425,7 +388,7 @@ void sendInputOuput(int input)
{ {
lastInputMillis = millis(); lastInputMillis = millis();
sevseg.setNumber(input, -1); 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]; Action actionToRun = modes[mode][input-1];
if (actionToRun.keyID == -1) //menu if (actionToRun.keyID == -1) //menu
{ {
@ -454,6 +417,15 @@ void sendInputOuput(int input)
} }
else 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();
}

View File

@ -3,60 +3,60 @@
struct Action struct Action
{ {
int keyID; int keyID;
String arguments; int keyModifierID;
}; };
Action modes[][15] = Action modes[][15] =
{ {
{ {
{KEY_F13, ""}, {KEY_MEDIA_PREV_TRACK, -1},
{KEY_F14, ""}, {KEY_MEDIA_PLAY_PAUSE, -1},
{KEY_F15, ""}, {KEY_MEDIA_NEXT_TRACK, -1},
{KEY_F16, ""}, {KEY_F16, -1},
{KEY_F17, ""}, {KEY_F17, -1},
{KEY_F18, ""}, {KEY_F18, -1},
{KEY_F19, ""}, {KEY_F19, -1},
{KEY_F20, ""}, {KEY_F20, -1},
{KEY_F21, ""}, {KEY_F21, -1},
{KEY_F22, ""}, {KEY_F22, -1},
{KEY_F23, ""}, {KEY_F23, -1},
{-1, ""}, //menu {-1, -1}, //menu
{KEY_MEDIA_VOLUME_DEC, ""}, {KEY_MEDIA_VOLUME_DEC, -1},
{KEY_MEDIA_VOLUME_INC, ""}, {KEY_MEDIA_VOLUME_INC, -1},
{KEY_MEDIA_MUTE, ""} {KEY_MEDIA_MUTE, -1}
}, },
{ {
{KEY_F13, "MODIFIERKEY_SHIFT"}, {KEY_F13, -1},
{KEY_F14, "MODIFIERKEY_SHIFT"}, {KEY_F14, -1},
{KEY_F15, "MODIFIERKEY_SHIFT"}, {KEY_F15, -1},
{KEY_F16, "MODIFIERKEY_SHIFT"}, {KEY_F16, -1},
{KEY_F17, "MODIFIERKEY_SHIFT"}, {KEY_F17, -1},
{KEY_F18, "MODIFIERKEY_SHIFT"}, {KEY_F18, -1},
{KEY_F19, "MODIFIERKEY_SHIFT"}, {KEY_F19, -1},
{KEY_F20, "MODIFIERKEY_SHIFT"}, {KEY_F20, -1},
{KEY_F21, "MODIFIERKEY_SHIFT"}, {KEY_F21, -1},
{KEY_F22, "MODIFIERKEY_SHIFT"}, {KEY_F22, -1},
{KEY_F23, "MODIFIERKEY_SHIFT"}, {KEY_F23, -1},
{-1, ""}, //menu {-1, -1}, //menu
{KEY_MEDIA_VOLUME_DEC, ""}, {KEYPAD_MINUS, -1},
{KEY_MEDIA_VOLUME_INC, ""}, {KEYPAD_PLUS, -1},
{KEY_MEDIA_MUTE, ""} {KEYPAD_ENTER, -1}
}, },
{ {
{KEY_MEDIA_PREV_TRACK, ""}, {KEY_F13, MODIFIERKEY_CTRL},
{KEY_MEDIA_PLAY_PAUSE, ""}, {KEY_F14, MODIFIERKEY_CTRL},
{KEY_MEDIA_NEXT_TRACK, ""}, {KEY_F15, MODIFIERKEY_CTRL},
{KEY_F16, "MODIFIERKEY_CTRL"}, {KEY_F16, MODIFIERKEY_CTRL},
{KEY_F17, "MODIFIERKEY_CTRL"}, {KEY_F17, MODIFIERKEY_CTRL},
{KEY_F18, "MODIFIERKEY_CTRL"}, {KEY_F18, MODIFIERKEY_CTRL},
{KEY_F19, "MODIFIERKEY_CTRL"}, {KEY_F19, MODIFIERKEY_CTRL},
{KEY_F20, "MODIFIERKEY_CTRL"}, {KEY_F20, MODIFIERKEY_CTRL},
{KEY_F21, "MODIFIERKEY_CTRL"}, {KEY_F21, MODIFIERKEY_CTRL},
{KEY_F22, "MODIFIERKEY_CTRL"}, {KEY_F22, MODIFIERKEY_CTRL},
{KEY_F23, "MODIFIERKEY_CTRL"}, {KEY_F23, MODIFIERKEY_CTRL},
{-1, ""}, //menu {-1, -1}, //menu
{KEY_MEDIA_VOLUME_DEC, ""}, {KEYPAD_MINUS, MODIFIERKEY_CTRL},
{KEY_MEDIA_VOLUME_INC, ""}, {KEYPAD_PLUS, MODIFIERKEY_CTRL},
{KEY_MEDIA_MUTE, ""} {KEYPAD_ENTER, MODIFIERKEY_CTRL}
} }
}; };