diff options
author | bunnei <bunneidev@gmail.com> | 2021-12-18 08:43:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-18 08:43:19 +0100 |
commit | 212b497d5c60676036dcd541ca54cf0ab260f344 (patch) | |
tree | bdfb846bdec1bbd04cf827017f3adba5cccb9a6c /src/input_common/helpers | |
parent | Merge pull request #7399 from ameerj/art-refactor (diff) | |
parent | [input_common] Move variable declaration closer to usage (diff) | |
download | yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar.gz yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar.bz2 yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar.lz yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar.xz yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.tar.zst yuzu-212b497d5c60676036dcd541ca54cf0ab260f344.zip |
Diffstat (limited to 'src/input_common/helpers')
-rw-r--r-- | src/input_common/helpers/udp_protocol.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/input_common/helpers/udp_protocol.h b/src/input_common/helpers/udp_protocol.h index bcba12c58..2d5d54ddb 100644 --- a/src/input_common/helpers/udp_protocol.h +++ b/src/input_common/helpers/udp_protocol.h @@ -54,6 +54,18 @@ struct Message { template <typename T> constexpr Type GetMessageType(); +template <typename T> +Message<T> CreateMessage(const u32 magic, const T data, const u32 sender_id) { + boost::crc_32_type crc; + Header header{ + magic, PROTOCOL_VERSION, sizeof(T) + sizeof(Type), 0, sender_id, GetMessageType<T>(), + }; + Message<T> message{header, data}; + crc.process_bytes(&message, sizeof(Message<T>)); + message.header.crc = crc.checksum(); + return message; +} + namespace Request { enum RegisterFlags : u8 { @@ -101,14 +113,7 @@ static_assert(std::is_trivially_copyable_v<PadData>, */ template <typename T> Message<T> Create(const T data, const u32 client_id = 0) { - boost::crc_32_type crc; - Header header{ - CLIENT_MAGIC, PROTOCOL_VERSION, sizeof(T) + sizeof(Type), 0, client_id, GetMessageType<T>(), - }; - Message<T> message{header, data}; - crc.process_bytes(&message, sizeof(Message<T>)); - message.header.crc = crc.checksum(); - return message; + return CreateMessage(CLIENT_MAGIC, data, client_id); } } // namespace Request |