diff options
author | Eddy Pedroni <epedroni@pm.me> | 2025-07-23 14:05:13 +0200 |
---|---|---|
committer | Eddy Pedroni <epedroni@pm.me> | 2025-07-23 14:05:13 +0200 |
commit | 41f95375a65a3f67a75258680d6d8b03bb4d678b (patch) | |
tree | 57a2ffafc6d9203fa1dde1249b2ec83110fff72e /daemon/src/types.h | |
parent | 29ca6bac4565d754a67414e503a215627d3aa566 (diff) |
Working with hardcoded routing table
Diffstat (limited to 'daemon/src/types.h')
-rw-r--r-- | daemon/src/types.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/daemon/src/types.h b/daemon/src/types.h index 2942c0b..a5c6165 100644 --- a/daemon/src/types.h +++ b/daemon/src/types.h @@ -1,5 +1,7 @@ #pragma once +#include "sender.h" + #include <cstdint> #include <array> #include <string> @@ -29,9 +31,20 @@ enum class Message_Type using Device_Id = std::string; using Device_Map = std::map<std::string, Device_Id>; - -using Send_Callback = std::function<void(std::array<std::uint8_t, 3> const & payload)>; -using Target_List = std::vector<Send_Callback>; +using Target_List = std::vector<std::reference_wrapper<Sender>>; using Route_Map = std::map<Device_Id, std::map<Message_Type, Target_List>>; +struct Message +{ + Device_Id const * source_id; + std::array<std::uint8_t, 3> bytes; + + Message_Type + type() const + { + if ((bytes[0] & 0xF0) == 0xF0) return static_cast<Message_Type>(bytes[0]); + else return static_cast<Message_Type>(bytes[0] >> 4); + } +}; + } // namespace midi_router |