Upper bound on length of version string for sysex message
This commit is contained in:
parent
660d6583b3
commit
9e76cfbdde
1 changed files with 3 additions and 2 deletions
|
@ -367,13 +367,14 @@ bool receiveSysexSettings(const uint8_t* data, const uint16_t length) {
|
||||||
//Send EEPROM and firmware versions
|
//Send EEPROM and firmware versions
|
||||||
void sendSysexVersion() {
|
void sendSysexVersion() {
|
||||||
char sysexMessage[] = "vvvNuEVIc04eevvvvvvvv"; //Placeholders for vendor and code
|
char sysexMessage[] = "vvvNuEVIc04eevvvvvvvv"; //Placeholders for vendor and code
|
||||||
|
uint8_t fwStrLen = min(strlen(FIRMWARE_VERSION), 8); //Limit firmware version string to 8 bytes
|
||||||
|
|
||||||
memcpy(sysexMessage, sysex_id, 3);
|
memcpy(sysexMessage, sysex_id, 3);
|
||||||
memcpy(sysexMessage+13, FIRMWARE_VERSION, min(strlen(FIRMWARE_VERSION), 8));
|
memcpy(sysexMessage+13, FIRMWARE_VERSION, fwStrLen);
|
||||||
|
|
||||||
*(uint16_t*)(sysexMessage+11) = convertToMidiValue(EEPROM_VERSION);
|
*(uint16_t*)(sysexMessage+11) = convertToMidiValue(EEPROM_VERSION);
|
||||||
|
|
||||||
uint8_t message_length = 13+strlen(FIRMWARE_VERSION);
|
uint8_t message_length = 13+fwStrLen;
|
||||||
|
|
||||||
usbMIDI.sendSysEx(message_length, (const uint8_t *)sysexMessage);
|
usbMIDI.sendSysEx(message_length, (const uint8_t *)sysexMessage);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue