diff options
author | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
---|---|---|
committer | William Chang <william@factual.com> | 2019-11-20 22:17:07 -0800 |
commit | e7f4d56592b3975c38af329e77b4efd9108495e8 (patch) | |
tree | 0a416bccbf70bfdbdb9ffcdb3bf136b47378c014 /quantum/api | |
parent | 71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (diff) | |
parent | 8416a94ad27b3ff058576f09f35f0704a8b39ff3 (diff) |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'quantum/api')
-rw-r--r-- | quantum/api/api_sysex.c | 29 | ||||
-rw-r--r-- | quantum/api/api_sysex.h | 2 |
2 files changed, 15 insertions, 16 deletions
diff --git a/quantum/api/api_sysex.c b/quantum/api/api_sysex.c index 89c66a2a20..07c90cf804 100644 --- a/quantum/api/api_sysex.c +++ b/quantum/api/api_sysex.c @@ -18,7 +18,7 @@ #include "print.h" #include "qmk_midi.h" -void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint16_t length) { +void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t* bytes, uint16_t length) { // SEND_STRING("\nTX: "); // for (uint8_t i = 0; i < length; i++) { // send_byte(bytes[i]); @@ -29,7 +29,6 @@ void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, return; } - // The buffer size required is calculated as the following // API_SYSEX_MAX_SIZE is the maximum length // In addition to that we have a two byte message header consisting of the message_type and data_type @@ -37,14 +36,14 @@ void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, // We just add one extra byte in case it's not divisible by 7 // Then we have an unencoded header consisting of 4 bytes // Plus a one byte terminator - const unsigned message_header = 2; + const unsigned message_header = 2; const unsigned unencoded_message = API_SYSEX_MAX_SIZE + message_header; const unsigned encoding_overhead = unencoded_message / 7 + 1; - const unsigned encoded_size = unencoded_message + encoding_overhead; - const unsigned unencoded_header = 4; - const unsigned terminator = 1; - const unsigned buffer_size = encoded_size + unencoded_header + terminator; - uint8_t buffer[encoded_size + unencoded_header + terminator]; + const unsigned encoded_size = unencoded_message + encoding_overhead; + const unsigned unencoded_header = 4; + const unsigned terminator = 1; + const unsigned buffer_size = encoded_size + unencoded_header + terminator; + uint8_t buffer[encoded_size + unencoded_header + terminator]; // The unencoded header buffer[0] = 0xF0; buffer[1] = 0x00; @@ -53,16 +52,16 @@ void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, // We copy the message to the end of the array, this way we can do an inplace encoding, using the same // buffer for both input and output - const unsigned message_size = length + message_header; - uint8_t* unencoded_start = buffer + buffer_size - message_size; - uint8_t* ptr = unencoded_start; - *(ptr++) = message_type; - *(ptr++) = data_type; + const unsigned message_size = length + message_header; + uint8_t* unencoded_start = buffer + buffer_size - message_size; + uint8_t* ptr = unencoded_start; + *(ptr++) = message_type; + *(ptr++) = data_type; memcpy(ptr, bytes, length); unsigned encoded_length = sysex_encode(buffer + unencoded_header, unencoded_start, message_size); - unsigned final_size = unencoded_header + encoded_length + terminator; - buffer[final_size - 1] = 0xF7; + unsigned final_size = unencoded_header + encoded_length + terminator; + buffer[final_size - 1] = 0xF7; midi_send_array(&midi_device, final_size, buffer); // SEND_STRING("\nTD: "); diff --git a/quantum/api/api_sysex.h b/quantum/api/api_sysex.h index a23f00f572..58b8cbb663 100644 --- a/quantum/api/api_sysex.h +++ b/quantum/api/api_sysex.h @@ -19,7 +19,7 @@ #include "api.h" -void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint16_t length); +void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t* bytes, uint16_t length); #define SEND_BYTES(mt, dt, b, l) send_bytes_sysex(mt, dt, b, l) |