diff --git a/src/serialmididevice.cpp b/src/serialmididevice.cpp index 497db2c..6c484cf 100644 --- a/src/serialmididevice.cpp +++ b/src/serialmididevice.cpp @@ -60,26 +60,20 @@ void CSerialMIDIDevice::Process (void) return; } - printf("Incoming MIDI data:\n"); - for (uint16_t i = 0; i < nResult; i++) + if (m_pConfig->GetMIDIDumpEnabled ()) { - if((i % 8) == 0) - printf("%04d:",i); - printf(" 0x%02x",Buffer[i]); - if((i > 1 ) && (i % 8) == 0) + printf("Incoming MIDI data:\n"); + for (uint16_t i = 0; i < nResult; i++) + { + if((i % 8) == 0) + printf("%04d:",i); + printf(" 0x%02x",Buffer[i]); + if((i > 1 ) && (i % 8) == 0) + printf("\n"); + } + if((nResult % 8) != 0) printf("\n"); } - if((i % 8) != 0) - printf("\n"); - - - if(Buffer[0] == 0xF0) - { - // SYSEX found - m_nSysEx=nResult; - memcpy(m_SerialMessage, Buffer, nResult); - return; - } // Process MIDI messages // See: https://www.midi.org/specifications/item/table-1-summary-of-midi-message @@ -89,6 +83,13 @@ void CSerialMIDIDevice::Process (void) { u8 uchData = Buffer[i]; + if(uchData == 0xF0) + { + // SYSEX found + m_SerialMessage[m_nSysEx++]=uchData; + continue; + } + if(m_nSysEx > 0) { m_SerialMessage[m_nSysEx++]=uchData;