Evoral: more useful output if there's an illega MIDI event sent to SMF or Sequence

This commit is contained in:
Paul Davis
2025-11-17 14:34:22 -07:00
parent 30e1567e23
commit 2c7841777b
2 changed files with 13 additions and 2 deletions

View File

@@ -490,7 +490,13 @@ SMF::append_event_delta (uint32_t delta_t, uint32_t size, const uint8_t* buf, ev
} else {
if (!midi_event_is_valid(buf, size)) {
cerr << "WARNING: SMF ignoring illegal MIDI event" << endl;
std::cerr << "WARNING: SMF ignoring illegal MIDI event (size " << size << "): ";
std::cerr << std::hex;
for (size_t n = 0; n < size; ++n) {
std::cerr << "0x" << (int) buf[n] << ' ';
}
std::cerr << std::dec << std::endl;
PBD::stacktrace (std::cerr, 9);
return 0;
}

View File

@@ -949,7 +949,12 @@ Sequence<Time>::append (const Event<Time>& ev, event_id_t evid)
assert(_writing);
if (!midi_event_is_valid(ev.buffer(), ev.size())) {
cerr << "WARNING: Sequence ignoring illegal MIDI event" << endl;
std::cerr << "WARNING: Sequence ignoring illegal MIDI event (size " << ev.size() << "): ";
std::cerr << std::hex;
for (size_t n = 0; n < ev.size(); ++n) {
std::cerr << "0x" << (int) ev.buffer()[n] << ' ';
}
std::cerr << std::dec << std::endl;
return;
}