correct types in MidiMessage + do not copy data if jack_midi_event_reserve() failed
--- a/src/JackHandler.h Wed Oct 07 23:10:28 2020 +0200
+++ b/src/JackHandler.h Sun Oct 11 17:41:53 2020 +0200
@@ -57,8 +57,8 @@
*/
struct MidiMessage {
uint8_t buffer[4096] = {0};
- uint32_t size;
- uint32_t time;
+ size_t size;
+ jack_nframes_t time;
};
/**
@@ -84,7 +84,8 @@
MidiMessage m;
jack_ringbuffer_read(ringBuffer, (char*) &m, sizeof (MidiMessage));
jack_midi_data_t* midiData = jack_midi_event_reserve(jackPortBuffer, m.time, m.size);
- memcpy(midiData, m.buffer, m.size);
+ if (midiData) memcpy(midiData, m.buffer, m.size);
+ else /* error: not enough space TODO: store and send later */;
}
if (pthread_mutex_trylock(&processingLock) == 0) {