Midi controller Madness. Devving and works on T3.6. Tested on T4.0 and T4.1.
Need to implement a working relationship between current data structure and non-volatile memory. Shoehorning T4.1 into hardware platform anyway so warming up the solder iron to attach Flash to underside.
Hands up with HowTo store/retrieve variables like this:-
Thanks in advance for any insights.
Need to implement a working relationship between current data structure and non-volatile memory. Shoehorning T4.1 into hardware platform anyway so warming up the solder iron to attach Flash to underside.
Hands up with HowTo store/retrieve variables like this:-
Code:
#define ROWS 4
#define COLS 144
struct JVData {
uint16_t Param; // Could be a Sysex byte, CC# or NRPN#
uint16_t CurVal; // Could be a Sysex byte, CC or NRPN value
uint16_t OldVal; // Could be a Sysex byte, CC or NRPN value
int MinVal; // int aimed at slider and encoder values.
int MaxVal; // int aimed at slider and encoder values.
int CommandType; // Proposed 0 = disabled, 1 = Single, 2 = Two byte, 3 = Three byte, and 4 = Four byte messages
int ChecksumType; // Proposed 0 = disabled, 1 = Roland type. Others maybe added
uint16_t SlideColor; // Colors are addressed as HSV using three HEX digits. More than adequate for an ILI9431.
uint16_t BackColor; // Just easier to think of a Color and create it with three digits as opposed to wrestling
uint16_t HandleColor; // with 565's packed RGB format. Such is the art of True Laziness.
bool DrawColor;
int HandleShape;
int HandleSize;
int TriCursOffset;
uint16_t TickColor;
uint16_t CursorColor;
uint16_t CursorFillColor;
uint16_t ValueTextColor;
uint16_t ValueTextBackColor;
char UpperName[7]; // Constrained on an ILI9431
uint16_t UpperNameTextColor;
uint16_t UpperNameTextBackColor;
char LowerName[7];
uint16_t LowerNameTextColor;
uint16_t LowerNameTextBackColor;
};
JVData JVData_arr[ROWS][COLS] = {
{
{0x01, 0, 0, 0, 1, 1, 1, 0x1FF, 0x085, 0x1FF, true, 1, 10, 0, 0x38F, 0x3FF, 0x0BB, 0x4FF, 0x085, "Tone ", 0x20F, 0x085, " I/O ", 0x20F, 0x085}, // Tone Switch
// Around 600 lines removed
{0x3F, 0, 0, 0, 127, 1, 1, 0x1FF, 0x885, 0x1FF, true, 1, 10, 0, 0x38F, 0x3FF, 0x0BB, 0x4FF, 0x885, " REV ", 0x20F, 0x885, " SEND ", 0x20F, 0x885},// Reverb Send Level
{0x26}// Checksum
}
};
Thanks in advance for any insights.