aboutsummaryrefslogtreecommitdiffstats
path: root/daemon/src/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/src/types.h')
-rw-r--r--daemon/src/types.h35
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