diff options
author | Eddy Pedroni <epedroni@pm.me> | 2025-07-23 22:33:05 +0200 |
---|---|---|
committer | Eddy Pedroni <epedroni@pm.me> | 2025-07-23 22:33:05 +0200 |
commit | c5c195ff5318f00d544c0fbceb133abcc4ba7a5a (patch) | |
tree | 1c7a3e646f6eb72d748dd606fe9e8e12175b39bd /daemon/src/types.h | |
parent | 41f95375a65a3f67a75258680d6d8b03bb4d678b (diff) |
MVP
Diffstat (limited to 'daemon/src/types.h')
-rw-r--r-- | daemon/src/types.h | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/daemon/src/types.h b/daemon/src/types.h index a5c6165..78e85df 100644 --- a/daemon/src/types.h +++ b/daemon/src/types.h @@ -27,17 +27,18 @@ enum class Message_Type START = 0xFAu, CONTINUE = 0xFBu, STOP = 0xFCu, + }; using Device_Id = std::string; using Device_Map = std::map<std::string, Device_Id>; using Target_List = std::vector<std::reference_wrapper<Sender>>; -using Route_Map = std::map<Device_Id, std::map<Message_Type, Target_List>>; +using Route_Table = std::map<Device_Id, std::map<Message_Type, Target_List>>; struct Message { Device_Id const * source_id; - std::array<std::uint8_t, 3> bytes; + std::vector<std::uint8_t> bytes; Message_Type type() const @@ -47,4 +48,34 @@ struct Message } }; +static const std::map<std::string, Message_Type> string2type = { + {"note_off", Message_Type::NOTE_OFF}, + {"note_on", Message_Type::NOTE_ON}, + {"poly_at", Message_Type::POLY_AT}, + {"control_change", Message_Type::CONTROL_CHANGE}, + {"program_change", Message_Type::PROGRAM_CHANGE}, + {"channel_at", Message_Type::CHANNEL_AT}, + {"pitch_wheel", Message_Type::PITCH_WHEEL}, + {"clock", Message_Type::CLOCK}, + {"meas_end", Message_Type::MEAS_END}, + {"start", Message_Type::START}, + {"continue", Message_Type::CONTINUE}, + {"stop", Message_Type::STOP}, +}; + +static const std::map<Message_Type, std::string> type2string = { + {Message_Type::NOTE_OFF, "note_off"}, + {Message_Type::NOTE_ON, "note_on"}, + {Message_Type::POLY_AT, "poly_at"}, + {Message_Type::CONTROL_CHANGE, "control_change"}, + {Message_Type::PROGRAM_CHANGE, "program_change"}, + {Message_Type::CHANNEL_AT, "channel_at"}, + {Message_Type::PITCH_WHEEL, "pitch_wheel"}, + {Message_Type::CLOCK, "clock"}, + {Message_Type::MEAS_END, "meas_end"}, + {Message_Type::START, "start"}, + {Message_Type::CONTINUE, "continue"}, + {Message_Type::STOP, "stop"} +}; + } // namespace midi_router |