diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-16 23:15:51 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-16 23:15:51 +0200 |
commit | fd005b751d1abc0835c3812f4b12aed55e5aac1c (patch) | |
tree | 5c0b0628f2330b8bb24841d97b836033d151a2f9 /client-native-lib | |
parent | ecd6ee088847a7068cb97a728b40450dc5e923b5 (diff) | |
download | keks-meet-fd005b751d1abc0835c3812f4b12aed55e5aac1c.tar keks-meet-fd005b751d1abc0835c3812f4b12aed55e5aac1c.tar.bz2 keks-meet-fd005b751d1abc0835c3812f4b12aed55e5aac1c.tar.zst |
dedup sdptype in rift too
Diffstat (limited to 'client-native-lib')
-rw-r--r-- | client-native-lib/src/peer.rs | 25 | ||||
-rw-r--r-- | client-native-lib/src/protocol.rs | 35 |
2 files changed, 36 insertions, 24 deletions
diff --git a/client-native-lib/src/peer.rs b/client-native-lib/src/peer.rs index f2ca015..b682bb7 100644 --- a/client-native-lib/src/peer.rs +++ b/client-native-lib/src/peer.rs @@ -4,7 +4,7 @@ Copyright (C) 2022 metamuffin <metamuffin@disroot.org> */ use crate::{ - protocol::{self, RTCSessionDescriptionInit, RelayMessage}, + protocol::{self, RelayMessage, Sdp}, state::{HasPeer, PeerInit, State}, }; use log::info; @@ -103,6 +103,7 @@ impl Peer { info!("received ICE candidate"); self.peer_connection.add_ice_candidate(c).await.unwrap(); } + _ => (), } } @@ -125,15 +126,12 @@ impl Peer { .set_local_description(offer.clone()) .await .unwrap(); - self.send_relay(protocol::RelayMessage::Offer(RTCSessionDescriptionInit { - sdp: offer.sdp, - ty: offer.sdp_type, - })) - .await + self.send_relay(protocol::RelayMessage::Offer(offer.sdp)) + .await } - pub async fn on_offer(&self, offer: RTCSessionDescriptionInit) { + pub async fn on_offer(&self, offer: Sdp) { info!("({}) received offer", self.id); - let offer = RTCSessionDescription::offer(offer.sdp).unwrap(); + let offer = RTCSessionDescription::offer(offer).unwrap(); self.peer_connection .set_remote_description(offer) .await @@ -147,15 +145,12 @@ impl Peer { .set_local_description(offer.clone()) .await .unwrap(); - self.send_relay(protocol::RelayMessage::Answer(RTCSessionDescriptionInit { - sdp: offer.sdp, - ty: offer.sdp_type, - })) - .await + self.send_relay(protocol::RelayMessage::Answer(offer.sdp)) + .await } - pub async fn on_answer(&self, answer: RTCSessionDescriptionInit) { + pub async fn on_answer(&self, answer: Sdp) { info!("({}) received answer", self.id); - let offer = RTCSessionDescription::answer(answer.sdp).unwrap(); + let offer = RTCSessionDescription::answer(answer).unwrap(); self.peer_connection .set_remote_description(offer) .await diff --git a/client-native-lib/src/protocol.rs b/client-native-lib/src/protocol.rs index 6b2bf5d..9573f51 100644 --- a/client-native-lib/src/protocol.rs +++ b/client-native-lib/src/protocol.rs @@ -4,9 +4,9 @@ Copyright (C) 2022 metamuffin <metamuffin@disroot.org> */ use serde::{Deserialize, Serialize}; -use webrtc::{ - ice_transport::ice_candidate::RTCIceCandidateInit, peer_connection::sdp::sdp_type::RTCSdpType, -}; +use webrtc::ice_transport::ice_candidate::RTCIceCandidateInit; + +pub type Sdp = String; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] @@ -34,15 +34,32 @@ pub struct RelayMessageWrapper { } #[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] pub enum RelayMessage { - Offer(RTCSessionDescriptionInit), - Answer(RTCSessionDescriptionInit), + Chat(ChatMesssage), + Identify { username: String }, + + Provide(ProvideInfo), + Request { id: String }, + ProvideStop { id: String }, + RequestStop { id: String }, + + Offer(Sdp), + Answer(Sdp), IceCandidate(RTCIceCandidateInit), } #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct RTCSessionDescriptionInit { - #[serde(rename = "type")] - pub ty: RTCSdpType, - pub sdp: String, +#[serde(rename_all = "snake_case")] +pub enum ChatMesssage { + Text(String), + Image(String), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ProvideInfo { + id: String, + kind: String, // TODO actually enum + label: Option<String>, + size: Option<usize>, } |