aboutsummaryrefslogtreecommitdiff
path: root/client-native-lib
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-16 23:15:51 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-16 23:15:51 +0200
commitfd005b751d1abc0835c3812f4b12aed55e5aac1c (patch)
tree5c0b0628f2330b8bb24841d97b836033d151a2f9 /client-native-lib
parentecd6ee088847a7068cb97a728b40450dc5e923b5 (diff)
downloadkeks-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.rs25
-rw-r--r--client-native-lib/src/protocol.rs35
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>,
}