cs-midi/MIDI_Parsers/MIDIReadEvent.hpp

36 lines
1.3 KiB
C++

#pragma once
#include <stdint.h>
#include <AH/PrintStream/PrintStream.hpp>
#include <Settings/NamespaceSettings.hpp>
BEGIN_CS_NAMESPACE
/// Values returned by the MIDI reading functions.
enum class MIDIReadEvent : uint8_t {
NO_MESSAGE = 0, ///< No new messages were received.
CHANNEL_MESSAGE = 1, ///< A MIDI Channel message was received.
SYSEX_MESSAGE = 2, ///< A MIDI System Exclusive message was received.
REALTIME_MESSAGE = 3, ///< A MIDI Real-Time message was received.
SYSEX_CHUNK = 4, ///< An incomplete System Exclusive message.
SYSCOMMON_MESSAGE = 5, ///< A MIDI System Common message was received.
};
inline FlashString_t enum_to_string(MIDIReadEvent evt) {
switch (evt) {
case MIDIReadEvent::NO_MESSAGE: return F("NO_MESSAGE");
case MIDIReadEvent::CHANNEL_MESSAGE: return F("CHANNEL_MESSAGE");
case MIDIReadEvent::SYSEX_MESSAGE: return F("SYSEX_MESSAGE");
case MIDIReadEvent::REALTIME_MESSAGE: return F("REALTIME_MESSAGE");
case MIDIReadEvent::SYSEX_CHUNK: return F("SYSEX_CHUNK");
case MIDIReadEvent::SYSCOMMON_MESSAGE: return F("SYSCOMMON_MESSAGE");
default: return F("<invalid>");
}
}
inline Print &operator<<(Print &p, MIDIReadEvent evt) {
return p << enum_to_string(evt);
}
END_CS_NAMESPACE