From fe4695cfecae5fef56a69017c0c14b06d917c3ea Mon Sep 17 00:00:00 2001 From: Nell Date: Sat, 21 Jun 2025 17:12:20 +0200 Subject: [PATCH] first commit --- src/net/message.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/net/message.rs b/src/net/message.rs index ada45b4..1c4336c 100644 --- a/src/net/message.rs +++ b/src/net/message.rs @@ -26,6 +26,15 @@ pub enum MessageCall { Audio {sequence: u16, data: Vec}, } +impl MessageCall { + pub fn ping(message_id: [u8; 16]) -> Self { + Self::Ping {message_id} + } + pub fn audio(sequence: u16, data: Vec) -> Self { + Self::Audio {sequence, data} + } +} + /// Message reçu depuis le serveur au client #[derive(Debug, Clone, PartialEq)] pub enum MessageEvent { @@ -35,3 +44,31 @@ pub enum MessageEvent { Audio {user: [u8; 16],sequence: u32, data: Vec}, } +impl MessageEvent { + pub fn ping(message_id: [u8; 16]) -> Self { + Self::Ping {message_id} + } + pub fn audio(user: [u8; 16], sequence: u32, data: Vec) -> Self { + Self::Audio {user, sequence, data} + } +} + +impl MessageCall { + pub fn to_bytes(&self) -> Vec { + let mut buf = Vec::::with_capacity(15000); + match self { + MessageCall::Ping {message_id} => { + buf.push(UDPMessageType::Ping as u8); + buf.extend_from_slice(&message_id.to_vec()); + }, + MessageCall::Audio {sequence, data} => { + buf.push(UDPMessageType::Audio as u8); + buf.extend_from_slice(&sequence.to_be_bytes()); + buf.extend_from_slice(&data); + } + } + buf + } + + +} \ No newline at end of file