diff --git a/src/main_osp.cc b/src/main_osp.cc index 4d7ef5d..971cb90 100644 --- a/src/main_osp.cc +++ b/src/main_osp.cc @@ -21,57 +21,6 @@ float DSY_SDRAM_BSS sdram_block1[4000000]; -namespace Heck::OSP { - struct MidiLoggerBuffered { - - void push(const ld::MidiEvent& msg) - { - event_log_.PushBack(msg); - } - - void print() - { - u32 time_now{ 0 }; - if (!event_log_.IsEmpty()) { - auto msg = event_log_.PopFront(); - switch (msg.type) { - case ld::MidiMessageType::SystemRealTime: { - if constexpr (Constants::Developer::LOG_MIDI_REALTIME) { - char outstr[256]; - char rttype_str[32]; - dz::GetMidiRTTypeAsString(msg, rttype_str); - sprintf(outstr, "RT: type: %s\n", rttype_str); - if (msg.srt_type != ld::TimingClock) { - seed.PrintLine("%s", outstr); - } - } - } break; - case ld::NoteOn: - case ld::NoteOff: - case ld::MidiMessageType::ControlChange: { - if constexpr (Constants::Developer::LOG_MIDI_NOTESANDCC) { - char outstr[256]; - char type_str[32]; - dz::GetMidiTypeAsString(msg, type_str); - sprintf( - outstr, - "time-last:\t%ld\ttype: %s\tChannel: %d\tData MSB: " - "%d\tData LSB: %d\n", - time_now, - type_str, - msg.channel, - msg.data[0], - msg.data[1]); - seed.PrintLine("%s", outstr); - } - } break; - } - } - } - - ld::FIFO event_log_{}; - }; -} // namespace Heck::OSP namespace Heck::OSP { namespace State { bool record_mode{ false }; @@ -191,7 +140,9 @@ namespace Heck::OSP { void midi_realtime_handler(const ld::MidiEvent& msg) { - logger_midi.push(msg); + if constexpr (Constants::Developer::LOG_MIDI_REALTIME) { + logger_midi.push(msg); + } switch (msg.srt_type) { case ld::TimingClock: clock.tick_advance(); @@ -282,7 +233,9 @@ namespace Heck::OSP { { while (midi.HasEvents()) { ld::MidiEvent msg = midi.PopEvent(); - logger_midi.push(msg); + if constexpr (Constants::Developer::LOG_MIDI_REALTIME) { + logger_midi.push(msg); + } midi_dispatch(msg, false); } } diff --git a/src/osp_utils.hh b/src/osp_utils.hh index 2b32d92..01b33a9 100644 --- a/src/osp_utils.hh +++ b/src/osp_utils.hh @@ -1,6 +1,7 @@ #ifndef HECK_OSP_UTILS_HH #define HECK_OSP_UTILS_HH +#include "dizzy.hh" #include "daisy_seed.h" #include "utils.hh" @@ -77,4 +78,52 @@ namespace Heck::OSP { } // namespace Sig } // namespace Heck::OSP + +namespace Heck::OSP { + struct MidiLoggerBuffered { + + void push(const ld::MidiEvent& msg) + { + event_log_.PushBack(msg); + } + + void print() + { + u32 time_now{ 0 }; + if (!event_log_.IsEmpty()) { + auto msg = event_log_.PopFront(); + switch (msg.type) { + case ld::MidiMessageType::SystemRealTime: { + char outstr[256]; + char rttype_str[32]; + dz::GetMidiRTTypeAsString(msg, rttype_str); + sprintf(outstr, "RT: type: %s\n", rttype_str); + if (msg.srt_type != ld::TimingClock) { + ld::DaisySeed::PrintLine("%s", outstr); + } + } break; + case ld::NoteOn: + case ld::NoteOff: + case ld::MidiMessageType::ControlChange: { + char outstr[256]; + char type_str[32]; + dz::GetMidiTypeAsString(msg, type_str); + sprintf( + outstr, + "time-last:\t%ld\ttype: %s\tChannel: %d\tData MSB: " + "%d\tData LSB: %d\n", + time_now, + type_str, + msg.channel, + msg.data[0], + msg.data[1]); + ld::DaisySeed::PrintLine("%s", outstr); + } break; + } + } + } + + ld::FIFO event_log_{}; + }; +} // namespace Heck::OSP #endif // HECK_DAISY_UTILS_HH \ No newline at end of file