From 6da14e1590935710055ebc81ba55017b457ca1ad Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Tue, 22 Jul 2025 22:00:00 +0200 Subject: Initial daemon implementation, no routing yet --- daemon/src/message.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 daemon/src/message.h (limited to 'daemon/src/message.h') diff --git a/daemon/src/message.h b/daemon/src/message.h new file mode 100644 index 0000000..9339118 --- /dev/null +++ b/daemon/src/message.h @@ -0,0 +1,42 @@ +#pragma once + +#include "types.h" + +#include +#include +#include + +namespace midi_router +{ + +struct Message +{ + enum class Type + { + NOTE_OFF = 0x8u, + NOTE_ON = 0x9u, + POLY_AT = 0xAu, + CONTROL_CHANGE = 0xBu, + PROGRAM_CHANGE = 0xCu, + CHANNEL_AT = 0xDu, + PITCH_WHEEL = 0xEu, + + CLOCK = 0xF8u, + MEAS_END = 0xF9u, + START = 0xFAu, + CONTINUE = 0xFBu, + STOP = 0xFCu, + }; + + Device_Id const & source_id; + std::array const bytes; + + Type + type() const + { + if (bytes[0] & 0xF0 == 0xF0) return static_cast(bytes[0]); + else return static_cast(bytes[0] >> 4); + } +}; + +} // namespace midi_router -- cgit v1.2.3